專利名稱:全球導航系統的觀測值文件編解碼方法
技術領域:
本發明屬于全球導航系統技術領域,特別涉及一種全 球導航系統的觀測值文件編解碼方法。
背景技術:
全球導航系統的英文為Global Positioning System,本領域習慣簡稱為GPS。GPS 事后觀測數據都通過文件的形式進行傳輸與保持,文件格式普遍采用標準的RINEX格式, RINEX格式是GPS通用數據交換格式文件,包含觀測數據文件、星歷文件、氣象數據文件等。 目前,所有測量型GPS接收機廠商都提供將其專有格式文件轉換為RINEX格式文件的工具, 而且幾乎所有的事后數據分析處理軟件都能夠直接讀取RINEX格式的數據。由于采集觀測數據是在野外作業中的問題,對數據文件進行無損編碼壓縮,是提高有效儲存空間的重要途徑。RINEX格式采用ASCII碼存在較大的壓縮余地,尤其在高頻采樣(20 50HZ)的大型基準站網絡系統中,如果采用RINEX格式一天的觀測數據可以達到5G,假設基準站數量成百上千,每天數據量將是IO3量級(G),對連續運行系統每日維持如此海量數據的傳輸與存儲管理將是很大的挑戰。對數據文件進行無損壓縮是減輕數據鏈路傳送數據的壓力和節省數據中心存儲介質容量,降低用于傳輸和存儲數據成本的最有效的方法。因此目前已有接收機廠商采用的自主設計的壓縮格式,例如Trimble公司的TOl格式,IGS數據中心采用的Hatanaka RINEX格式(能夠壓縮25 30%的大小),南方測繪的STH格式等等。在編碼壓縮過程中,如何對歷元數據進行有效的壓縮,是這項技術的關鍵。完整度,壓縮率和壓縮速度,是評價一項壓縮技術方案的三個重要指標。存歷元間差數法或利用 Huffman算法,對RINEX格式GPS觀測文件進行壓縮,壓縮率分別為70%和45%左右,壓縮率和壓縮速度也有一定的限制,壓縮效果一般,不足以滿足大項目的海量數據量的處理。更高效無損的GPS觀測文件編碼格式與壓縮方法,有待繼續研究。
發明內容
本發明目的在于提供一種更高效的GPS觀測值文件編解碼方法。本發明的技術方案包括全球導航系統的觀測值文件編碼方法,對觀測值文件中的歷元數據進行壓縮處理,壓縮時按照歷元的時間順序,將觀測值文件中每N個歷元的歷元數據存儲到1個模塊中,N值由用戶預先設定;在每個模塊內部,處理方式如下,首先,以模塊中的第一個歷元的歷元數據第一行為基礎,將模塊中其他歷元的歷元數據第一行與第一個歷元的歷元數據第一行分別進行對比,相同的內容不再存放,只將不同的內容保留;然后,對模塊中N個歷元的歷元數據中所含衛星觀測數據,進行二次求差,所述二次求差的實現過程包括第一次求差和第二次求差,將模塊內第i個歷元的衛星觀測數據記為Xi, i的取值范圍為1至N,第一次求差時產生的差值為X2-X^ X3-X^hXn-Xim,第二次求差時產生的差值為(X3-X2)-(X2-X1)A (X4-X3)-(X3-X2)…(Xn-Xm)-(Xm-Xn^2);存儲第一個歷元的衛星觀測數據X1、第一次求差產生的第一個差值X2-X1和第二次求差產生的所有差值 (X3-X2) - (X2-X1)、(X4-X3) - (X3-X2)…(Xn-Xim) “ (Χη-Χμ),取代 N 個歷元的歷元數據中所含衛星觀測數據Xi、XfXN。而且,預設的N值為120。而且,對觀測值文件中的文件頭所含多余信息進行刪改。相應地,本發明提供一種全球導航系 統的觀測值文件解碼方法,解壓某個歷元的歷元數據時,根據歷元的時間,首先找到該歷元所在的模塊,再進到模塊中按查找該歷元的衛星觀測數據壓縮值;設該歷元是所在模塊中存儲的第i個歷元,該歷元的衛星觀測數據壓縮值記為Yi, i的取值范圍為1至N :當i = 1時,該歷元的衛星觀測數據X1 = Y1 ;當i = 2時,該歷元的衛星觀測數據X2 = X^Y2 = Y^Y2 ;當i > 2時,該歷元的衛星觀測數據Xi = X^+Yi+Y^…+Y2。采用本發明提供的技術方案對RINEX格式GPS觀測文件進行壓縮,其壓縮比率在 5%以內,而且壓縮速度較快,效果比較理想。對于數據量越大的文件,壓縮比率越高。對應用在網絡RTK系統中的文件壓縮來說是一種快速、高效的方法,有利于減輕數據鏈路傳送數據的壓力和降低用于傳輸數據的成本。并且,實現過程運用模塊的思維,對所有歷元進行分組壓縮,有如下好處(1)達到了盡量取相關度高的數據進行一次、二次求差的效果,進一步壓縮了存儲空間和減少了數據的損失;(2)當只需要某一個歷元數據時,只需解碼該歷元數據所在的模塊,這樣可以大大提高解壓的速度和效率(3)模塊與模塊之間沒有相關性,當某一個模塊數據丟失時,數據仍有其價值。
圖1為本發明實施例的編碼流程圖;圖2為本發明實施例的解碼流程圖。
具體實施例方式本發明的數據壓縮編碼是針對RINEX格式的GPS觀測數據文件(包括對觀測值文件頭和數據記錄)的處理。實施例中,壓縮方法針對以下幾個部分進行,具體描述如下1對觀測值文件的文件頭進行處理觀測值文件的文件頭用于存放與整個觀測值文件有關的全局性信息。RINEX觀測數據文件的文件頭大小與觀測值文件的歷元數據相比,幾乎可以忽略不計,壓縮的主體是歷元數據。但為了更高的壓縮效率,本發明在提出觀測值文件的歷元數據壓縮方案之外,進一步提出可以對文件頭也進行壓縮,對文件頭所含多余信息進行刪改。具體刪改處理方法,可以由本領域技術人員決定。實施例對文件頭中的部分項做出修改,如創建本數據文件所采用的程序的名稱,創建本數據文件單位的名稱,本數據文件包含的數據類型等。刪除文件頭中信息沉余無實際價值的數據項目,如天線標志的名稱,天線標志編號,觀測值的歷元間隔,數據文件中第一個和最后一個觀測記錄的時刻,跳秒數, 文件中存儲有觀測值的衛星數量,每一觀測值類型涉及PRN及其觀測值的數量。2對歷元數據第一行的處理一個觀察值文件一般包含多個歷元的歷元數據。實施例中,首先按照歷元的時間順序,將觀測值文件中每N個歷元的歷元數據封裝到1個模塊中,N值由用戶預先設定。具體實施時,N值只需大于1,小于觀測值文件所含歷元數,可以由用戶根據情況靈活設定。本發明建議在存儲空間上建立以120個歷元為1個單位的模塊中,這樣原文件的歷元數據便存放到了一個個組(模塊)中。假如某天的觀測值文 件中,存放有120000個歷元數據,則 “縮小”的存儲到1000個模塊中。歷元數據的第一行是“歷元/衛星或事件標志”,用于存放該觀測歷元時刻的時標和在該歷元所觀測到衛星的數量及其列表或表明時間性質的標志。實施例具體處理方法為將模塊中第一個歷元的歷元數據第一行不改變,以此為基礎,將模塊中其余歷元的歷元數據第一行與第一個歷元的歷元數據第一行分別進行對比,相同的地方不再記錄存放,只將與第一個歷元不同的地方在對應位置表示出來。每個歷元數據的第一行與其他行的存儲是一個存儲單元,本發明按模塊存儲各歷元的歷元數據, 各歷元處理后的歷元數據第一行存放在模塊內原位置。3衛星觀測數據的壓縮和處理每個歷元的歷元數據除第一行以外,都用于存放在該歷元所采集到的所有衛星觀測數據,所占行數與在該歷元中所觀測衛星的數量有關。每個模塊內部,對N個歷元的歷元數據中所含衛星觀測數據,進行二次求差,所述二次求差的實現過程包括第一次求差和第二次求差,將模塊內第i個歷元的衛星觀測數據記為Xi, i取值范圍為1至N,第一次求差時產生的差值為X2-X^ X3-X^hXn-Xim,第二次求差時產生的差值為(X3-X2)-(X2-X1), (X4-X3) - (X3-X2) - (Xn-Xn-!) " (Xn-i-XN-2);存儲第一個歷元的衛星觀測數據X1、第一次求差產生的第一個差值X2-X1和第二次求差產生的所有差值(X3-X2) -(X2-X1)、(X4-X3) -(X3-X2)…(Xn-Xim) -(XN-rXN-2),取代 N 個歷元的歷元數據中所含衛星觀測數據Xp Χ^··ΧΝ。也就是說,第一個歷元的衛星觀測數據X1保持不變,第二個歷元的衛星觀測數據X2替換為壓縮值X2-X1,第三個歷元的衛星觀測數據X3替換為壓縮值 (X3-X2)-(X2-X1),第四個歷元的衛星觀測數據X3替換為壓縮值(X4-X3)-(X3-X2)…第N個歷元的衛星觀測數據Xn替換為壓縮值(Xn-Xim)-(Χη-ΧΜ)。即在i大于2時,第i個歷元的衛星觀測數據Xi壓縮為Yi = (Xi-Xi^1)-(X^rX^)。參見表1,以模塊中存儲10個歷元為例。在每個模塊中,將各自對應的原始文件每一個歷元的位置相對應的衛星觀測數據存放于如表1第二列中,將第二列的數據當中的后一個減去前一個的差存放于第三列中,將第三列的數據當中的后一個減去前一個的差存放于第四列中(例如10394. 264-10385. 201 = 9.063)。最終形成壓縮后的數據序列來替代在原始文件中相應數據的位置。該表中壓縮算法的實現方法原始數據 23752572.711,23762957.912,23773352.176,23783753.241,23794162. 618, 23804579. 884,23815005. 351,23825438. 362,23835879. 758,23846328. 947,經過壓縮處理后的數據序列是 23752572. 711,10385. 201,9. 063,6. 801,8. 312,7. 889,8. 201,7. 544, 8. 385,7. 793。可以看出經壓縮處理后的數據比原始的數據的存儲量小了很多。
表1
權利要求
1.一種全球導航系統的觀測值文件編碼方法,其特征在于對觀測值文件中的歷元數據進行壓縮處理,壓縮時按照歷元的時間順序,將觀測值文件中每N個歷元的歷元數據存儲到1個模塊中,N值由用戶預先設定;在每個模塊內部,處理方式如下,首先,以模塊中的第一個歷元的歷元數據第一行為基礎,將模塊中其他歷元的歷元數據第一行與第一個歷元的歷元數據第一行分別進行對比,相同的內容不再存放,只將不同的內容保留;然后,對模塊中N個歷元的歷元數據中所含衛星觀測數據,進行二次求差,所述二次求差的實現過程包括第一次求差和第二次求差,將模塊內第i個歷元的衛星觀測數據記為&, i的取值范圍為1至N,第一次求差時產生的差值為A-X1 J3I^Xn-Xn+第二次求差時產生的差值為( - )- (X2-X1)^(X4-X3)- (X3-X2) ... (Xn-Xn-I)- (Xh-XN-2);存儲第一個歷元的衛星觀測數據&、第一次求差產生的第一個差值和第二次求差產生的所有差值 (X3-X2)- (X2-X1)^(X4-X3)- (X3-X2) ... (Xn-Xn-I)- (\-i-U,取代 N 個歷元的歷元數據中所含衛星觀測數據&、)(2…\。
2.根據權利要求1所述全球導航系統的觀測值文件編碼方法,其特征在于預設的N 值為120。
3.根據權利要求1或2所述全球導航系統的觀測值文件編碼方法,其特征在于對觀測值文件中的文件頭所含多余信息進行刪改。
4.一種全球導航系統的觀測值文件解碼方法,其特征在于解壓某個歷元的歷元數據時,根據歷元的時間,首先找到該歷元所在的模塊,再進到模塊中按查找該歷元的衛星觀測數據壓縮值;設該歷元是所在模塊中存儲的第i個歷元,該歷元的衛星觀測數據壓縮值記為Yi, i的取值范圍為1至N:當i=l時,該歷元的衛星觀測數據A=Y1,當i=2時,該歷元的衛星觀測數據A=XAY2=YAt,當i>2時,該歷元的衛星觀測數據Xii^+Yi+YiV+A。
全文摘要
本發明公開一種全球導航系統的觀測值文件編解碼方法,主要針對高頻采樣大型基準站網絡系統中,數據的傳輸與存儲管理。本發明以多個歷元數據作為一個存儲單位存儲到單個模塊中,在每個模塊中,將各自對應的原始文件歷元采用二次求差法,最終形成壓縮后的數據序列來替代在原始文件中相應數據的位置。采用該技術方案,壓縮比率在5%以內,對應用在網絡RTK系統中的文件壓縮來說是一種快速、高效的方法,有利于減輕數據鏈路傳送數據的壓力和降低用于傳輸數據的成本。
文檔編號G06F17/30GK102156719SQ201110074908
公開日2011年8月17日 申請日期2011年3月28日 優先權日2011年3月28日
發明者宋偉偉, 易文婷, 樓益棟, 陳昊 申請人:武漢大學