国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

轉(zhuǎn)發(fā)式測(cè)定軌系統(tǒng)衛(wèi)星地面站觀測(cè)數(shù)據(jù)質(zhì)量分析及可視化

2017-02-05 03:44:45何大林孫高文韓偉
時(shí)間頻率學(xué)報(bào) 2017年4期
關(guān)鍵詞:容器可視化觀測(cè)

何大林,孫高文,韓偉

轉(zhuǎn)發(fā)式測(cè)定軌系統(tǒng)衛(wèi)星地面站觀測(cè)數(shù)據(jù)質(zhì)量分析及可視化

何大林,孫高文,韓偉

(中國(guó)科學(xué)院 新疆天文臺(tái),烏魯木齊 830011)

在轉(zhuǎn)發(fā)式的衛(wèi)星測(cè)定軌系統(tǒng)中,衛(wèi)星地面觀測(cè)站是其重要組成部分,每天不間斷產(chǎn)生大量高精度測(cè)距數(shù)據(jù)、氣象數(shù)據(jù)、時(shí)間同步等測(cè)量數(shù)據(jù),這些數(shù)據(jù)是實(shí)現(xiàn)衛(wèi)星精密測(cè)定軌的基礎(chǔ)。因此,地面觀測(cè)站的數(shù)據(jù)質(zhì)量及其可視化顯得尤其重要,基于此目的,采用Unix時(shí)間戳算法及vector迭代器技術(shù),利用C++ Builder開(kāi)發(fā)一套對(duì)衛(wèi)星地面站觀測(cè)數(shù)據(jù)質(zhì)量分析及其可視化的系統(tǒng)。在實(shí)際應(yīng)用中表明:此套系統(tǒng)能有效統(tǒng)計(jì)、初步篩選數(shù)據(jù),發(fā)現(xiàn)在觀測(cè)過(guò)程中的數(shù)據(jù)質(zhì)量、驗(yàn)證數(shù)據(jù)記錄時(shí)存在的問(wèn)題,更直觀地反應(yīng)各個(gè)天線(xiàn)系統(tǒng)的運(yùn)行情況,提高了觀測(cè)系統(tǒng)及設(shè)備故障排除和維護(hù)的效率。

衛(wèi)星地面站;轉(zhuǎn)發(fā)式測(cè)定軌;Unix時(shí)間戳;Vector迭代器;可視化

0 引言

世界上現(xiàn)有的四大衛(wèi)星導(dǎo)航系統(tǒng)分別是美國(guó)的GPS,俄羅斯的GLONASS,中國(guó)的BDS和歐盟的Galileo[1]。而轉(zhuǎn)發(fā)式衛(wèi)星導(dǎo)航系統(tǒng)不同于他們,高精度的原子鐘裝置在地面站,其利用位于地球同步軌道的現(xiàn)有在軌通信衛(wèi)星上的轉(zhuǎn)發(fā)器,把地面站產(chǎn)生的時(shí)間信號(hào)、軌道參數(shù)等導(dǎo)航電文及測(cè)距碼由地面站天線(xiàn)上行發(fā)射至衛(wèi)星,經(jīng)衛(wèi)星轉(zhuǎn)發(fā)器轉(zhuǎn)發(fā),再下行廣播給用戶(hù)[2],這樣用戶(hù)接收機(jī)接收到轉(zhuǎn)發(fā)的導(dǎo)航信息后就可以進(jìn)行導(dǎo)航、定位、測(cè)速和授時(shí)。這樣做不僅繞過(guò)了星載原子鐘的技術(shù)限制,而且能夠提高導(dǎo)航定位的精度,所以地面站在轉(zhuǎn)發(fā)式衛(wèi)星導(dǎo)航系統(tǒng)占有舉足輕重的作用。

