本發(fā)明涉及一種基于web服務(wù)的空間態(tài)勢(shì)信息共享方法及系統(tǒng),屬于空間信息處理技術(shù)領(lǐng)域。
背景技術(shù):
隨著空間技術(shù)的迅速發(fā)展,外層空間得到了廣泛的開發(fā)和利用。各國發(fā)射進(jìn)入外層空間的航天器數(shù)量越來越多。這些航天器,在對(duì)地遙感觀測(cè)、導(dǎo)航、通訊等諸多領(lǐng)域發(fā)揮了極其重要的作用。隨著空間軌道上的航天器與人類開展科學(xué)研究、社會(huì)與經(jīng)濟(jì)活動(dòng)的關(guān)系越來越密切,越來越多的人需要實(shí)時(shí)的了解或得到所關(guān)心航天器的目前所處的實(shí)時(shí)位置以及運(yùn)行趨勢(shì)。比如,導(dǎo)航應(yīng)用需要了解GPS或者北斗衛(wèi)星的實(shí)時(shí)的位置、國土資源監(jiān)測(cè)用戶需要了解資源遙感衛(wèi)星過境某個(gè)區(qū)域的時(shí)段、無線電愛好者需要得到中繼衛(wèi)星過境的方位和時(shí)段等等。
為了實(shí)時(shí)監(jiān)視這些空間目標(biāo),世界各大國紛紛投入巨資,建設(shè)了規(guī)模龐大的軌道目標(biāo)跟蹤與監(jiān)視網(wǎng)絡(luò)。例如,美國北美防空司令部(NORAD)就長期對(duì)航天器等空間駐留物體進(jìn)行了跟蹤、識(shí)別、整理和編目,并通過網(wǎng)站(celestrak.com和space-track.org)準(zhǔn)實(shí)時(shí)的對(duì)外發(fā)布編目結(jié)果和兩行根數(shù)形式(Two Lines Elements,TLE)的軌道根數(shù)。利用這些軌道根數(shù),用戶使用專用的計(jì)算軟件,可以預(yù)報(bào)所關(guān)心航天器在一段時(shí)間內(nèi)的位置。但是,目前要完成這個(gè)工作,用戶需要在網(wǎng)站上查找衛(wèi)星的軌道根數(shù),并利用專業(yè)軟件自行開展衛(wèi)星的軌道,過程不僅繁瑣、復(fù)雜,而且對(duì)于非專業(yè)來說,由于涉及復(fù)雜的坐標(biāo)系統(tǒng)、時(shí)間系統(tǒng)的轉(zhuǎn)換,往往無法得到所需要的空間態(tài)勢(shì)信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于web服務(wù)的空間態(tài)勢(shì)信息共享方法,以解決目前空間態(tài)勢(shì)信息無法準(zhǔn)確、快速獲取的問題。本發(fā)明還提供了一種基于web服務(wù)的空間態(tài)勢(shì)信息共享系統(tǒng)。
本發(fā)明為解決上述技術(shù)問題而提供一種基于web服務(wù)的空間態(tài)勢(shì)信息共享方法,該方法包括以下步驟:
1)下載并解析所有編目航天器的屬性和航天器TLE根數(shù)軌道數(shù)據(jù),并將結(jié)果存入航天器信息數(shù)據(jù)庫中;
2)解析用戶發(fā)送的航天器信息網(wǎng)絡(luò)查詢請(qǐng)求,獲取用戶需要查詢的需求;
3)按照所述需求從航天器信息數(shù)據(jù)庫中查詢相應(yīng)航天器屬性和軌道根數(shù),并將航天器信息查詢結(jié)果組織成JSON或者XML格式文件,通過http協(xié)議返回給用戶。
進(jìn)一步地,當(dāng)用戶有查詢航天器位置需求時(shí),所述步驟3)還需要根據(jù)從航天器信息數(shù)據(jù)庫模塊中查詢得到的TLE軌道根數(shù)和用戶請(qǐng)求的查詢時(shí)間段計(jì)算航天器的位置,并將航天器的位置計(jì)算結(jié)果組織成JSON或者XML格式文件,通過http協(xié)議返回給用戶。
進(jìn)一步地,所述的步驟3)中航天器位置指的是航天器在J2000地心慣性坐標(biāo)系中的位置,該位置信息是http服務(wù)器模塊采用SGP4/SDP4計(jì)算模型計(jì)算得到。
進(jìn)一步地,當(dāng)用戶查詢航天器在地理坐標(biāo)系位置時(shí),所述步驟3)還需要將航天器在J2000地心慣性坐標(biāo)系中的位置轉(zhuǎn)換到地理坐標(biāo)系,所采用的轉(zhuǎn)換公式為:
其中M為極移矩陣,G為格林尼治真恒星時(shí)矩陣,N為章動(dòng)矩陣,P為歲差矩陣,為航天器在地理坐標(biāo)系下的坐標(biāo),為航天器在J2000地心慣性坐標(biāo)系中的坐標(biāo)。
進(jìn)一步地,所述步驟1)中航天器信息數(shù)據(jù)庫采用MariaDB搭建,航天器信息數(shù)據(jù)庫模塊查詢利用Qt C++進(jìn)行訪問。
本發(fā)明還提供了一種基于web服務(wù)的空間態(tài)勢(shì)信息共享系統(tǒng),該共享系統(tǒng)包括航天器信息下載模塊、航天器信息數(shù)據(jù)庫模塊和http服務(wù)器模塊,
所述的航天器信息下載模塊用于下載并解析所有編目航天器的屬性和航天器TLE根數(shù)軌道數(shù)據(jù);
所述的航天器信息數(shù)據(jù)庫模塊用于存入航天器信息下載模塊所下載的航天器的屬性和航天器TLE根數(shù)軌道數(shù)據(jù),并為http服務(wù)器模塊提供查詢服務(wù);
所述的http服務(wù)器模塊用于解析用戶發(fā)送的航天器信息網(wǎng)絡(luò)查詢請(qǐng)求,獲取用戶需要查詢的需求,按照所述需求從航天器信息數(shù)據(jù)庫模塊中查詢相應(yīng)航天器屬性和軌道根數(shù),并將航天器信息查詢結(jié)果組織成JSON或者XML格式文件,通過http協(xié)議返回給用戶。
進(jìn)一步地,當(dāng)用戶有查詢航天器位置需求時(shí),所述的http服務(wù)器模塊還需要根據(jù)從航天器信息數(shù)據(jù)庫模塊中查詢得到的TLE軌道根數(shù)和用戶請(qǐng)求的查詢時(shí)間段計(jì)算航天器的位置,并將航天器的位置計(jì)算結(jié)果組織成JSON或者XML格式文件,通過http協(xié)議返回給用戶。
進(jìn)一步地,所述的航天器位置指的是航天器在J2000地心慣性坐標(biāo)系中的位置,該位置信息是http服務(wù)器模塊采用SGP4/SDP4計(jì)算模型計(jì)算得到。
進(jìn)一步地,當(dāng)用戶查詢航天器在地理坐標(biāo)系位置時(shí),所述的http服務(wù)器模塊還需要將航天器在J2000地心慣性坐標(biāo)系中的位置轉(zhuǎn)換到地理坐標(biāo)系,所采用的轉(zhuǎn)換公式為:
其中M為極移矩陣,G為格林尼治真恒星時(shí)矩陣,N為章動(dòng)矩陣,P為歲差矩陣,為航天器在地理坐標(biāo)系下的坐標(biāo),為航天器在J2000地心慣性坐標(biāo)系中的坐標(biāo)。
進(jìn)一步地,所述的航天器信息數(shù)據(jù)庫模塊采用MariaDB搭建,航天器信息數(shù)據(jù)庫模塊查詢利用Qt C++進(jìn)行訪問。
本發(fā)明的有益效果是:本發(fā)明首先下載并解析所有編目航天器的屬性和航天器TLE根數(shù)軌道數(shù)據(jù),并將結(jié)果存入航天器信息數(shù)據(jù)庫中;然后解析用戶發(fā)送的航天器信息網(wǎng)絡(luò)查詢請(qǐng)求,獲取用戶需要查詢的需求;最后按照所述需求從航天器信息數(shù)據(jù)庫中查詢相應(yīng)航天器屬性和軌道根數(shù),并將航天器信息查詢結(jié)果組織成JSON或者XML格式文件,通過http協(xié)議返回給用戶。本發(fā)明通過http協(xié)議支持下的Web Service標(biāo)準(zhǔn)提供公眾服務(wù),能夠使公眾能快速、準(zhǔn)確、方便的獲取航天器信息。
此外,公眾不需要下載軌道根數(shù),也不需要進(jìn)行復(fù)雜的軌道計(jì)算,就可以方便、快捷的獲取所關(guān)心航天器的屬性、實(shí)時(shí)位置、未來運(yùn)行軌跡等空間態(tài)勢(shì)信息。
附圖說明
圖1是基于web服務(wù)的空間態(tài)勢(shì)信息共享方法的流程圖;
圖2是http服務(wù)器工作原理圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做進(jìn)一步的說明。
本發(fā)明基于web服務(wù)的空間態(tài)勢(shì)信息共享方法的實(shí)施例
為了讓公眾能快速、準(zhǔn)確、方便的獲取航天器實(shí)時(shí)位置與未來運(yùn)行規(guī)律,本發(fā)明提供了一種基于web服務(wù)的空間態(tài)勢(shì)信息共享方法,該方法通過互聯(lián)網(wǎng)準(zhǔn)實(shí)時(shí)同步NORAD最新編目信息和軌道根數(shù),并且在服務(wù)器完成復(fù)雜的軌道計(jì)算,通過標(biāo)準(zhǔn)http協(xié)議支持下的Web Service標(biāo)準(zhǔn),為公眾提供共享數(shù)據(jù),公眾不需要下載軌道根數(shù),也不需要進(jìn)行復(fù)雜的軌道計(jì)算。而是可以利用互聯(lián)網(wǎng),通過輸入簡(jiǎn)單參數(shù),就可以方便、快捷的獲取所關(guān)心航天器的屬性、實(shí)時(shí)位置、未來運(yùn)行軌跡等空間態(tài)勢(shì)信息。該方法的流程如圖1所示,具體實(shí)施步驟如下。
1.下載航天器屬性和航天器TLE軌道根數(shù)數(shù)據(jù)。
航天器屬性與TLE軌道根數(shù)的下載與更新是保證空間態(tài)勢(shì)服務(wù)現(xiàn)勢(shì)性的重要途徑,本發(fā)明分別通過Celestrak網(wǎng)站保證航天器屬性信息,通過space-track網(wǎng)址同步TLE軌道根數(shù)信息,來確保航天器信息與美國最新探測(cè)結(jié)果一致,本發(fā)明以1天為周期,自動(dòng)連接Celestrak和space-track.com網(wǎng)站,自動(dòng)下載并解析所有編目航天器的屬性和兩行根數(shù)軌道數(shù)據(jù)。
Celestrak網(wǎng)站在網(wǎng)址http://celestrak.com/pub/satcat.txt中存儲(chǔ)了航天器等所有空間目標(biāo)最新探測(cè)結(jié)果的編目和屬性信息,航天器的屬性信息如表1所示。
表1
space-track.org網(wǎng)站可以提供TLE軌道根數(shù)的實(shí)時(shí)下載功能,下載地址如下:
https://www.space-track.org/basicspacedata/query/class/tle_latest/ORDINAL/1/EPOCH/%3Enow-30/orderby/NORAD_CAT_ID/format/3le
本發(fā)明每天定時(shí)通過互聯(lián)網(wǎng)自動(dòng)下載衛(wèi)星屬性數(shù)據(jù)和TLE軌道根數(shù)數(shù)據(jù)到本地,再根據(jù)屬性數(shù)據(jù)和TLE數(shù)據(jù)中的航天器ID編號(hào)關(guān)聯(lián)融合,形成統(tǒng)一、一致的數(shù)據(jù)表,存儲(chǔ)于航天器信息數(shù)據(jù)庫的“SAT”數(shù)據(jù)表中,該數(shù)據(jù)表即可作為空間態(tài)勢(shì)服務(wù)的核心數(shù)據(jù)源。
2.解析用戶發(fā)送的航天器信息網(wǎng)絡(luò)查詢請(qǐng)求,獲取用戶需要查詢的需求。
本發(fā)明用戶通過http服務(wù)器提供的Web Service發(fā)起查詢請(qǐng)求,具體地,如圖2所示,客戶由客戶端發(fā)送請(qǐng)求到http server,http Listener接受連接,創(chuàng)建http Processor對(duì)象;由http Processor對(duì)象讀取tcp連接上的客戶請(qǐng)求數(shù)據(jù),并利用HttpRequestDecoder將數(shù)據(jù)解碼成HttpRequest對(duì)象;http Processor對(duì)象根據(jù)HttpRequest對(duì)象獲取用戶需要查詢的需求,根據(jù)需求從航天器信息數(shù)據(jù)庫中查詢航天器的屬性和TLE軌道根數(shù)。
3.按照所述需求從航天器信息數(shù)據(jù)庫中查詢相應(yīng)航天器屬性和軌道根數(shù)。
本實(shí)施例中航天器信息數(shù)據(jù)庫采用MariaDB搭建儲(chǔ)航天器信息數(shù)據(jù)庫,該數(shù)據(jù)庫采用Qt C++訪問,航天器信息數(shù)據(jù)庫查詢主要步驟包括:首先打開數(shù)據(jù)庫、構(gòu)建SQL查詢語句、執(zhí)行數(shù)據(jù)庫查詢?nèi)齻€(gè)步驟。利用QSqlDatabase的addDatabase("QMYSQL","smariadbObject")函數(shù)以及open()函數(shù),可以打開數(shù)據(jù)庫;然后根據(jù)SQL語句規(guī)則、字段名稱以及用戶需求,構(gòu)造查詢SQL語句和QSqlQuery對(duì)象;再調(diào)用QSqlQuery對(duì)象的exec函數(shù)執(zhí)行數(shù)據(jù)庫查詢工作。QSqlQuery對(duì)象即可得到查詢結(jié)果,根據(jù)字段名稱和索引,獲取查詢的字段值。
如果用戶有查詢衛(wèi)星位置需求,需要根據(jù)從數(shù)據(jù)庫中查詢得到的TLE軌道根數(shù)和用戶請(qǐng)求的查詢時(shí)間段,計(jì)算航天器的位置,并根據(jù)用戶輸入對(duì)結(jié)果坐標(biāo)系統(tǒng)的要求,轉(zhuǎn)換到相應(yīng)的坐標(biāo)系統(tǒng)。
目前成熟的、國際通用的TLE軌道計(jì)算方法采用的是NORAD和NASA發(fā)布的SGP4/SDP4計(jì)算模型,SGP4/SDP4計(jì)算模型充分考慮了一般攝動(dòng)包括地區(qū)扁率、日月引力的長期和周期攝動(dòng)影響,以及大氣阻力產(chǎn)生的引力共振和軌道衰退。其中SGP4主要用于軌道周期小于225分鐘的近地軌道物體,SDP4用于軌道周期大于225分鐘的地球軌道物體的軌道計(jì)算。將獲取的TLE軌道根數(shù)和時(shí)刻帶入到該模型,即可計(jì)算得到相應(yīng)時(shí)刻的航天器在J2000地心慣性坐標(biāo)系中的位置和速度。
對(duì)于不少行業(yè)應(yīng)用來說,希望能得到航天器在地理坐標(biāo)系(如地心地固坐標(biāo)系或WGS經(jīng)緯度坐標(biāo)系等)中的位置,這就需要對(duì)TLE軌道計(jì)算得到的航天器在J2000地心慣性坐標(biāo)系(ECI)中的位置進(jìn)行坐標(biāo)系統(tǒng)轉(zhuǎn)換。當(dāng)用戶查詢航天器在地理坐標(biāo)系位置時(shí),所述的http服務(wù)器模塊還需要將航天器在J2000地心慣性坐標(biāo)系中的位置轉(zhuǎn)換到地理坐標(biāo)系,所采用的轉(zhuǎn)換公式為:
其中M為極移矩陣,G為格林尼治真恒星時(shí)矩陣,N為章動(dòng)矩陣,P為歲差矩陣,為航天器在地理坐標(biāo)系下的坐標(biāo),為航天器在J2000地心慣性坐標(biāo)系中的坐標(biāo)。
4.將得到的航天器屬性和軌道位置的查詢結(jié)果通過http協(xié)議返回給客戶端。
本發(fā)明采用REST(RepresentationalState Transfer)方式構(gòu)建Web Service服務(wù)。客戶端http請(qǐng)求數(shù)據(jù)的方式采用URI(統(tǒng)一資源標(biāo)識(shí))的方式,訪問空間態(tài)勢(shì)信息的web服務(wù)。具體格式如下:
http://hostname:port/sc?json=queryJsonString
其中,hostname為服務(wù)器IP或者域名,port為端口號(hào),比如:www.cnssa.cn:8080?!皊c”為本發(fā)明規(guī)定的查詢航天器信息的關(guān)鍵字,表示spacecraft,服務(wù)端應(yīng)用程序會(huì)根據(jù)該標(biāo)識(shí)符調(diào)用航天器查詢和軌道計(jì)算功能,標(biāo)識(shí)符“sc”具有一個(gè)參數(shù)“json”,其值queryJsonString為json格式字符串,用于向服務(wù)器端發(fā)送查詢的需求。queryJsonString中json字段格式說明如表2。
表2
其中jsonp為true時(shí),查詢返回的json格式字符串會(huì)放置于“callback()”的括號(hào)中,用于網(wǎng)頁跨域訪問支持。非網(wǎng)頁客戶端,無需callback關(guān)鍵字,即將jsonp設(shè)置為false即可。query嵌套有一個(gè)json格式查詢條件,其中字段如表3所示。
表3
通過上述過程,用戶可以根據(jù)自身需求查詢航天器屬性和軌道數(shù)據(jù)。例如,若用戶要查詢中國(PRC)所有衛(wèi)星的屬性信息,可以使用如下格式http請(qǐng)求:
http://hostname:8800/sc?json={"method":"query","jsonp":true,"query":{"owner":"PRC","status":"Active"}}
再如,查詢中國(PRC)所有衛(wèi)星在2016-08-1903:21:11到2016-08-1903:51:11時(shí)間段內(nèi),步長60秒的軌道數(shù)據(jù),使用如下請(qǐng)求格式。
http://hostname:8800/sc?json={"method":"query","query":{"jsonp":true,"status":"Active","orbit":1,"mission":"Navigation","start":"2016-08-19T03:21:11","stop":"2016-08-19T03:51:11","step":60}}
用戶提交上述格式請(qǐng)求后,服務(wù)器將通過http協(xié)議,以json數(shù)組的格式返回查詢和計(jì)算結(jié)果。格式如下:
callback([resultJsonString1,resultJsonString2,resultJsonString3…]
數(shù)組的每個(gè)單元(resultJsonString)為一個(gè)航天器查詢和計(jì)算結(jié)果,resultJsonString字段說明如表4所示,“callback()”是當(dāng)查詢條件中jsonp為true時(shí)出現(xiàn),主要用于網(wǎng)頁跨域訪問。
表4
其中orbitdata=[T,X,Y,Z,VX,VY,VZ,Lat,Lon,Alt…]為軌道計(jì)算結(jié)果數(shù)組,每10個(gè)數(shù)為一組,分別代表[T,X,Y,Z,VX,VY,VZ,Lat,Lon,Alt],其中T為起始時(shí)刻到當(dāng)前時(shí)刻的秒數(shù),X、Y、Z表示航天器在該時(shí)刻J2000地心慣性坐標(biāo)系中的位置,VX、VY、VZ表示航天器在該時(shí)刻J2000地心慣性坐標(biāo)系中的速度,Lat、Lon、Alt表示航天器在該時(shí)刻WGS84坐標(biāo)系中的緯度、經(jīng)度、高度。返回值中,包含用戶查詢的航天器屬性信息,也包含用戶需要的指定時(shí)間段的位置信息,用戶通過構(gòu)建http查詢條件,即可得到用戶所關(guān)心的航天器信息以及在指定時(shí)刻的位置信息。
本發(fā)明基于web服務(wù)的空間態(tài)勢(shì)信息共享系統(tǒng)的實(shí)施例
本實(shí)施例中的共享系統(tǒng)包括航天器信息下載模塊、航天器信息數(shù)據(jù)庫模塊和http服務(wù)器模塊,航天器信息下載模塊用于下載并解析所有編目航天器的屬性和航天器TLE根數(shù)軌道數(shù)據(jù);航天器信息數(shù)據(jù)庫模塊用于存入航天器信息下載模塊所下載的航天器的屬性和航天器TLE根數(shù)軌道數(shù)據(jù),并為http服務(wù)器模塊提供查詢服務(wù);http服務(wù)器模塊用于解析用戶發(fā)送的航天器信息網(wǎng)絡(luò)查詢請(qǐng)求,獲取用戶需要查詢的需求,按照所述需求從航天器信息數(shù)據(jù)庫模塊中查詢相應(yīng)航天器屬性和軌道根數(shù),并將航天器信息查詢結(jié)果組織成JSON或者XML格式文件,通過http協(xié)議返回給用戶。各模塊的具體實(shí)現(xiàn)手段已在方法的實(shí)施例中進(jìn)行了詳細(xì)說明,這里不再贅述。
本發(fā)明通過互聯(lián)網(wǎng)準(zhǔn)實(shí)時(shí)同步NORAD最新編目信息和軌道根數(shù),并且在服務(wù)器完成復(fù)雜的軌道計(jì)算,通過標(biāo)準(zhǔn)http協(xié)議支持下的Web Service標(biāo)準(zhǔn),提供公眾服務(wù);公眾不需要下載軌道根數(shù),也不需要進(jìn)行復(fù)雜的軌道計(jì)算,而是可以利用互聯(lián)網(wǎng),通過輸入簡(jiǎn)單參數(shù),就可以方便、快捷的獲取所關(guān)心航天器的屬性、實(shí)時(shí)位置、未來運(yùn)行軌跡等空間態(tài)勢(shì)信息。本發(fā)明有效提高了空間態(tài)勢(shì)信息公眾服務(wù)水平,為更多的行業(yè)和個(gè)人分享空間技術(shù)發(fā)展帶來了便利。