GFZRNX 常用的文件编辑命令

文章目录
  1. 1. 文件编辑命令
    1. 1.1. 文件分割
    2. 1.2. 数据提取
    3. 1.3. 文件拼接
    4. 1.4. 采样率抽取
    5. 1.5. 观测量编辑
    6. 1.6. 观测卫星筛选
    7. 1.7. 卫星系统筛选
    8. 1.8. 星历重排序

GFZRNX 是由德国波兹坦地学研究中心(GFZ)开发的一款用于 GNSS 数据预处理(适用于 RINEX 2 与 3 版本格式)的程序,支持对 RINEX 格式的观测数据文件(Obs)、广播星历文件(Nav)和气象数据文件(Met)的操作。

前文已经介绍过该程序的配置和文件格式转换功能的使用,本文将以实例的方式介绍其文件编辑功能的使用方法,包括文件分割与拼接、数据提取、采样率抽取、观测卫星筛选和观测量编辑等。

文件编辑命令

文件分割

要使用程序的文件分割功能,只需在运行时添加 -split 参数,然后输入分割文件的时段长度,其中时长以秒为单位。

示例,将 SHAO 站于 2016 年 2 月 11 日全天的观测数据分割为 24 个时长为 1 小时的观测文件:

1
$ gfzrnx -finp shao0420.16o -fout ::RX2:: -split 3600

上述命令中的 -fout ::RX2:: 参数指定输出文件以 RINEX 2 的命名方式自动命名。运行该命令,将得到时长为 1 小时的 24 个观测文件:shao042a.16o、shao042b.16o 至 shao042x.16o。

查看输出的这些文件,你将发现它们已被自动转换为 RINEX 3 格式,别忘了这是程序默认的输出格式。但是这可能不是你想要的,如果希望文件分割前后观测数据的大版本号不变,可以在命令中添加 -kv 参数。即:

1
$ gfzrnx -finp shao0420.16o -fout ::RX2:: -split 3600 -kv

你也可能希望得到 RINEX 3 格式的输出文件,并且以 RINEX 3 格式的命名方式作为文件名。以下为一个示例:

1
$ gfzrnx -finp shao0420.16o -fout ::RX3:: -split 3600

需要补充的是,目前该程序似乎存在一个 Bug。当指定分割后的文件时段长于 1 小时,程序将为输出文件命名为类似 “site0010.16o” 的形式。这样的后果是:当 -split 参数指定的时段长度大于 3600 秒,程序将只输出第一个时段的文件。因为后续输出的文件与第一个文件重名,造成程序终止。当然,如果你在命令中还添加了 -f 参数用于强制覆盖重名文件,那么将只得到最后一个时段的观测文件。因为之前输出的文件被覆盖了。鉴于此,要获得时长超过 1 小时的数据时,建议使用下文介绍的数据提取的操作方式。

数据提取

数据提取即从观测文件中提取任意一段时间的数据。在使用该功能时,使用 -epo_beg 参数来指定首历元开始时刻,使用 -d 参数指定以秒为单位的时长。其中输入的开始时刻可使用简化儒略日、GPS 周、年月日、年积日等多种形式。

依然以上文使用的 SHAO 站的观测数据为例。该天为 2016 年第 42 日,第 1883 GPS 周的星期四,对应的简化儒略日为 57429。示例,从 shao0420.16o 中提取 2 点开始,时长为 2 小时的观测数据:

1
gfzrnx -finp shao0420.16o -epo_beg 2016-02-11_02:00:00 -d 7200 -kv > shao042c.16o

运行这个命令后,将得到包含所需数据的文件 shao042c.16o。按照日期指定方式的不同,这个命令还可以如此改写:

1
2
3
$ gfzrnx -finp shao0420.16o -epo_beg 18834_02:00:00 -d 7200 -kv > shao042c.16o  # 日期以 GPS 周指定
$ gfzrnx -finp shao0420.16o -epo_beg 2016042_02:00:00 -d 7200 -kv -fout shao042c.16o # 日期以年与年积日指定
$ gfzrnx -finp shao0420.16o -epo_beg 57429_02:00:00 -d 7200 -kv -fout shao042c.16o # 日期以简化儒略日指定

文件拼接

说过文件分割与数据提取,现在介绍其逆操作——文件拼接。使用该功能时不需其它参数,只需以 -finp 参数指定要拼接的文件列表。其顺序可以是任意的,GFZRNX 程序能自动确定拼接的顺序。

下面的命令将前面文件分割时得到的 24 个文件中的前 3 个拼接到一起,并保持拼接前后文件的 RINEX 格式大版本号不变:

1
$ gfzrnx -finp shao042a.16o shao042c.16o shao042b.16o -kv > shao0420.16o

采样率抽取

高采样率的文件体积通常很大,重新进行采样率抽取可以对其瘦身。要应用该功能可以使用 -smp 参数指定输出文件的采样间隔:

下面的命令将采样间隔为 30 秒的源文件重采样为 60 秒:

1
$ gfzrnx -finp shao0420.16o -smp 60 > shao0420_60s.16o

运行该命令,得到采样间隔为 60 秒的观测文件 shao0420_60s.16o。

观测量编辑

GFZRNX 程序还支持直接对观测量进行编辑。要使用该功能,可以使用 -obs_types 参数来指定要保留的观测量列表。其中多个项目之间以逗号分隔。

下面的命令将在输出文件中删去除了 L1、L2、P1、P2、C1、C2 之外的观测量:

1
$ gfzrnx -finp daej0420.16o -obs_types L1,L2,P1,P2,C1,C2 -kv > temp0420.16o

如果不关心观测频段而只关心观测类型,还可以使用如下的命令:

1
$ gfzrnx -finp daej0420.16o -obs_types L,P,C -kv > temp0420.16o

或者只关心观测频段不关心观测类型,可以使用如下的命令:

1
$ gfzrnx -finp daej0420.16o -obs_types 1,2 -kv > temp0420.16o

观测卫星筛选

有些 GNSS 数据观测量较差,或者受数据处理程序所限,可能需要从观测数据中删除某些观测数据。GFZRNX 程序支持对卫星或卫星系统进行筛选。

-prn 参数和 -no_prn 参数用于对卫星进行筛选。其中 -prn 参数用于设置保留的卫星,而 -no_prn 参数用于设置要去除的卫星。对于多个卫星的操作,可以用逗号进行分隔,亦可使用“-”指定起止卫星号。

下面的命令将 GLONASS 卫星 R1 与 R5 的观测数据删除:

1
$ gfzrnx -finp daej0420.16o -no_prn R01,R05 -kv > temp0420.16o  #卫星号最好使用两位数字,否则易出错

运行命令后,检查输出的文件 temp0420.16o,发现其中 R1 与 R5 的观测数据被删去了。

下面的命令则用于删除从 R1 到 R5 之间所有卫星的观测:

1
$ gfzrnx -finp daej0420.16o -no_prn R01-05 -kv > temp0420.16o

运行命令后,检查输出的文件 temp0420.16o,发现其中 R1、R2、R3、R4、R5 的观测数据都被删去了。

-prn 参数的使用方式与 -no_prn 类似。以下的命令将在输出文件中只保留对从 G1 到 G30、从 R1 到 R10 卫星的观测:

1
$ gfzrnx -finp daej0420.16o -prn G01-30,R01-10 -kv > temp0420.16o

卫星系统筛选

除了使用 -prn-no_prn 对某些卫星的数据进行操作,还可以使用 -satsys 参数直接对卫星系统的筛选,以下的命令将在观测文件中删去除 GPS 和 GLONASS 系统之外的所有卫星:

1
$ gfzrnx -finp daej0420.16o -satsys GR -kv > temp2000.16o

值得注意的是,受到 RINEX 2 标准的限制(RINEX 2.11 标准未定义北斗观测量),筛选包含北斗卫星的观测数据时可能会出现问题。具体表现为,当输出格式为 RINEX 2 时,虽然设置了保留北斗系统卫星,但输出文件中的北斗卫星观测量被空白取代。不过对星历文件操作是没有问题的。

下面的命令将从混合的星历数据中分离出北斗卫星的信息:

1
$ gfzrnx -finp BRDC00IGS_R_20170420000_01D_MN.rnx -satsys C > brdc0420.17c

运行命令后,得到只包含北斗卫星轨道信息的星历文件 brdc0420.17c。

星历重排序

上文对卫星系统筛选后输出的星历文件中,卫星轨道信息按卫星的 PRN 编号升序排列,这可能不是你想要的。通过 -ns 参数可以对其中的卫星轨道信息重新排序。该参数接受两个选项:prntime,其中 prn 指定输出文件中卫星轨道信息按照卫星 PRN 编号排序,而 time 则将按照发布时间排序。

示例,对输入的广播星历文件按照发布时间重新排序:

1
$ gfzrnx -finp brdc0420.17n -ns time -kv > brdn0420.17n

对输入的广播星历文件按照卫星的 PRN 编号重新排序:

1
$ gfzrnx -finp brdc0420.17n -ns prn -kv > brdn0420.17n