目前轉(zhuǎn)發(fā)式測(cè)定軌系統(tǒng)共有6個(gè)地面站,21套天線(xiàn)觀測(cè)系統(tǒng)[3]。這些系統(tǒng)分別接收不同站點(diǎn)或同一站點(diǎn)不同天線(xiàn)發(fā)射的信號(hào),并測(cè)量時(shí)延信息。此外,同時(shí)被采集的數(shù)據(jù)還包括各個(gè)站點(diǎn)的鐘差數(shù)據(jù)、溫度、濕度、風(fēng)向和氣壓等氣象數(shù)據(jù)[4]。通常,由于存在著設(shè)備故障、儀器調(diào)試、系統(tǒng)異常等不同的情況,導(dǎo)致很多被記錄的數(shù)據(jù)并不能被加以利用。對(duì)于轉(zhuǎn)發(fā)式測(cè)定軌系統(tǒng)而言,解算某一時(shí)刻觀測(cè)目標(biāo)的位置信息需要依賴(lài)于多個(gè)站點(diǎn)的測(cè)距信息、鐘差數(shù)據(jù)和氣象數(shù)據(jù)[5]。在后期數(shù)據(jù)處理方面,這些錯(cuò)誤數(shù)據(jù)將嚴(yán)重影響解算結(jié)果和效率。因此,對(duì)各類(lèi)觀測(cè)數(shù)據(jù)進(jìn)行采集、分析、統(tǒng)計(jì)處理等,是整體研究過(guò)程中十分重要的工作,為此,編寫(xiě)一套數(shù)據(jù)質(zhì)量分析及可視化系統(tǒng)用來(lái)分析某一時(shí)間段內(nèi)、某個(gè)觀測(cè)系統(tǒng)的有效數(shù)據(jù),通過(guò)有效統(tǒng)計(jì),進(jìn)行初步篩選,便于發(fā)現(xiàn)在觀測(cè)過(guò)程中的數(shù)據(jù)質(zhì)量,驗(yàn)證數(shù)據(jù)記錄時(shí)存在的問(wèn)題,可視化后更加直觀地反應(yīng)每一天各個(gè)天線(xiàn)的運(yùn)行情況,提高數(shù)據(jù)有效率,方便以后的計(jì)算以及觀測(cè)系統(tǒng)和設(shè)備故障排查等各種運(yùn)行維護(hù)工作。

1 算法分析

1.1 Unix時(shí)間戳的利用

Unix時(shí)間戳又被稱(chēng)作是Unix epoch或POSIX time。Unix時(shí)間戳的計(jì)算是從1970年1月1日0時(shí)開(kāi)始到現(xiàn)在所經(jīng)過(guò)的所有的秒數(shù),包括UTC的午夜和GMT的午夜,值得注意的是,我們?cè)谟?jì)算Unix時(shí)間戳的時(shí)候是不考慮閏秒的。Unix時(shí)間戳是根據(jù)國(guó)際體系ISO 8601規(guī)范中的1970-01-01 T 00:00:00 Z進(jìn)行計(jì)算的。在大多數(shù)情況下,Unix時(shí)間戳把時(shí)間儲(chǔ)存為32位。

在Unix時(shí)間計(jì)算方法中,1 min用Unix時(shí)間戳的格式進(jìn)行表達(dá)的話(huà)是60 s,不考慮閏秒,1 h用Unix時(shí)間戳的格式進(jìn)行表達(dá)的話(huà),表示為3 600 s,不考慮閏秒。1 d用Unix時(shí)間戳的格式表示的話(huà)是86 400 s,同樣地,閏秒是不在計(jì)算范圍之內(nèi)的。1周用Unix時(shí)間戳的格式進(jìn)行表達(dá)的話(huà)是604 800 s,也是不考慮閏秒。1個(gè)月(30.44d)用Unix時(shí)間戳的格式進(jìn)行表達(dá)的話(huà)是2629 743 s,也是不考慮閏秒的。1 a(365.24 d)用Unix時(shí)間戳的格式進(jìn)行表達(dá)的話(huà)是31556 926 s,同樣地,也是不考慮閏秒的[6]。

