1. 程式人生 > >【GNSS】GFZRNX 常用的檔案編輯命令

【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