1 简介
最近在基于GVINS进行开发,无法避免要对GNSS数据进行处理,这部分对于像我这样的外行来说有点不太友好,网上的资料不是很全。这里我会将我在身边朋友帮助下对GNSS数据处理的过程进行记录,如有谬误,请不吝赐教。
2 GNSS数据处理
2.1 接收机文件处理
本人在采集GNSS数据时一般会使用两种GNSS接收机:低成本接收机(一般是Ublox)和高成本接收机(一般是Alloy),两种原始数据都需要经过格式转换之后得到Rinex格式的文件,以下是两种文件的转换方式:
- Ublox的文件使用RTKlib RTKCONV即可转换;
- Alloy的文件在从接收机导出时就可以选择“导出并转换”,一般会获得原始观测文件和对应的星历文件;如果得到的是未经转换的原始数据,还可以通过Trimble公司的转换软件ConvertToRinex进行转换。
2.2 基站数据和星历数据下载
实验测试时需要真值数据,一般会通过RTK或者RTK/INS紧组合来求解真值,该过程都会需要基站数据,这里将基站数据和星历数据的获取方式进行记录。
2.2.1 手动下载方式
手动下载方式一般通过ftp从网站进行下载,如可通过使用FileZilla软件来下载,下面分别介绍数据下载方式。
基站数据
打开FileZilla软件,在①处填写服务器地址(这里使用的是
gdc.cddis.eosdis.nasa.gov),然后点击②处的“快速连接”,接着在③处选择合适的选项,这里我一般选择highrate(1Hz)的基站数据,然后即可在④处选择合适的年份、日期进行下载了。比如选择highrate/2026/131这一天的数据进行下载,也可以根据一天内所需的对应时间段下载数据。
这里下载的数据格式为
crx.gz文件,接下来使用压缩软件将其进行解压缩,得到crx文件;- 对于Windows系统,在命令提示符中使用如下命令进行数据拼接:
for %i in (*.crx) do crx2rnx.exe "%i",即可得到一个完整的参考站数据; - 对于Linux系统,在终端中使用如下命令进行操作:
./gfzrnx_2.1.9_lx64 -finp ~/PATH/TO/FILE/*.rnx -kv > output.rnx。
以上就是手动下载基站数据的方式。
星历数据
星历数据的下载方式类似,填入地址(这里还需要账号、密码)、“快速连接”、选择“/brdc_whu - 服务器 - 搜索远程文件(F3)”,选取对应天数文件下载,文件名为“brdm**.26p”,其中“.26p”是根据所需年份确定的。
2.2.2 自动下载方式
手动下载方式比较麻烦,特别是针对基站数据,还要手动选择、解压缩等操作,同学给了我一个开源代码可以在不同服务器上自动下载基站数据和星历数据,即GAMPII-GOOD软件,代码详情可以参考其Github页面,下面介绍一下本人使用该软件的过程。
按照要求进行代码编译之后,可根据需求修改配置文件/config/GOOD_cfg.yaml,将部分需要修改的部分摘出来加以说明:
1 | # The root/main directory of GNSS observations and products ------------------- |
以上内容后面也均有对应说明,可根据需要进行修改。此外,也需要对/data/site_mgex.list进行修改,填上需要下载的基站名称即可。
修改完配置文件之后,即可进入/bin执行运行命令:./run_GOOD ../config/GOOD_cfg.yaml,然后程序就会自动下载选定时间段、选定基站的观测数据和星历数据。
下载完后的数据会保存在/data/obs和/data/nav下,对于观测数据还需要使用./gfzrnx_2.1.9_lx64 -finp ~/PATH/TO/FILE/*.rnx -kv > output.rnx进行拼接。