Unix時(shí)間戳在運(yùn)用時(shí)有很多方便的地方,不用考慮年、月、日等周期長(zhǎng)短問(wèn)題,利用struct tm結(jié)構(gòu)體和localtime,mktime等函數(shù)可以很好的在時(shí)間戳之間轉(zhuǎn)換,但是也存在很多不方便的地方,比如說(shuō)互相轉(zhuǎn)換的代碼過(guò)多,很多時(shí)候會(huì)出現(xiàn)冗贅,為簡(jiǎn)便代碼編寫(xiě),在很多地方可以利用C++ Builder自帶的時(shí)間處理函數(shù)TDateTime。在利用TDataTime函數(shù)時(shí)每秒所增加的二分之一秒量為(1/86 400)×0.5,如圖1所示,數(shù)據(jù)在連續(xù)增加到一定程度的時(shí)候就會(huì)出現(xiàn)跳秒現(xiàn)象,這是因?yàn)門(mén)DataTime函數(shù)返回的實(shí)際是double型的數(shù)據(jù),由于計(jì)算機(jī)對(duì)雙精度浮點(diǎn)型數(shù)據(jù)的有限長(zhǎng)度處理導(dǎo)致了這樣現(xiàn)象的產(chǎn)生,而struct tm機(jī)構(gòu)體及time-t類(lèi)型數(shù)據(jù)是long型,能夠避免計(jì)算機(jī)有限長(zhǎng)度計(jì)算的問(wèn)題,從而解決數(shù)據(jù)不均勻時(shí)間間隔的問(wèn)題。

圖1 Unix時(shí)間戳處理實(shí)際效果圖

1.2 Vector迭代器技術(shù)

C++容器主要分為兩大類(lèi):順序容器和關(guān)聯(lián)容器。順序容器有:vector,list,deque和string等,是一系列元素的有序集合。關(guān)聯(lián)容器:set,multiset,map,multimap等,包含查找元素的鍵值;迭代器的作用是遍歷容器。

vector向量容器不但能像數(shù)組一樣對(duì)元素進(jìn)行隨機(jī)訪問(wèn),還能在尾部插入元素,是一種簡(jiǎn)單,高效的容器,完全可以代替數(shù)組。

值得注意的是vector容器具有自動(dòng)管理的功能,對(duì)于元素的插入和刪除,可動(dòng)態(tài)調(diào)整所占的內(nèi)存空間;使用vector向量容器,需要包含頭文件#include。

vector容器的下標(biāo)是從0開(kāi)始計(jì)數(shù)的,也就是說(shuō),如果vector容器的大小是,那么元素的下標(biāo)是從0~-1;對(duì)于vector容器的容量定義,可以實(shí)現(xiàn)定義一個(gè)固定的大小,事后,可以隨時(shí)調(diào)整大小,也可以事先不定義,隨時(shí)使用push_back()方法從尾部擴(kuò)張?jiān)?,也可以使用insert()在某個(gè)元素位置前插入新元素。

vector容器有兩種重要的方法,begin()和end()。begin()返回的是首元素位置的迭代器;end()返回的是最后一個(gè)元素的下一元素位置的迭代器[7]。

創(chuàng)建vector對(duì)象,有3種形式:

①不指定容器的元素個(gè)數(shù),如定義一個(gè)用來(lái)存儲(chǔ)整型的容器:vectorv;

②創(chuàng)建時(shí),指定容器的大小,如定義一個(gè)用來(lái)存儲(chǔ)10個(gè)double類(lèi)型元素的向量容器:vector v(10)。元素的下標(biāo)為0~9,另外每個(gè)元素具有指定的初始值;

③創(chuàng)建一個(gè)具有個(gè)元素的向量容器對(duì)象,每個(gè)元素具有指定的初始值;例如vectorv(10,8.6);定義了一個(gè)具有10個(gè)元素的向量容器,每個(gè)元素的值是8.6。

2 程序設(shè)計(jì)

目前轉(zhuǎn)發(fā)式測(cè)定軌衛(wèi)星地面站觀測(cè)到的數(shù)據(jù)常出現(xiàn)的錯(cuò)誤主要有以下4大類(lèi):①采集軟件記錄數(shù)據(jù)為空;②數(shù)據(jù)采集內(nèi)容重復(fù);③數(shù)據(jù)量記錄異常;④數(shù)據(jù)采集為0。

