[GAMIT/GLOBK学习笔记]制作station.info文件的方法(脚本)

在使用GAMIT/GLOBK软件解算GNSS数据时,首先需要运行GAMIT软件进行单日解解算,再将单日解的结算结果h文件作为GLOBK输入文件进行进一步解算,得到测站坐标、时间序列或者是速度场。在使用GAMIT软件时,无论是分部解算(刚学习时采用分布处理有助于了解软件的解算步骤,或者是在某天解算出问题的情况下通过分布解算来查找和排查错误)还是批处理(比较方便,适合时间跨度长的情况下),其间一个重要的步骤就是制作必要的准备文件,station.info文件在整个解算的过程中起着至关重要的作用。
根据GAMIT用户手册,station.info是用户在解算之前必须手动准备的文件,如果没有该文件或者文件格式错误文件会停止解算。station.info文件的格式可以参考用户手册,在工程文件夹下运行sh_setup -yr xxxx(年份)命令后,程序会在工程文件夹tables文件夹下自动链接好解算是要用的各种文件,包括我们所说的station.info文件,但是这个文件是模板文件,和实际解算是需求不一致,所以需要用户自己手动更新。
用户手册中的station.info文件模板
制作station.info文件一般是通过命令实现,一般情况下的制作方法如下(方法1):
1.在expt/rinex/文件夹下新建文本文件,命名为station.info,此时该文件是空文件;
2.将expt/tables/文件夹下的模板station.info文件的文件头复制到expt/rinex/文件夹下的station.info空文件中;
3.在expt/rinex/下运行sh_upd_stnfo -files xxxx(要用到的o文件名称) 运行结束后再打开该文件就会发现输入的o文件里面的信息都会按照一定格式写入到station.info文件中。(注意:自动生成的测站信息文件是严格按照格式对齐的,解算不会有问题)
4.将expt/rinex/下的station.info文件复制到expt/tables/文件夹下,继续后面的操作
用户手册中对station.info文件格式的部分要求
在解算大批数据,如时间跨度为1年以上,或者解算测站很多,这时候如果在rinex文件夹下直接运行sh_upd_stnfo -files xxxx(要用到的o文件名称)就会报错word too long,有时候批处理运行sh_gamit时如果测站多也会这样报错,之前我就遇到过:https://blog.csdn.net/weixin_42638388/article/details/85336749
这时候可以编写一个脚本(方法二),通过循环来实现逐个将测站o文件 信息写入到测站信息文件中,这里贴上我的脚本:
在这里插入图片描述
上述方法二仍属于遍历每一个o文件,在实际运用中,如果需要解算几个月的数据,采用这个方法文件的更新速度还是相对来说比较能接受的,毕竟比一个一个手打快多了,但是,如果是好几年的数据,再有个几十个测站,这样的方法明显就不行了。比如现在有一年365天,每天30个测站,一共有10950个o文件,设想如果sh_upd_stnfo文件每分钟更新一个测站,那得182.5个小时才能完成(手动计算了下只为说明真的挺慢的)。这里有第三种方法:
刚开始和方法一一样,但是我们这里只更新第一天和最后一天的,更新命令为sh_upd_stnfo -files *0001.xxo,和sh_upd_stnfo -files *0365.xxo 这时候打开station.info文件,仔细比对,这一年里第一天个最后一天信息完全一致的测站,就可以将该测站第二条信息删除,将第一行的观测截止时间改成最后一天就可以了。如果发现有不一样的,比如中间某一天更换了接收机,那就采用二分法找到换接收机的天数,分别制作更换接收机前后两条信息就OK了。
在这里插入图片描述
上图可以看出这三个站在2016年第181天更换了接收机。注意,在修改观测截止时间时一定要注意格式,如果格式不正确会报错:比如可能会导致接收机类型的一栏会出现大量空格,这时候就会报错该接收机型号无法识别。

*贴上利用循环进行单日批处理的脚本:
在这里插入图片描述
利用上述脚本,可以实现单日批处理,在某天解算遇到报错时也不会停止解算。当单日解没有错误能够顺利完成时,可以将该天的log文件sh_gamit.logxxx写入sh_gamit.log文件后自动删除,如果遇到错误,不仅会在终端显示“xxx has erros!”,工程文件夹下会保留出错的单日解的log文件以便查找错误。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值