摘 要:本文主要介紹了GPS測量數據的常用格式RINEX標準文件格式,并利用MATLAB工具計算出所觀測衛星里的五顆衛星(14、20、29、31和32五顆)在283個歷元的瞬時位置,即所觀測時間段里五顆衛星在WGS-84坐標下的空間運行軌跡。
關鍵詞:RINEX標準文件 WGS-84下衛星位置 MATLAB工具
中圖分類號:P228.4 文獻標識碼:A 文章編號:1672-3791(2013)07(c)-0005-05
GPS定位的基本原理簡單來說就是在WGS-84空間直角坐標系中,確定未知點與GPS衛星的空間幾何關系。因此利用GPS進行導航和測量時,衛星是作為位置已知的高空觀測目標。那么如何精確快速的解算出衛星在空間運行的軌跡即其軌道是實現未知點快速定位的關鍵。
1 標準格式RINEX格式簡述
在進行GPS數據處理時,由于接收機出自于不同廠家,所以廠家設計的數據格式也是五花八門的,但是在實際中,很多時候需要把來自不同型號的接收機的數據放在一塊進行處理,這就需要數據格式的統一,為了解決這種矛盾,RINEX(英文全稱為:The Receiver Independent Exchange Format)格式則應運而生,該格式存儲數據的類型是文本文件,數據記錄格式是獨立于接收機的出自廠家和具體型號的。由此可見,其特點是:由于是通用格式,所以可將不同型號接收機收集的數據進行統一處理,并且大多數大型數據處理軟件都能夠識別處理,此外也適用于多種型號的接收機聯合作業,通用性很強。
RINEX標準文件里不是單一的一個文件,而是包括如下幾種類型的文件[1]。
(1)觀測數據文件(ssssdddf.yyo),記錄的是GPS觀測值信息,(OBServation data,簡寫OBS,為接收機記錄的偽距、相位觀測值;O文件,如XG012191.10O)。
(2)導航電文文件(ssssdddf.yyn),記錄的是GPS衛星星歷信息(NAVavigation data,簡寫NAV,記錄實時發布的廣播星歷;N文件,如XG012191.10N)。
(3)氣象數據文件(ssssdddf.yym),主要是在測站處所測定的氣象數據(METerological data,簡寫MET,記錄氣象儀器觀測的溫、壓、濕度狀況;M文件,如XG012191.10M)。
(4)GLONASS導航電文文件(ssssdddf.yyg),記錄的是地球同步衛星的導航電文。
由上述可見,RINEX文件的命名規則為ssssdddf.yyt(t指的是數據類型,不同的文件,t所代表的字母不同),其中文件名前四個字母(ssss)指的是測站名,一般是用字母和數字的組合來定義,方便識別,用戶自己定義。緊跟著的三個字母(ddd)指的是第一組數據的年積日(年積日是僅在一年中使用的連續計算日期的方法,是從當年1月1日起開始計算的天數。例如:每年的1月1日為第1日,2月1日為第32日,以此類推)如219表示8月7號,年積日的計算可通過在網上下載軟件進行快速計算,也可自己編一個小程序計算。f指的是觀測當天文件的觀測序列號,其可以在0~9或A~Z中取值,如果文件序號取值為0,則其意味著今天一天觀測的所有數據都放在該文件中,用戶則不用在所有文件中一一去找當天的某個文件,只需在此文件中進行查詢即可。對于f的理解,還有一點需要注意,通過下面的例子來進行說明:在某一天,用GPS測量進行某一項目的時候,共使用了3臺GPS接收機,由于各種原因,用戶分為三個時間段來進行:第一時間段,三臺接收機全部啟用;第二時間段,啟用兩臺接收機;第三時間段,三臺接收機又全部工作,那么在第一時間段,三臺接收機所接收到的數據文件編號則都為1,在第二時間段,參與工作的兩臺接收機接收到的觀測數據文件編號為2,在第三時間段,又是所有三臺接收機參與觀測,那么在該時間段,這三臺接收機所對應的文件編號就為3。由此可見,文件序號的編排不是以某臺接收機在該天的觀測時段為基礎定義,而是用用戶所進行的整體項目在該天的同步觀測時段為基礎的。RINEX文件命名里的yy指的是年的后兩位數字,如對于2013年,則yy為13。
RINEX文件命名里后一位o,n,m,g則標識的分別是觀測數據文件、導航電文文件、氣象數據文件以及GLONASS導航電文文件。此標準文件是純ASCll碼文本文件,所有類型的文件都由兩部分組成,文件頭和數據記錄。文件頭和數據記錄的區分界是END OF HEADER,文件頭里每條記錄占一行,列寬不超過80,并且第61~80列是對前面列數據記錄內容的說明,稱為標簽。數據記錄里如果一行寫不下,則在第二行繼續數據的記錄。
1.1 GPS觀測數據文件
GPS觀測數據文件中儲存的數據是與確定GPS整周未知數息息相關的信息,主要包括星歷、衛星數、測站概略坐標、偽距信息、載波相位觀測量信息等。下面分別通過表1和表2對GPS觀測數據文件的文件頭和數據記錄里每個記錄的含義進行詳細說明,以便更清楚的看懂觀測數據文件。
GPS觀測數據文件的文件頭里每個標簽的含義如表1所示。
GPS觀測數據文件里數據記錄里每一行的含義如表2所示。
本文中所使用的算例里觀測數據文件XG032191.10O的頭文件和部分數據記錄如圖1與圖2所示。
1.2 導航數據文件
GPS導航文件也是計算衛星瞬時位置必不可少的文件,因為衛星星歷、時鐘改正、偏心率、軌道攝動改正、大氣折射改正等導航信息是用戶用來實時定位和精確導航的必備數據。
導航文件仍然包括頭文件和數據記錄兩部分,數據文件中數據之間是用空格或回車符隔開的,因為有這樣的規律,所以用MATLAB編程讀取數據的時候就可利用這點進行數據的獲取的控制。
GPS導航數據文件的頭文件不像觀測數據文件那樣信息豐富,其僅僅只是對RINEX版本號、觀測類型、文件綱要名稱、文件機構名稱、文件建立日期相關信息進行說明,同觀測文件一樣,前60列是數據,61~80是標簽說明,并以END OF HEADER作為文件頭的結束標志。
GPS導航數據文件里的數據記錄部分相對較復雜,牽扯到的內容較多,其每一行每一項的含義如表3所示。(如圖3,4)
2 衛星坐標的計算步驟
由于在GPS定位和導航的時候,用戶都是把GPS衛星的位置作為已知量來對待,并且GPS定位所用的坐標系是世界大地坐標系WGS-84。所以就先必須根據GPS接收機觀測的相應星歷數據,解算出GPS衛星在WGS-84坐標系中的瞬時位置。
為了后面計算方便,先對廣播星歷中涉及到的計算衛星坐標的一些軌道參數進行說明,如表4所示。
由于每隔兩個小時,GPS接收機收到的廣播星歷才更新一次,所以用戶在根據接收機收到的衛星導航電文匯總的廣播星歷參數推算GPS的瞬時坐標的時候,一定要選取與GPS衛星的瞬時坐標時刻最相近的那組廣播星歷數據[2],否則誤差將會很大。
首先由已知的GPS接收機接受時刻的鐘面時,根據公式換算出GPS衛星發射時刻的鐘面時[3]:
其中:可由觀測文件直接讀取,為偽距,是觀測GPS衛星與觀測GPS接收機之間的距離(由于這個距離里含有電離層誤差、對流層誤差等各種誤差,不是GPS衛星與GPS接收機之間的真實距離,所以稱為偽距),本次算例讀取的是P2碼偽距觀測量,c為光速,值為3×108m/s。
下面就是按照公式,讀取相應的廣播星歷參數,計算觀測時刻的GPS衛星瞬時坐標:
3 衛星坐標的計算實例
為了驗證本文的計算衛星坐標的理論,本人經過實地設置觀測點XG01和XG03,從8月7日1:37:00開始觀測,8月7日2:47:30結束觀測過程。數據格式為RINEX標準格式,無需轉換。觀測數據文件XG012191.10O里觀測數據的讀取、觀測數據按照定義的衛星名存放,XG012191.10N里定義衛星名的相關的導航數據的讀取和存放,GPS衛星瞬時位置的計算,以上的這些過程都在MATLAB環境中實現,圖5就是在MATLAB環境里計算、繪制出的GPS衛星名為14、20、29、31和32在觀測時間段的空間運行軌跡圖。
4 結論
快速準確計算出GPS衛星在WGS-84坐標系下的瞬時位置是GPS定位里很基礎、很重要的問題,由文中描述可知,計算步驟比較繁瑣,需要注意的細節也很多,牽扯到的符號也很多。從自己對實例的計算經歷中來看,我覺得在使用衛星計算公式計算衛星瞬時坐標的時候特別要注意以下三個問題。
(1)由于每隔兩個小時,GPS接收機收到的廣播星歷才更新一次,所以用戶在根據接收機收到的衛星導航電文匯總的廣播星歷參數推算GPS的瞬時坐標的時候,一定要選取與GPS衛星的瞬時坐標時刻最相近的那組廣播星歷數據,否則誤差將會很大。
(2)由于GPS定位系統的高空動態性, 又因為衛星的發射時刻可唯一表征該時刻GPS衛星的坐標,因此應先由接收機鐘面時計算出公式中所需的GPS衛星發射時刻的鐘面時。
(3)必須把GPS接收機的觀測歷元換算成GPS秒,方可進行下一步。
參考文獻
[1]張妮,王標標.基于Matlab讀取標準RINEX格式的GPS星歷數據[J].電子設計工程,2010,18(8):23-25.
[2]王猛,張志偉.利用廣播星歷計算衛星的瞬時坐標[J].城市勘測,2010,2:89-90.
[3]劉勤志,尹長林,易重海.計算GPS衛星發射時刻的兩種方法[J].長沙電力學院學報,2004,19(1):65.
[4]Robert S.Radovanovic.Adjustment of Satellite-Based Ranging Observati- ons for precise Position and Deformation Monitoring,Ph.D.Dissertation,Depart- ment of Geomatics Englneering[J].University ofCa1Gary,2002.