數(shù)據(jù)的存儲(chǔ)及文件的存儲(chǔ)都是根據(jù)時(shí)間流保存,這方面的處理辦法較多,包括TDataTime,Linux時(shí)間戳等,其中TDataTime為C++ Builder自帶的一種時(shí)間流處理辦法,使用非常方便,對(duì)其處理繼承了很多的處理函數(shù)。但是由于TDataTime處理的時(shí)間單位在整數(shù)上都是按照day這樣的整天數(shù)為基數(shù),每天中就有很多1/86 400,在測(cè)試中秒連加等相關(guān)處理就會(huì)由于計(jì)算機(jī)精度的不同存在跳秒的現(xiàn)象。所以時(shí)間處理過(guò)程中是利用以整秒為單位的Linux時(shí)間戳的處理辦法,在年月日的換算過(guò)程中利用了tm結(jié)構(gòu)體的自動(dòng)轉(zhuǎn)換。需要注意的是由于沒(méi)有辦法給tm結(jié)構(gòu)體中的成員全部賦值初始化(結(jié)構(gòu)體中成員的關(guān)聯(lián)性),所以在初始化時(shí)使用了struct tm A={0}這樣的辦法,初始化完成后再進(jìn)行賦值轉(zhuǎn)換,否則就會(huì)出現(xiàn)不規(guī)則的轉(zhuǎn)換。圖2為算法流程圖。

圖2 算法流程圖

此外,本系統(tǒng)還增加了服務(wù)器數(shù)據(jù)備份功能。由于數(shù)據(jù)量大并且多,一方面在時(shí)間算法中重復(fù)計(jì)算年月日等內(nèi)容嚴(yán)重影響了對(duì)數(shù)據(jù)本身的解算速度,另一方面如果用鏈表法解算也嚴(yán)重影響運(yùn)算速度,對(duì)提高工作效率有限。為解決此問(wèn)題,采用上文介紹的Unix時(shí)間戳算法及Vector迭代器的技術(shù),以便在數(shù)據(jù)循環(huán)計(jì)算中提高統(tǒng)計(jì)工作效率及準(zhǔn)確性。

部分源代碼如下:

數(shù)據(jù)篩選的判斷

if(Edit3->Text=="0")

star_ID="???";

else

star_ID=Edit3->Text;

單個(gè)站點(diǎn)數(shù)據(jù)文件的處理過(guò)程

