【GNSS】GFZRNX 常用的檔案編輯命令
GFZRNX 是由德國波茲坦地學研究中心(GFZ)開發的一款用於 GNSS 資料預處理(適用於 RINEX 2 與 3 版本格式)的程式,支援對 RINEX 格式的觀測資料檔案(Obs)、廣播星曆檔案(Nav)和氣象資料檔案(Met)的操作。
轉自與 www.gnsshelper.com http://semisys.gfz-potsdam.de/semisys/scripts/download/
本文將以例項的方式介紹其檔案編輯功能的使用方法,包括檔案分割與拼接、資料提取、取樣率抽取、觀測衛星篩選和觀測量編輯等。
檔案編輯命令
檔案分割
要使用程式的檔案分割功能,只需在執行時新增 -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
引數可以對其中的衛星軌道資訊重新排序。該引數接受兩個選項:prn
或 time
,其中 prn
指定輸出檔案中衛星軌道資訊按照衛星 PRN 編號排序,而 time
則將按照發布時間排序。
示例,對輸入的廣播星曆檔案按照發布時間重新排序:
1 |
$ gfzrnx -finp brdc0420.17n -ns time -kv > brdn0420.17n |
對輸入的廣播星曆檔案按照衛星的 PRN 編號重新排序:
1 |
$ gfzrnx -finp brdc0420.17n -ns prn -kv > brdn0420.17n |