GNSS接收機觀測數(shù)據(jù)質(zhì)量檢查可視化實現(xiàn)_第1頁
GNSS接收機觀測數(shù)據(jù)質(zhì)量檢查可視化實現(xiàn)_第2頁
GNSS接收機觀測數(shù)據(jù)質(zhì)量檢查可視化實現(xiàn)_第3頁
GNSS接收機觀測數(shù)據(jù)質(zhì)量檢查可視化實現(xiàn)_第4頁
GNSS接收機觀測數(shù)據(jù)質(zhì)量檢查可視化實現(xiàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

GNSS接收機觀測數(shù)據(jù)質(zhì)量檢查可視化實

現(xiàn)摘要:在GNSS測量定位中,接收機的觀測數(shù)據(jù)的質(zhì)量是決定了測量定位的精度的重要因素。使用TEQC軟件通過命令行模式實現(xiàn)了GNSS數(shù)據(jù)的轉(zhuǎn)換、編輯和質(zhì)量檢查等功能,該軟件的不足在于其質(zhì)量檢查輸出的文本文件缺乏直觀的圖形化表達(dá)功能,非專業(yè)認(rèn)識很難從數(shù)據(jù)處理結(jié)果分析GNSS觀測數(shù)據(jù)質(zhì)量的好壞。本課題旨在通過標(biāo)準(zhǔn)的數(shù)據(jù)格式存儲TEQC程序處理的質(zhì)量檢查結(jié)果,并用Python實現(xiàn)數(shù)據(jù)質(zhì)量的可視化,并通過標(biāo)準(zhǔn)化的報表格式統(tǒng)計對觀測數(shù)據(jù)的質(zhì)量實現(xiàn)定量化的分析。直觀顯示數(shù)據(jù)質(zhì)量不足之處,幫助用戶判斷所采集GNSS觀測數(shù)據(jù)質(zhì)量是否滿足實際測量需求;為用戶提供數(shù)據(jù)編輯、剔除等操作的可視化依據(jù),甚至提高GNSS測量用戶提高測量定位的精度。關(guān)鍵字:GPS觀測數(shù)據(jù),質(zhì)量檢查,可視化1引言在GNSS測量定位中,接收機的觀測數(shù)據(jù)的質(zhì)量是決定了測量定位的精度的重要因素。美國衛(wèi)星導(dǎo)航系統(tǒng)與地殼形變觀測研究大學(xué)聯(lián)盟(UNAVCOFacility)提供的TEQC主要有格式轉(zhuǎn)換(Translate)、數(shù)據(jù)編輯(Edit)、質(zhì)量檢查(QualityCheck)、單點定位(Coordinate)四方面的功能。TEQC軟件通過命令行模式實現(xiàn)了GNSS數(shù)據(jù)的轉(zhuǎn)換、編輯和質(zhì)量檢查等功能,該軟件的不足在于其質(zhì)量檢查輸出的文本文件缺乏直觀的圖形化表達(dá)功能,非專業(yè)認(rèn)識很難從數(shù)據(jù)處理結(jié)果分析GNSS觀測數(shù)據(jù)質(zhì)量的好壞。依照軟件的發(fā)展趨勢,TEQC必然要能夠做到跨平臺,可視化,操作簡單,界面友好,自由度高,應(yīng)用平臺廣泛,數(shù)據(jù)質(zhì)量高。本文旨在通過標(biāo)準(zhǔn)的數(shù)據(jù)格式存儲TEQC程序處理的質(zhì)量檢查結(jié)果,并用Python實現(xiàn)數(shù)據(jù)質(zhì)量的可視化,并通過標(biāo)準(zhǔn)化的報表格式統(tǒng)計對觀測數(shù)據(jù)的質(zhì)量實現(xiàn)定量化的分析。2技術(shù)路線本軟件的技術(shù)路線采用如下方案完成,首先對TEQC質(zhì)量控制的輸出文件,包括總結(jié)文件和8個子文件進行標(biāo)準(zhǔn)化存儲,采用netcdf格式存儲輸出文件;然后,使用python中的matplotlib圖形顯示工具,通過讀取標(biāo)準(zhǔn)化的netcdf格式文件實現(xiàn)質(zhì)量檢查的可視化輸出;最后,用latex排版自動生成GNSS觀測值質(zhì)量檢查的圖文報表。3實現(xiàn)過程TEQC軟件使用過程進行質(zhì)量檢查的基本語句為:不使用導(dǎo)航文件時:teqc+qccham0020.02o使用導(dǎo)航文件時:teqc+qc-navcham0020.02ncham0020.02o執(zhí)行上面語句之后,將生成如下幾個文件:cham0020.ionL2電離層觀測值cham0020.iodL2電離層觀測值變率cham0020.mp1P1多路徑觀測值(包括接收機噪聲)cham0020.mp2P2多路徑觀測值(包括接收機噪聲)cham0020.sn1L1頻率上的信噪比cham0020.sn2L2頻率上的信噪比cham0020.azi衛(wèi)星方位角(在廣播星歷和觀測數(shù)據(jù)同時使用時產(chǎn)生)cham0020.ele衛(wèi)星高度角(在廣播星歷和觀測數(shù)據(jù)同時使用時產(chǎn)生)cham0020.02S質(zhì)量檢查摘要文件其中cham0020.02s是質(zhì)量檢查統(tǒng)計的結(jié)果文件,是TEQC軟件的核心部分,主要用于對觀測數(shù)據(jù)的質(zhì)量評定,一般情況下觀測人員主要是對該文件進行檢查,從而確定觀測數(shù)據(jù)的質(zhì)量。其它幾個文件主要用于作圖,從而可直觀的對每一顆衛(wèi)星的單項質(zhì)量進行檢查。3.2數(shù)據(jù)轉(zhuǎn)netCDF4格式直接使用原本數(shù)據(jù)也并非是不行,但是那種數(shù)據(jù)結(jié)構(gòu)缺少通用性,而且沒有合適的函數(shù)庫來調(diào)用,提取想要的數(shù)據(jù)就會變得異常的麻煩,需要手動再編寫一個能自由讀寫原本數(shù)據(jù)結(jié)構(gòu)接口函數(shù)庫出來。這樣無疑極大的增加工作量,同時也不能保證編寫出來的該接口函數(shù)庫能夠穩(wěn)健的工作。為了避免這個問題,我們得選用一種通用的,有著方便使用的接口函數(shù)庫數(shù)據(jù)結(jié)構(gòu)來轉(zhuǎn)化得到的數(shù)據(jù)。經(jīng)過篩選和甄別,最終選用了netCDF4這種數(shù)據(jù)結(jié)構(gòu)。netCDF4數(shù)據(jù)結(jié)構(gòu)NetCDF(networkCommonDataForm)網(wǎng)絡(luò)通用數(shù)據(jù)格式是由美國大學(xué)大氣研究協(xié)會(UniversityCorporationforAtmosphericResearch,UCAR)的Unidata項目科學(xué)家針對科學(xué)數(shù)據(jù)的特點開發(fā)的,是一種面向數(shù)組型并適于網(wǎng)絡(luò)共享的數(shù)據(jù)的描述和編碼標(biāo)準(zhǔn)。目前,NetCDF廣泛應(yīng)用于大氣科學(xué)、水文、海洋學(xué)、環(huán)境模擬、地球物理等諸多領(lǐng)域。用戶可以借助多種方式方便地管理和操作NetCDF數(shù)據(jù)集。從數(shù)學(xué)上來說,netcdf存儲的數(shù)據(jù)就是一個多自變量的單值函數(shù)。用公式來說就是f(x,y,z,...)二value,函數(shù)的自變量x,y,z等在netcdf中叫做維(dimension)或坐標(biāo)軸(axix),函數(shù)值value在netcdf中叫做變量(Variables).而自變量和函數(shù)值在物理學(xué)上的一些性質(zhì),比如計量單位(量綱)、物理學(xué)名稱等等在netcdf中就叫屬性(Attributes)其格式大致為:NetCDFname(Dimensions:…//定義維數(shù)Variables:-〃定義變量Attributes:…//屬性Data:-//數(shù)據(jù)}而netCDF4是比較新的一種格式,增加一個組群的概念,每一個組群就有著各自的維度、變量、屬性、以及數(shù)據(jù)。組群的概念大大的方便了GPS的數(shù)據(jù)的存儲。GPS數(shù)據(jù)讀入內(nèi)存想要將數(shù)據(jù)轉(zhuǎn)換成netCDF4的格式,那么必須可分析原始數(shù)據(jù)的結(jié)構(gòu),找出其中的規(guī)律:以L1多路徑效應(yīng)文件為例:COMPACT2T_SAMP30.0000START_TIME_MJD56293.00000000018G03G04G07G08G10G13G19G20G23G28R03R04R05R14R15R16R17R240.156-0.392-0.093-0.092-0.0530.1300.2370.135-0.0170.1980.024-0.0310.251-0.120-0.001-0.102-0.1290.022-10.281-0.184-0.109-0.133-0.0200.0370.0740.2230.0350.246-0.0240.0310.353-0.120-0.041-0.048-0.126-0.016T_SAMP表示30s記錄一次數(shù)據(jù),START_TIME_MD表示記錄數(shù)據(jù)的開始時間,這樣就可以推算任意一次數(shù)據(jù)記錄的時間了。接下就表示18顆衛(wèi)星及具體編號再接下來說是18顆衛(wèi)星的具體數(shù)據(jù)了。解析數(shù)據(jù),然后按照規(guī)則讀到內(nèi)存中去,存儲的數(shù)據(jù)結(jié)構(gòu)采用的map里面嵌套vector的結(jié)構(gòu):map,vector}Satename:衛(wèi)星名GPSweek:GPS周GPSsec:GPS秒Data:具體數(shù)據(jù)從上面的數(shù)據(jù)結(jié)構(gòu)就可看出,采用的是GPS時作為存儲的時間,但是源數(shù)據(jù)中的START_TIME_MJD卻并非是GPS時,而是儒略日,是另一種計時方式。這種計時方式并不直觀,在顯示秒數(shù)的時候卻是以小數(shù)形式來表示,不夠直觀,因此,采用GPS時,編寫程序使得儒略日轉(zhuǎn)換成GPS時即可。在結(jié)構(gòu)體struct中,采用vector這種線性列表的存儲結(jié)構(gòu),而并非其它的鏈表的數(shù)據(jù)結(jié)構(gòu),是考慮到由netCDF4的接口函數(shù)nc_put_var里面參數(shù)需要首地址,采用其它的結(jié)構(gòu),則還要將數(shù)據(jù)存到數(shù)組中,然后再被接口函數(shù)調(diào)用。3.2.3內(nèi)存數(shù)據(jù)轉(zhuǎn)成netCDF4結(jié)構(gòu)在之前就已經(jīng)介紹了netCDF4的數(shù)據(jù)結(jié)構(gòu),接下來就是利用已經(jīng)讀入內(nèi)存的數(shù)據(jù)轉(zhuǎn)成netCDF4這種數(shù)據(jù)的文件。其其體的結(jié)構(gòu)為:netCDF4filename(Groupsatename(Dimensions:size(Data)Variables:GPSsecData:data}GlobeAttributes:GPSweek}也就是將衛(wèi)星的名稱作為了組群名,而將GPSweek作了全局變量。然后參考netCDF4和C的接口函數(shù)的官方文檔,實現(xiàn)netCDF4的程序的編寫。最后為了能夠真正能夠使用該程序,修改程序使得其能夠接收外界的參數(shù),編寫makefile文件,添加netCDF4的頭文件和鏈接庫,編譯得出可執(zhí)行文件。在以后的部分,只需要用使用該可執(zhí)行文件,而不必再考慮過程問題。3.2.4文件合并發(fā)現(xiàn)L1和L2的多路徑效應(yīng)文件以及電離層延遲和其變化率文件,以及高度角和方位角的文件大小相等,里面的數(shù)據(jù)量和也是完全一樣的,衛(wèi)星出現(xiàn)的時間也是相同的。所以這些數(shù)據(jù)理論上是可以進行合并,即同一個netCDF的數(shù)據(jù)里面存在著兩組數(shù)據(jù)。通過修改程序的數(shù)據(jù)結(jié)構(gòu),給netCDF的文件中添加了新的一組Data,編譯出可執(zhí)行文件。相對單個文件和原始來說,轉(zhuǎn)換后數(shù)據(jù)還有著額外的好處:節(jié)省了存儲空間的。在一組實例中,原始的mp1和mp2文件大小均為572.6KB,而轉(zhuǎn)換完成的netCDF文件則只有927.2KB,節(jié)省了約為10%的空間。最終的成果是兩個可執(zhí)行文件,將其命名為:SateToCDFsingle和SateToCDFdouble。SateToDCDFsingle接受兩個參數(shù):單個原始數(shù)據(jù)文件名和輸出數(shù)據(jù)文件名,而SateToCDFdoublem則接受三個參數(shù):兩個原始數(shù)據(jù)文件名和輸出數(shù)據(jù)文件名。3.3GPS觀測數(shù)據(jù)可視化處理將數(shù)據(jù)轉(zhuǎn)成netCDF4的格式不是目的,只是為了方便的提取的數(shù)據(jù)以便成圖得到可視化的結(jié)果。成圖軟件可采用薦于經(jīng)費問題,采用了是開源免費的python的matplotlib庫,而并非使用matlib來成圖。同時另外一個比較重要的原因就是:python有著netCDF4庫,能夠很好讀取該格式的數(shù)據(jù)。關(guān)于python,numpy與matplotlibPython是一種面向?qū)ο蟆⒔忉屝陀嬎銠C程序設(shè)計語言,由GuidovanRossum于1989年底發(fā)明,第一個公開發(fā)行版發(fā)行于1991年,Python源代碼同樣遵循GPL(GNUGeneralPublicLicense)協(xié)議。Python語法簡潔而清晰,具有豐富和強大的類庫。Python專用的科學(xué)計算擴展庫就很多,例如如下3個十分經(jīng)典的科學(xué)計算擴展庫:NumPy、SciPy和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運算以及繪圖功能。因此Python語言及其眾多的擴展庫所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實驗數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計算應(yīng)用程序。GPS時與通用時的轉(zhuǎn)換在讀取原始數(shù)據(jù)的過程,實際上也中用到了時間和時區(qū)的轉(zhuǎn)換,在繪制圖形的時候,涉及到時間的為坐標(biāo)軸的時候,如果仍然使用GPS時,看起來就是顯得比較難看,而且與真實的時間無法對應(yīng)起來,十分不便。在第一個部分實際上也是用到了時間的轉(zhuǎn)換函數(shù),那個時候已經(jīng)完成了該函數(shù)的編寫,并且該轉(zhuǎn)換函數(shù)能夠自由的在GPS時,儒略日,通用時間三種時間格式自由的轉(zhuǎn)換。但是該函數(shù)使用的C語言來完成的,無法直接在python中使用。解決方法有三種:(1)使用python重寫源代碼;(2)將函數(shù)編譯成可執(zhí)行文件,利用“通道”,將程序的輸出作為python程序的輸入;(3)混合式編程,將函數(shù)編譯成動態(tài)鏈接庫(.so文件),然利用python的ctypes模塊來使用C語言編譯的動態(tài)鏈接庫的接口。選擇了第三種方式,將函數(shù)編譯成動態(tài)鏈接庫文件。已經(jīng)有了源代碼文件:Timetrans.c和timetrans.h,然后使用編譯命令:gcc-shared-fPICtimetrans.c-otimetrans.so即可生成可以供python.ctypes使用的動態(tài)鏈接庫。numpy與matplotlib生成圖表以G01星名為例,跟據(jù)高度角和方位角可以繪制出可以繪制出單顆衛(wèi)星的軌跡圖(如圖3-1):圖3-1G01衛(wèi)星的軌跡圖可以繪制出任意顆衛(wèi)星圖(如圖3-2):圖3-2任意顆衛(wèi)星圖電離層延遲及變化率(如圖3-3):i.RIBPl加■!皿1RJIPS-J!1耐I3H由可ld>1茍時苛?xí)ri?NflNwN科UNEN2W1GPSSeccHd<aoa>圖3-3電離層延遲及變化率-1S¥?』=isiam勒月1口1現(xiàn)勺街a?E明1購1問 I附1峋冊1*1#時技寸掃蝦. CPS隊視頌「趴3參|同1目村期瑚知Hrm”岬1偵1網(wǎng)U*Siiflg1汁11場冊1卻*僧1以叩珀CFSS45l<K1>圖3-4L1,L2的多路徑效應(yīng)L1,L2信噪比(如圖3-5):圖3-5L1,L2信噪比TAii^inIFirst擔(dān)t凹時s&r了時耳時口時m時1珥1囂中々時出日打弘中心r了時1耳時1。辯w時明mE土?xí)r%圖3-6衛(wèi)星出現(xiàn)的時間與高度角的關(guān)系圖同時可以繪制衛(wèi)星軌跡圖和其它數(shù)據(jù)的關(guān)系,如衛(wèi)星軌跡與電離層延遲的關(guān)系圖(如圖3-7):圖3-7衛(wèi)星軌跡與電離層延遲的關(guān)系圖后期優(yōu)化參數(shù),使得繪圖程序能夠接收更多的參數(shù),提高了繪圖的自由度,能夠靈活的得到更多類型的圖形,為數(shù)據(jù)分析提供更直觀的印象。3.4質(zhì)量分析報告Teqc分析源數(shù)據(jù)完成后,會產(chǎn)生數(shù)據(jù)質(zhì)量報告文件,也是平時所說的S文件。S文件內(nèi)容豐富,但是卻使用的是文本的格式,同時也是英文寫出的,并不直觀。為了方便的得到可讀性更高、更直觀、更美觀的質(zhì)量分析報告,我們將會基于該S文件,生成中文版本的,有著豐富圖片的具有通用性的PDF文檔。PDF文檔采用標(biāo)準(zhǔn)的LaTex排版。3.4.1LaTex簡介LaTeX是一種基于Tex的排版系統(tǒng)。對于生成復(fù)雜表格和數(shù)學(xué)公式,這一點表現(xiàn)得尤為突出。因此它非常適用于生成高印刷質(zhì)量的科技和數(shù)學(xué)類文檔。這個系統(tǒng)同樣適用于生成從簡單的信件到完整書籍的所有其他種類的文檔。3.4.2分析S文件S文件是一個比較固定格式質(zhì)量分析報告,可以通過識別其中的關(guān)鍵詞來讀取所要數(shù)據(jù),這為直接使用和提取里面的數(shù)據(jù)建立的基礎(chǔ)。Latex是可以通過\include和\input來分別導(dǎo)入外界的圖片和文本,所以如果能夠?qū)文件關(guān)鍵數(shù)據(jù)進行提取,然后按latex格式輸出到文本中去,再通過一個主tex文檔來\include和\input這些圖片和文本,添加合適的環(huán)境和注釋。3.4.3繪制S文件的圖表S文件中存著不少的圖表,但是這些圖表并不直接,看起來比較費力,不過latex是能夠直接繪制表格的,只要按照Latex格式將數(shù)據(jù)存入文本中即可。對于一些特殊的圖形,則還是要提取數(shù)據(jù),然后使用matplotlib來進行繪制,繪制完成后再導(dǎo)入到PDF中即可。S文件最后部分有著對多路徑效應(yīng)、電離層延心及變化率等的相關(guān)統(tǒng)計,提取里面的數(shù)據(jù)就可以直接進行繪圖了。下面則是其中L1的多路徑效應(yīng)的相關(guān)統(tǒng)計直方圖(如圖3-8):

5-o5-o&O5O55-Ds.D5233d-圖3-8L1多路徑效應(yīng)圖4自動化與應(yīng)用界面開發(fā)§4.1自動化腳本編寫到此為止,所有的核心功能都初步完工,不過卻都是各自獨立的零部件,想要無論是自己使用和別人來說都得得比較復(fù)雜,所以必然要對這些功能進行整合,通過腳本來調(diào)用合適的程序來自動化完成任務(wù)。本次所有內(nèi)容都放在一個叫作process的文件夾內(nèi)(如表4-1):表4-1自動化腳本文件功能以及存儲文件夾teqc.py將通過teqc轉(zhuǎn)換成相應(yīng)的文件,保存在Data里面DataToCdf.py將數(shù)據(jù)轉(zhuǎn)成netcdf格式,生成的數(shù)據(jù)均保存在cdfdata中

drawAllPicture.py用于批量生成圖片,生成圖片保存在picture文件夾中StoPDF.py用于控制將S文件轉(zhuǎn)成PDF的文檔cdfData保存生成的netcdf數(shù)據(jù)文件Data用于保存teqc生成的數(shù)據(jù)DataToPic保存所有用于繪圖的python源代碼文件picture用于保存所有生成圖片StoPDF用于將S文件轉(zhuǎn)成PDFMain存放可執(zhí)行文件的位置這些自動化的腳本會歸納整理所有生成的資料,所需要就僅僅是輸入一個命令?!?.2Qt與應(yīng)用界面開發(fā)使用終端進行輸入輸出盡管強大而方便,但是卻并不人性化,為此該程序開發(fā)出簡易的使用界面。Qt是一個1991年由奇趣科技開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)迎程序,也可用于開發(fā)非GUI程序,比如控制臺工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴展(稱為元對象編譯器(MetaObjectCompiler,moc))以及一些宏,易于擴展,允許組件編程。簡易界面可以導(dǎo)入數(shù)據(jù),然后實時的預(yù)覽圖形,方便許多,效果圖如下所示(如圖4-1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論