for(int temp_site=0; temp_site

{

AnsiString site_name=Memo1->Lines->Strings[temp_site];

Memo2->Clear ();

建立TChart圖表[8]

TPointSeries *series_x1=new TPointSeries (XH_tchart1);

TPointSeries *series_d1=new TPointSeries (DH_tchart1);

TPointSeries *series_x2=new TPointSeries (XH_tchart2);

TPointSeries *series_d2=new TPointSeries (DH_tchart2);

TPointSeries *series_x3=new TPointSeries (XH_tchart3);

TPointSeries *series_d3=new TPointSeries (DH_tchart3);

……

單個(gè)文件的鏈表搜索起點(diǎn),每個(gè)文件的間隔秒數(shù)為1 800 s。

for(

int temp_long_time=start_long_time;

temp_long_time

temp_long_time=temp_long_time+1800)

{

if(Pro_int==10)

Pro_int=0;

else

Pro_int=Pro_int+1;

……

在程序開(kāi)發(fā)中由于存在數(shù)據(jù)的備份,利用NMFTP控件,在文件整體下載方面存在遞歸過(guò)程[9],代碼如下:

if(DIR_TEMP[cc]=="-"&&FileExists(localdir+"\"+temp_ansif[cc])==false)

{

ListBox1->Items->Add(temp_ansif[cc]+"正在下載…");

NMFTP1->Download("/"+romedir+"/"+temp_ansif[cc], localdir+"\"+temp_ansif[cc]);

ListBox1->Items->Add(temp_ansif[cc]+"下載完畢!");

ListBox1->ItemIndex=ListBox1->Items->Count-1;

}

else

{

//遞歸函數(shù),作用是如果是文件夾進(jìn)入下一級(jí)繼續(xù)判斷文件,如果是文件繼續(xù)下載。

temp_source(NMFTP1,RemoteDir,LocalDir,ListBox1);

}

……

3 實(shí)際結(jié)果

在實(shí)際分析過(guò)程中,利用Unix時(shí)間戳算法和Vector迭代器技術(shù),能夠避免計(jì)算機(jī)有限長(zhǎng)度計(jì)算的問(wèn)題,解決了數(shù)據(jù)不均勻時(shí)間間隔的問(wèn)題。基于前文的分析,編制軟件,并在每臺(tái)數(shù)據(jù)采集計(jì)算機(jī)上安裝,對(duì)采集數(shù)據(jù)(一般24h作為一周期)進(jìn)行處理。圖3是整個(gè)分析系統(tǒng)主界面,可以選擇相關(guān)參數(shù)進(jìn)行設(shè)置。

圖3 分析評(píng)估軟件主界面

我們利用5號(hào)站點(diǎn)I1系統(tǒng)所接收的C01和Z04兩顆衛(wèi)星在2015年4月9日00時(shí)至4月10日23時(shí)2 d的數(shù)據(jù)進(jìn)行測(cè)試,得到結(jié)果和報(bào)告,如圖4至圖7所示。

圖4 3個(gè)通道有效數(shù)據(jù)總量

圖5 一通道測(cè)衛(wèi)星環(huán)路數(shù)據(jù)

圖6 一通道內(nèi)部時(shí)延環(huán)路數(shù)據(jù)

圖7 數(shù)據(jù)總體分析

從5號(hào)站點(diǎn)I1系統(tǒng)2015年4月9日00時(shí)至4月10日23時(shí)實(shí)際結(jié)果可以看出,在有效觀測(cè)時(shí)間內(nèi)沒(méi)用空數(shù)據(jù),小環(huán)(內(nèi)部時(shí)延環(huán)路)有些溢出結(jié)果與大環(huán)(衛(wèi)星環(huán)路)相當(dāng),但是觀測(cè)時(shí)間只有大環(huán)1/5,說(shuō)明此環(huán)路衰減過(guò)小,結(jié)合大環(huán)綜合考慮,需要在此環(huán)路設(shè)備接口接入衰減器或者調(diào)整軟件衰減值,大環(huán)數(shù)據(jù)比較平穩(wěn),總體數(shù)據(jù)質(zhì)量良好,由于篇幅有限其他監(jiān)測(cè)不一一列舉。

4 結(jié)論

測(cè)試結(jié)果表明此套轉(zhuǎn)發(fā)式測(cè)定軌系統(tǒng)地面觀測(cè)站數(shù)據(jù)質(zhì)量分析及其可視化系統(tǒng)簡(jiǎn)單實(shí)用,實(shí)時(shí)性強(qiáng),界面友好,能夠?qū)y(cè)定軌系統(tǒng)地面基站所有天線(xiàn)系統(tǒng)任意時(shí)段的有效數(shù)據(jù)進(jìn)行統(tǒng)計(jì);能夠驗(yàn)證數(shù)據(jù)中存在的空、重復(fù)、無(wú)記錄與超出范圍錯(cuò)誤,并精確定位錯(cuò)誤出處;能夠?qū)Ψ?wù)器數(shù)據(jù)進(jìn)行備份。解決了影響后期數(shù)據(jù)解算結(jié)果和效率的問(wèn)題??梢暬蟾庇^反映了每套天線(xiàn)系統(tǒng)運(yùn)行情況,可以為快速排查天線(xiàn)系統(tǒng)故障和系統(tǒng)維護(hù)工作提供依據(jù),提高工作效率。

[1] 施滸立, 孫希延, 李志剛. 轉(zhuǎn)發(fā)式衛(wèi)星導(dǎo)航原理[M]. 北京: 科學(xué)出版社, 2009.

[2] 黃承強(qiáng). 轉(zhuǎn)發(fā)式衛(wèi)星測(cè)軌地面站設(shè)備時(shí)延標(biāo)定方法[D]. 北京: 中科院科學(xué)院大學(xué), 2015.

[3] 曹芬. 基于轉(zhuǎn)發(fā)測(cè)距數(shù)據(jù)的GEO導(dǎo)航衛(wèi)星轉(zhuǎn)發(fā)式定軌方法研究[D]. 北京: 中國(guó)科學(xué)院大學(xué), 2014.

[4] 李志剛, 楊旭海, 施滸立, 等. 轉(zhuǎn)發(fā)器式衛(wèi)星軌道測(cè)定新方法[J]. 中國(guó)科學(xué)G輯: 物理學(xué) 力學(xué) 天文學(xué), 2008, 38(12): 1711-1722.

[5] 李志剛, 楊旭海, 李偉超, 等. 轉(zhuǎn)發(fā)器式衛(wèi)星測(cè)軌方法[J]. 時(shí)問(wèn)頻率學(xué)報(bào), 2006, 29(2): 81-89.

[6] 孫勝. unix時(shí)間戳是什么[EB/OL]. (2015-11-04)[2017-03-20]. http://www.xuexila.com/diannao/weihu/taishiji/310303.html.

[7] Istvh. C++容器: 順序容器, 關(guān)聯(lián)容器[EB/OL]. (2009-09-29)[2017-03-11]. http://blog.chinaunix.net/uid-22002972-id-1805606.html.

[8] 陸衛(wèi)忠, 劉文亮. C++ Builder 6程序設(shè)計(jì)教程[M]. 2版. 北京: 科學(xué)出版社, 2005.

[9] 余昌盛, 汪曉平, 權(quán)毓舒. C++ Builder 6數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航[M]. 北京: 人民郵電出版社, 2003.

Quality analysis and visualization for observation data of orbit determination stations by transfer tracking system

HE Da-lin, SUN Gao-wen, HAN Wei

(Xinjiang Astronomical Observatory, Chinese Academy of Sciences, Urumqi 830011, China)

Satellite ground observation stations are important parts in the system of orbit determination by transfer tracking, they produce a large number of high precision ranging, meteorological and time synchronous measuring data every day, which are the basis for the realization of satellite orbit determination. Therefore, the quality and integrity of the observational data are of particularly importance. A quality analysis and visualization system was developed based on Unix timestamp and Vector iterator technique by using C++ builder. The practical application has shown that this system can be able to give effective statistics and preliminary filtering for observing data, to detect the problem of data quality in the process of observation and to verify the problem of data records. It can reveal the operation of each antenna system visually and improve the efficiency of the observation system and troubleshooting and maintenance of equipment.

satellite ground station; orbit determination by transfer tracking; Unix timestamp; vector iterator; visualization

TN927+.21

A

1674-0637(2017)04-0251-09

10.13875/j.issn.1674-0637.2017-04-0251-09

2017-04-18

中國(guó)科學(xué)院精密導(dǎo)航定位與定時(shí)技術(shù)重點(diǎn)實(shí)驗(yàn)室開(kāi)放課題

何大林,男,工程師,主要從事衛(wèi)星導(dǎo)航數(shù)據(jù)處理及脈沖星計(jì)時(shí)相關(guān)研究。

猜你喜歡
容器可視化觀測(cè)
觀測(cè)到恒星死亡瞬間
軍事文摘(2023年18期)2023-11-03 09:45:42
基于CiteSpace的足三里穴研究可視化分析
Different Containers不同的容器
基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
難以置信的事情
“融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
天測(cè)與測(cè)地VLBI 測(cè)地站周?chē)匦斡^測(cè)遮掩的討論
可觀測(cè)宇宙
太空探索(2016年7期)2016-07-10 12:10:15
取米
长沙市| 嘉兴市| 托克托县| 宝山区| 乐清市| 赞皇县| 昭平县| 邢台县| 惠州市| 曲麻莱县| 密山市| 茶陵县| 公安县| 威海市| 罗田县| 商丘市| 布拖县| 东辽县| 宜章县| 新宁县| 沙坪坝区| 田阳县| 乐清市| 奈曼旗| 毕节市| 周宁县| 板桥市| 二手房| 比如县| 十堰市| 和硕县| 响水县| 麟游县| 高淳县| 施秉县| 阜城县| 樟树市| 公安县| 连云港市| 宣恩县| 邓州市|