陳正生,崔 陽
(信息工程大學(xué)地理空間信息學(xué)院,河南 鄭州450052)
多個(gè)衛(wèi)星導(dǎo)航系統(tǒng)的相續(xù)建設(shè)和投入使用,為廣大的導(dǎo)航定位用戶帶來了更多的選擇,也為導(dǎo)航定位服務(wù)的提升帶來了可能。由于不同的衛(wèi)星導(dǎo)航系統(tǒng)在設(shè)計(jì)理念、軌道、頻率等多方面存在著諸多差異,使得多個(gè)衛(wèi)星導(dǎo)航系統(tǒng)的集成應(yīng)用變得困難。目前多個(gè)系統(tǒng)的綜合應(yīng)用研究是一大熱點(diǎn)[1-2]。對(duì)數(shù)據(jù)處理而言,衛(wèi)星導(dǎo)航系統(tǒng)的差異主要體現(xiàn)在數(shù)據(jù)的異構(gòu)性上。在統(tǒng)一數(shù)據(jù)交換格式方面,瑞士伯爾尼大學(xué)的天文學(xué)院提出的與接收機(jī)無關(guān)的交換格式(RINEX),并且在這方面做了大量的工作,已經(jīng)成為導(dǎo)航衛(wèi)星系統(tǒng)接收機(jī)數(shù)據(jù)格式的統(tǒng)一標(biāo)準(zhǔn)。RINEX整合了接收機(jī)的異同,但是無法屏蔽不同衛(wèi)星導(dǎo)航系統(tǒng)的信號(hào)差異。其采取的辦法是針對(duì)不同的系統(tǒng)設(shè)計(jì)不同的格式。為了屏蔽星歷文件的差異,美國大地測(cè)量局(NGS)提出標(biāo)準(zhǔn)軌道格式,目前使用最廣泛的是SP3。同時(shí)國際GPS服務(wù)(IGS)在其網(wǎng)站上將事后處理的精密星歷數(shù)據(jù)以SP3文件格式發(fā)布。眾多不同格式的星歷數(shù)據(jù)源,為導(dǎo)航衛(wèi)星星歷的使用者帶來了極大的不便,并且這些離散存儲(chǔ)的導(dǎo)航星歷通常并不能直接使用,還需要做進(jìn)一步的解算。為方便多導(dǎo)航系統(tǒng)的集成研究和應(yīng)用,有必要建立統(tǒng)一的導(dǎo)航星歷數(shù)據(jù)源模型。
導(dǎo)航衛(wèi)星星歷信息是GNSS數(shù)據(jù)解算的基本信息之一,包含導(dǎo)航衛(wèi)星在某一時(shí)刻的位置、運(yùn)行狀態(tài)、衛(wèi)星鐘等信息。導(dǎo)航衛(wèi)星星歷的異構(gòu)性主要體現(xiàn)在衛(wèi)星導(dǎo)航系統(tǒng)星歷信號(hào)的差異及其記錄格式的差異。目前,比較著名的導(dǎo)航系統(tǒng)有GPS、GLONASS、GALILEO、COMPASS及一些區(qū)域增強(qiáng)系統(tǒng)(SBAS),由于這些系統(tǒng)涉及不同國家或地區(qū)、系統(tǒng)設(shè)計(jì)各異,并且花費(fèi)巨大,要想統(tǒng)一其星歷數(shù)據(jù)格式和內(nèi)容是不太可能的。另外,由于導(dǎo)航衛(wèi)星星歷的發(fā)播機(jī)構(gòu)和發(fā)播時(shí)間不同,其數(shù)據(jù)格式也存在著差異性,如GPS發(fā)播的是衛(wèi)星軌道根數(shù),而GLONASS則是衛(wèi)星的瞬時(shí)位置,IGS數(shù)據(jù)服務(wù)中心定期發(fā)布導(dǎo)航衛(wèi)星的精密星歷是SP3文件格式。目前各機(jī)構(gòu)的星歷數(shù)據(jù)主要以單文件形式進(jìn)行存儲(chǔ)和發(fā)布。這些文件形式存儲(chǔ)的星歷數(shù)據(jù)在采用基準(zhǔn)、記錄格式、記錄內(nèi)容、采樣率、發(fā)布時(shí)間、計(jì)算精度等方面都存在著差異,如表1所示。
除以上差異外,星歷數(shù)據(jù)源還有以其它方式進(jìn)行表達(dá)和存儲(chǔ)的,如關(guān)系數(shù)據(jù)庫、二進(jìn)制數(shù)據(jù)文件等。這些數(shù)據(jù)源在表達(dá)和存儲(chǔ)方式各有特點(diǎn),可以滿足不同階段和層次的存儲(chǔ)需求,但是從星歷使用者角度來看,這些異構(gòu)的星歷數(shù)據(jù)源大大地加大了其使用難度,并且這些數(shù)據(jù)源通常還需要進(jìn)行復(fù)雜的計(jì)算才能使用。如GPS廣播星歷參數(shù)包括基本開普勒軌道參數(shù)和一些攝動(dòng)系數(shù),用戶必須由上述參數(shù)才可以計(jì)算衛(wèi)星在地心地固坐標(biāo)系中的位置[3-4];精密星歷則是以 SP3文件記錄衛(wèi)星每15 min的三維軌道坐標(biāo),用戶必須進(jìn)行適當(dāng)?shù)臄M合或差值才能使用[5-6]。而一般用戶并不在意這些底層的數(shù)據(jù)格式、存儲(chǔ)類型,也不愿意去實(shí)現(xiàn)這些復(fù)雜的算法,而只在乎星歷信息的本身,包含指定衛(wèi)星的瞬時(shí)坐標(biāo)和鐘差,即星歷服務(wù)與星歷接口。
接口采用統(tǒng)一建模語言(UML)進(jìn)行實(shí)現(xiàn)。首先設(shè)計(jì)服務(wù)類接口IEphemerisService和星歷信息接口IEphemerisInfo,如圖1所示。服務(wù)類對(duì)外提供星歷服務(wù),包含數(shù)據(jù)源和獲取星歷信息的方法。星歷信息接口包含一顆衛(wèi)星的GPS時(shí)刻,衛(wèi)星坐標(biāo)、速度、鐘差、鐘漂。其中衛(wèi)星標(biāo)識(shí)以PRN表示,包含了衛(wèi)星導(dǎo)航系統(tǒng)和衛(wèi)星編號(hào)。
圖1 星歷服務(wù)和星歷信息接口
星歷數(shù)據(jù)源接口為IEphemerisDataSource,與文件、數(shù)據(jù)庫、網(wǎng)絡(luò)三種數(shù)據(jù)源接口建立繼承關(guān)系,分別為 IFileEphemerisDataSource、IDatabaseEphemerisDataSource和INetEphemerisDataSource.另外數(shù)據(jù)源有單源和多數(shù)據(jù)源之分,因此定義接口IEphemerisDataSourceCollection表示多源星歷數(shù)據(jù),并令其繼承ICollection<IEphemerisData-Source>集合接口,同時(shí)該集合接口也是屬于數(shù)據(jù)源,因此也繼承自IEphemerisDataSource,其繼承關(guān)系類圖如圖2所示。
圖2 數(shù)據(jù)源接口設(shè)計(jì)
對(duì)于文件數(shù)據(jù)源以抽象類FileEphemeris-DataSource表示,其為IFileEphemerisDataSource接口的實(shí)現(xiàn),封裝了常用的文件相關(guān)屬性和方法。GPS導(dǎo)航文件、GLONASS導(dǎo)航文件和SP3文件都屬于文件類型,分別以 GlonassNavFile、GpsNavFile和SP3File命名,繼承自抽象類FileEphemerisDataSource.多個(gè)文件組成的數(shù)據(jù)源FileEphemerisDataSourceCollectio,即實(shí)現(xiàn)文件數(shù)據(jù)源接口IFileEphemerisDataSource也實(shí)現(xiàn)集合接口IEphemerisDataSourceCollection,如圖3所示。
圖3 文件形式的星歷數(shù)據(jù)源
定義好各種接口和類之后,就是類中具體方法和屬性的實(shí)現(xiàn)了。不同格式的數(shù)據(jù)源之間的差異被封裝在實(shí)體類中,而外部訪問者只需通過接口調(diào)用。以RINEX表示的GPS導(dǎo)航文件為例,文件記錄衛(wèi)星在某歷元下的軌道根數(shù)、原子鐘、衛(wèi)星狀態(tài)信息等。GpsNavFile類在實(shí)現(xiàn)接口方法GetEphemerisInfo過程中,需要根據(jù)衛(wèi)星編號(hào)和請(qǐng)求時(shí)刻尋找到相應(yīng)的文件記錄,然后將軌道根數(shù)計(jì)算為衛(wèi)星位置;而SP3精密星歷文件的實(shí)現(xiàn)SP3File類,只需要判斷請(qǐng)求時(shí)間是否在該文件范圍內(nèi),再進(jìn)行擬合;對(duì)于多個(gè)數(shù)據(jù)源組成的集合類型,則需要判斷時(shí)段有效性,直接調(diào)用子數(shù)據(jù)源就可以了。這些底層實(shí)現(xiàn)差異是相當(dāng)大的,但是對(duì)于以接口訪問的程序是透明的。同樣,如果需要增加其它格式的數(shù)據(jù)源或自定義格式的數(shù)據(jù)源,只要實(shí)現(xiàn)該接口,在工廠方法中注冊(cè)該類就可以了,不會(huì)影響系統(tǒng)的其它部分。
圖4示出了創(chuàng)建文件數(shù)據(jù)源的工廠方法,采用C#語言描述,其中 GetFileEphemerisType-FromPath方法的作用是通過文件名稱,即最后一個(gè)字符,判斷導(dǎo)航衛(wèi)星星歷文件的類型。
圖4 文件數(shù)據(jù)源的創(chuàng)建
由于屏蔽了底層數(shù)據(jù)格式的差異,基于此模型的應(yīng)用系統(tǒng)可以輕易實(shí)現(xiàn)多種格式的星歷數(shù)據(jù)的同步操作,如衛(wèi)星軌跡分析,可見度分析等。圖5分別示出了三個(gè)不同衛(wèi)星系統(tǒng)的導(dǎo)航衛(wèi)星在同一時(shí)段的運(yùn)行軌道圖。
圖5 不同系統(tǒng)衛(wèi)星的運(yùn)行軌跡
基于Web的星歷服務(wù)系統(tǒng)可以通過瀏覽器即時(shí)查詢星歷信息。圖6示出了單顆衛(wèi)星星歷服務(wù)界面,用戶只需要輸入衛(wèi)星編號(hào)PRN和GPS時(shí)間,就可以返回請(qǐng)求衛(wèi)星在當(dāng)前時(shí)刻的運(yùn)行狀態(tài)和鐘差信息。而星歷數(shù)據(jù)源的存儲(chǔ)、更新、計(jì)算和整合等繁瑣而復(fù)雜的工作,由后臺(tái)完成?;?Web的星歷服務(wù)同時(shí)也實(shí)現(xiàn)了面向服務(wù)架構(gòu)(SOA),用戶可直接通過網(wǎng)絡(luò)用程序綁定應(yīng)用,從而進(jìn)行更高層次的開發(fā)和應(yīng)用。
圖6 基于Web的星歷服務(wù)系統(tǒng)
隨著多個(gè)衛(wèi)星導(dǎo)航系統(tǒng)的建立和完善,數(shù)據(jù)源異構(gòu)問題已經(jīng)越來越明顯,使得各種系統(tǒng)的集成應(yīng)用越來越困難。針對(duì)多星歷數(shù)據(jù)源的問題,設(shè)計(jì)的星歷數(shù)據(jù)源統(tǒng)一模型和應(yīng)用接口,從邏輯模型層次屏蔽了底層數(shù)據(jù)數(shù)據(jù)源的差異,對(duì)外以接口形式提供服務(wù),在此基礎(chǔ)上,可以方便的開展多系統(tǒng)星歷的進(jìn)一步應(yīng)用工作。
[1]王正軍.GPS/GLONASS組合精密單點(diǎn)定位性能分析[J].大地測(cè)量與地球動(dòng)力學(xué),2012,32(2):105-109.
[2]張小紅,郭 斐,李星星,等.GPS/GLONASS組合精密單點(diǎn)定位研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版,2010(1):9-12.
[3]劉偉平,郝金明.一種新的IGS精密星歷插值算法[J].武漢大學(xué)學(xué)報(bào) · 信息科學(xué)版,2011,36(11):1320-1323.
[4]MONTENBRUCK O,EBERHARD G.Satellite orbits-models,methods,and applications[M].New York:Springer-Verlag,2000.
[5]萬家歡,莊春華,陳秀萬,等.導(dǎo)航衛(wèi)星軌道擬合方法與仿真研究[J].測(cè)繪通報(bào),2012(7):1-5.
[6]崔先強(qiáng),焦文海,賈小林,等.GPS廣播星歷參數(shù)擬合算法[J].測(cè)繪學(xué)院學(xué)報(bào),2004,21(4):244-249.