GAMIT解算北斗三号新频点(B1C、B2a)数据

基于GAMIT10.75版本安装了2023年10月1日更新包),成功完成了北斗三号新频点数据的解算,在此记录分享,有问题和不足之处欢迎大家交流讨论。


1.低频信号的选取

目前,GAMIT10.75版本支持低频信号的选择,方法为使用 -lfreq 参数,批处理(sh_gamit)和分布处理(sh_makexp步骤)中都使用同样的参数,其中北斗低频信号的选取规则具体为:

-lfreq 6    #B3I(默认)
-lfreq 7    #B2I
-lfreq 5    #B2a

lfreq即为lower frequency,目前不使用该-lfreq参数时,默认是使用 B3I 频点的信号作为低频信号进行解算。想要指定北三的 B2a 信号进行解算,则需要使用-lfreq 5

需要注意的是,比较老的版本可能不支持-lfreq 5这个参数,建议更新到比较新的版本。

2.高频信号的选取

当前GAMIT并没有选取高频信号的功能,程序里写死了,只能使用 B1I 作为高频数据,因此需要修改源码来完成 B1C 信号的选用。

注意:源代码修改后,需要重新编译GAMIT,因此建议修改前后的版本均进行备份,比如 setup.f 这个文件,修改前备份为 setup_B1I.f,修改后备份为 setup_B1C.f,这样如果想使用 B1C 信号的时候,就将 setup_B1C.f 复制,更名为 setup.f,然后编译时就会使用这个文件,GAMIT变成使用 B1C 的版本。想要换回 B1I 时,就将 setup_B1I.f 复制,更名为 setup.f ,然后重新编译。

下面跳过我分析的思路和查阅代码的步骤,直接把最终修改代码的方法分享给大家:

1)sel_obtyp.f

这个函数由 makex 模块调用,用于观测值类型的选取。

找到higher-frequency carrier phase这里,将图中151-155行这里注释(或删除)掉,增加图中157-158行的内容,就可以在读取rinex文件生成 x-file 时选用 B1C 频点的载波相位数据(在rinex3.04中对应L1X或L1P)。

同样,找到Higher-frequency pseudorange这里,将图中190-194行的内容注释(或删除)掉,增加图中196-197行的内容,就可以在读取rinex文件生成 x-file 时选用 B1C 频点的伪距数据(在rinex3.04中对应C1X或C1P)。

2)setup.f

这个函数由 model 模块调用,用于组方程时的一些设置。

将图中627-629行注释掉,增加图中632行的内容,这是在设置北斗高频数据的信号频率,其中 beidou_f2 对应的是 B1I 频点的频率,beidou_f1 对应的是 B1C 频点的频率。

3)freq_def.h

setup.f 中提到的 beidou_f1 是一个全局变量,其数值就定义在 freq_def.h 中。

如果有使用较新版本的更新包,可以看到 freq_def.h 中已经有了 beidou_f1 的数值 1575.420d6,如下图:

但是稍早版本中是没有该变量的定义的,因此需要检查一下该文件中是否有 beidou_f1 的定义,没有的话,需要将图中19行内容加到 freq.h 文件中来。

3.进行备份,重新编译

以上,已经完成了所有需要修改的代码,在完成好了备份之后,就可以在安装目录下执行 install_software进行重新编译了。编译完成后,可以运行批处理命令sh_gamit来跑个例子试一试,如果运行无问题,同时在生成的x文件中,可以看到下图所示的信号标识,大概率可以确认大功告成了。

再注:测试前确认一下rinex观测文件版本,最好在3.04及以上,同时确认有无B1C和B2a的数据,不然肯定解算不了....

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值