GFZRNX 程序是由德国波兹坦地学研究中心(GFZ)的开发的一款用于 GNSS 数据预处理(主要适用于 RINEX 2 与 3 版本格式)的程序,支持 Windows、Linux、macOS 等常见的操作系统。
GFZRNX 程序支持对 RINEX 格式的观测数据文件(Obs)、广播星历文件(Nav)和气象数据文件(Met)的操作。
环境配置
Windows 操作系统
1.下载对应的可执行文件,打开 “命令提示符” 窗口,使用 cd
命令进入程序所在目录,然后键入程序名(gfzrnx_win32.exe 或 gfzrnx_win64.exe)即可运行程序。
2.不想每次使用该程序前切换工作目录,也不喜欢命令后面诸如 “win32” 或 “win64” 这样的后缀。因此将其重命名为 “gfzrnx.exe”,然后移动至 “C:\Windows\System32” 文件夹内。这样每次使用该程序时,只需要在 “命令提示符” 窗口键入 gfzrnx 就行了。
3.将该程序所在目录添加到系统的 Path 变量。
操作模式
使用 GFZRNX 程序前,首先要了解其操作模式。该程序的输入,即可以来自文件,也可以来自标准输入或管道。对于来自于文件的数据,需要使用 -finp
参数指定。对于程序的输出,默认为标准输出,也可以使用重定向或 -fout
参数将输出转到文件。对于出错信息,默认为标准错误输出,也可以使用 -errlog
参数(或重定向)将出错信息转到文件。因此程序常见的操作模式为:
1 | $ gfzrnx -finp <input_files> -errlog <error_log> [options] > <output_file> |
这里的 [options]
代表附加的参数选项,用于指定数据处理中使用的功能。使用 GFZRNX 程序进行数据预处理时,任何符合 RINEX 格式标准的数据都可以作为输入,但只输出最新的 RINEX 2(目前为 2.11) 或 RINEX 3(目前为 3.04)版本的数据。如果未明确指定输出数据的 RINEX 格式版本,则默认为 RINEX 3.04(2018 年 12 月 21 日之前发布的版本为 RINEX 3.03)。
格式相关操作
格式检查与修复
GFZRNX 程序提供对 RINEX 格式的检查功能,可以检测你输入的数据文件是否合乎规范。对于格式不正确的内容,甚至会自动尝试修复它。经过格式检查,GFZRNX 将会更新文件头中的信息并且移除所有出错的观测数据。在使用诸如 PANDA、GAMIT/GLOBK 等高精度 GNSS 数据处理程序时,该功能可以解决很多因为数据格式造成的错误。要在数据预处理中使用该功能,只需在操作命令中添加 -chk
参数。
以 BJFS 站 2016 年 9 月 12 日的观测数据 bjfs2560.16o 为例,其原始数据格式为 RINEX 2.10。下面的命令将调用 GFZRNX 程序对该文件进行格式检查,并将尝试修复后的数据保存至新的文件 bjfx2560.16o:
1 | $ gfzrnx -finp bjfs2560.16o -chk > bjfx2560.16o |
该命令执行完成后,如果你查看生成的 bjfx2560.16o 文件,将发现该文件已经符合最新的 RINEX 3 格式标准。如果你不希望将输出的文件转换为 RINEX 3 格式,可以添加一个 -kv
参数,例如:
1 | $ gfzrnx -finp bjfs2560.16o -chk -kv > bjfx2560.16o |
此时查看生成的新文件 bjfx2560.16o,将发现其数据格式没有变成 RINEX 3,但也不再是原始的 RINEX 2.10,而是 RINEX 2.11。因为这是最新的 RINEX 2 格式标准,-kv
参数只指定数据格式大版本不发生变化。
格式转换
使用 GFZRNX 程序的数据格式转换功能时,只需在操作命令中使用 -vo
参数。其输入值被限制为 2 或 3,代表输出数据的 RINEX 格式版本。
以 CHAN 站点于 2016 年 9 月 12 日的观测数据为例,其原始文件为 RINEX 2.11 格式。下面的命令将其格式转化为 RINEX 3:
1 | $ gfzrnx -finp chan2560.16o -vo 3 > CHAN00CHN_R_20162560000_01D_30S_MO.rnx |
转化广播星历文件:
1 | $ gfzrnx -finp chan2560.16n -vo 3 > CHAN00CHN_R_20162560000_01D_GN.rnx |
转化气象数据文件:
1 | $ gfzrnx -finp dav12560.16m -vo 3 > DAV100ATA_R_20162560000_01D_30S_MM.rnx |
类似的,下面的命令将之前的命令所生成的文件转化回 RINEX 2:
1 | $ gfzrnx -finp CHAN00CHN_R_20162560000_01D_30S_MO.rnx -vo 2 > chan2560.12o |