• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

互联网 diligentman 4个月前 (12-16) 39次浏览

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

一、可执行程序中的实现

使用RTKPOST GUI进行后处理定位时,输入文件框数量较少,仅可满足单个测站单个时间段的解算。RTKLIB提供了关键词替换(Keyword Replacement)这一方法进行数据的批量处理。

点击观测值路径框上方的 “?” 即可呼出可用关键词帮助,如下:

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

下面,给出一个多测站RTK解算示例:

处理文件:基站观测文件:hklm0010.20o 流动站观测文件:hkqt0010.20o hkst0010.20o hkst0010.20o hktk0010.20o 导航文件:brdm0010.20p

观测文件来源:香港CORS站数据:

ftp://ftp.geodetic.gov.hk/rinex3

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

输入文件中,将流动站的测站名替代为 %r ,输出的pos文件同样。

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

点击Options,除了常规的解算配置外,还需进行测站列表的输入。

点击Misc,在Rovers处输入需要处理的站点名。同样地,Base Stations即为输入多基站列表的位置。

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

点击进行处理,状态显示中会多出现一个代表 %r 的处理信息。

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

处理得到的文件:

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

其他时间相关关键词操作更为简便,无需进行测站列表的添加。

二、程序源代码中的实现

程序命令参数的输入与GUI中需保持一致,将GUI中的设置进行保存,得到batch.conf文件。则最终的输出参数为:-k batch.conf %r0010.20o hklm0010.20o brdm0010.20p -o %r0010.20o.pos

由于conf文件中并没有测站列表的相关配置,因此需要进行一定的代码修改。可以发现最外层的处理函数postpos中的参数rov和base即为测站列表参数
使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

转到main函数中的输入部分,我们发现此处原始输入为均为 “”, 因此,对此处进行修改。添加Rovers和Base两个字符串作为测站列表输入。

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

配置完成,可以进行处理:

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

进一步阅读源代码可以发现,对 **%b **和 %r 这两个测站列表参数进行处理的函数均为较外层的嵌套函数 execses_bexecses_r 。其中对 %b%r 的判断即为关键词替代的实现。

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理
使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

PS:不得不感叹RTKLIB程序设计之精妙,以前作为初学者看这种多层的嵌套感觉很繁琐,一层套一层,现在看来确实是十分巧妙的处理。

三、引申关键词(*)

在进行DCB文件读取时,有一个类似的关键词替代操作,常规情况下只能选择单个DCB文件。

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

当我们需要读取P1C1、P2C2、P1P2多个DCB文件时,可以采用 ***** 进行代替,代表多个文件读取。
使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理

对应代码中的实现:

expath:通过 * 实现文件路径扩展

使用关键词替换(Keyword Replacement)进行RTKLIB RTKPOST批处理
引用该函数的文件读取函数的有:

readdcb() DCB文件

readrnxt() 观测与导航文件

readrnxc() 钟差文件

readsp3() 精密星历文件

sbsreadmsgt() SBAS信息


喜欢 (0)