


摘?要:目前國家和軍隊對于信息技術自主可控的需求非常迫切。開發一套基于國產化操作系統的氣象探測應用軟件迫在眉睫。本文詳細介紹了基于國產麒麟操作系統的氣象數據處理軟件功能設計和實現。該軟件通過測試運行軟件工作穩定,操作方便,圖形界面簡潔明了,功能完善,性能基本達到與Window系統下的數據處理軟件水平相當。
關鍵詞:數據處理;國產化;QT;麒麟操作系統
一、 引言
我國氣象探測系統中使用的各種軟硬件設備、核心電子元器件和高端通用芯片長期依靠進口,但目前國際形勢變幻莫測,西方的一些發達國家經常采取禁運、限購等方式遏制相關產品在我國氣象領域的應用;同時,國外的基礎平臺還存在代碼不開源,植入后門等不可控風險。軟件國產化已成為國家信息化安全的重要組成部分。
目前,我國的高空氣象探測系統主要基于Windows 操作系統研制開發,國產高性能處理器能夠支持的桌面操作系統主要是麒麟系統。該操作系統已在航空、航天等領域得到了一定應用,但在氣象探測領域尚未升入展開。結合我國自主可控需求,本文設計開發了一套基于中標麒麟操作系統的全自主氣象數據處理系統,利用QT開發工具進行了軟件設計和實現,采用二進制文件的方法對探測數據進行管理。根據麒麟操作系統下的運行要求,對系統軟件進行了重新優化設計,使得國產化數據處理軟件整體技術性能與Windows系統下的數據處理軟件一致。
二、 軟件系統設計
(一)開發環境
在中標麒麟操作系統下可選擇的開發工具有GCC、Eclipse和QT等。其中QT具有很好的跨平臺和豐富的C++應用程序庫,并且擁有自主可控的國產化版本。氣象探測系統數據處理軟件的國產化設計以QT開發環境為平臺,采用自頂向下模塊化設計方法。系統采用QT4.8.6版本,C++語言作為人機交互界面的工具。
(二)軟件結構
根據數據處理軟件的設計需求,軟件共包含如下三大模塊:文件、探空數據顯示、探空數據處理。其中文件操作模塊包含了數據讀取、數據存儲子模塊;數據顯示模塊包含了探空曲線、位置曲線、探空數據、風數據和飛行軌跡等子模塊;探空數據處理模塊包含了探空飛點剔除和探空數據修正子模塊。如圖1所示:
用戶可通過人機交互界面,選擇需要處理的探測數據文件,軟件對用戶選定的文件進行解析,如果不是格式正確的探測數據文件,則反饋給用戶出相應的錯誤提示,如果數據格式正確,則顯示相應的探空數據/曲線界面。用戶可在探空曲線顯示界面剔除數據飛點,對探空數據進行修正。修正后的探空數據會保存在探測數據文件中,原始探測數據不受影響。數據處理軟件工作流程圖如圖2所示。
三、 主要功能模塊設計和實現
(一)數據顯示模塊功能設計
數據顯示功能負責人機界面交互,將探測數據產品以直觀的方式顯示給操作人員。能夠生成溫、壓、濕隨時間變化圖、溫、壓、濕、高度、經緯度、風隨時間變化報表等,繪圖方式將依據通用氣象標準執行。
氣象產品的可視化涉及坐標系統、圖形顯示、圖標等內容,依據數據類型不同,顯示功能可以分為探空曲線圖形顯示、位置曲線圖形顯示、探空數據報表、風曲線顯示、飛行軌跡顯示等。
以繪制探空數據曲線圖為例。首先根據探空時間繪制縱坐標,根據探空數據(包括溫、壓、濕)繪制橫坐標,并標注橫縱坐標值。縱坐標最小值為0分鐘,對應放球時間,最大值為最新的探空時間。橫坐標氣溫范圍為-90℃至60℃,氣壓范圍為50hPa到1150hPa,濕度范圍為10%到100%。溫、壓、濕曲線分別使用紅、藍、綠顏色進行顯示。每收到一個探空數據,則對曲線進行一次重繪。另外可以通過鼠標右鍵對探空曲線實現全程/分段顯示、放大縮小、拖放、移動、時間設置、自動修改、自動滾屏等功能。Qt提供的繪圖框架主要由3個類組成:Qpainter、QPaintDevice和QPaintEngine。QPainter用來執行與繪圖相關的具體操作,既可以繪制點、線、矩形、多邊形等等基本圖形,也可以繪制比較復雜的圖形。在繪圖時,可以通過畫筆(QPen)改變QPainter的屬性(顏色、線寬等)。在繪制文字時,字體由QFont類定義,通過setFont()函數修改字體屬。系統中通過使用Qt繪圖scale()函數實現了放大,縮小功能。
數據顯示功能將根據內存中的探空數據、設備狀態數據、定位數據分別繪制探空曲線圖形、位置曲線圖、探空數據報表、風曲線顯示圖、飛行軌跡顯示圖等,并按照用戶選擇的顯示類型、要求顯示在界面上,如圖3所示。
(二)探空數據處理功能設計
探空數據處理主要功能包括探空飛點剔除和探空數據修正,探空數據修正包括時間修正、溫度修正、氣壓修正、濕度修正以及高度修正。
1. 探空飛點剔除
剔除飛點流程圖如圖4所示
圖4?探空飛點剔除子功能活動圖
首先循環所有數據,將每個數據與前后數據對比,如果超過閾值,則判斷探空數據為飛點數據,并將該數據刪除,使用周圍數據的中值代替該數據,循環至數據結束。
2. 探空數據修正
在真實探測過程中,高空探測數據受各種因素影響,不能有效保證探空數據的質量,因此通過對各種影響因素的影響程度分析,對探空數據進行相應修正,從而能夠提高探測精度,保證探空數據質量。在本系統設計中數據修正主要包括時間修正、高度修正、氣壓修正、溫度修正和濕度修正。
時間修正:如果數據記錄時間與探空儀離開地面不一致(提前后者延后點擊放球鍵),則應對探空數據時間進行修正,將記錄數據中的相對時間進行相應的推遲或者提前。
高度修正:在進行北斗/GPS定位中大氣折射會對電磁波產生折射,通常北斗/GPS模塊針對該折射進行了近地面的修正,但是當探空儀到達高空的時候,再進行與地面一致的修正使得探空儀的定位高度產生誤差,因此需要將探空儀的定位高度進行折射補償。
氣壓修正:在近地面,大氣氣壓較大,氣壓傳感器測得數值能真實的反映氣壓變化,到了高空,氣壓急劇降低,而氣壓傳感器的探測精度保持不變,因此在高空使用壓高公式對氣壓進行計算比實際探測結果更為準確,在低空到高空的變化過程使用權重法進行逐步迭代,以獲取更為準確的探測結果。
溫度修正:對溫度的修正主要為短波輻射(太陽輻射)修正和出云過程修正。受太陽照射的時候應對溫度數據進行短波輻射修正,在探空儀出云時,因為水分蒸發會帶走大量熱量,因此也需要在此時對溫度進行補償。
濕度修正:濕度傳感器的靈敏度與大氣密度具有較大的關聯,在高空大氣密度較低的情況下,濕度傳感器與在艦面相比其靈敏度具有較大的降低,因此需要對濕度進行逆向修正,對濕度變化幅度進行跟大氣密度相關的補償。
時間修正,將探空數據時間與探空儀實際離開時間進行比較,超過閾值則認為時間不一致,更改探空數據中的時間數據,使其與探空儀實際離開時間一致。
探空數據修正算法通過動態庫封裝,程序調用接口函數實現,增強了系統的可移植性和可維護性,提高了軟件質量。
四、 結語
本文基于麒麟操作系統和QT平臺設計了適用于自主可控的探空數據處理系統,實現了數據產品處理和顯示功能,可以滿足用戶軟件國產化的使用要求。
值得指出的是,本系統對探空數據衍生的氣象產品還需要進一步改善,以更有效地提高數據利用率。此外,該系統所繪制的飛行軌跡主要是在二維空間上,后期應增加三維空間的立體顯示功能。
參考文獻:
[1]王慶有,葉飛,陳士英,等.探空數據接收機疑難故障分析與排除[J].內蒙古氣象,2017(6):32-33.
[2]楊程,董美瑩,陳鋒,等.浙江多源資料高空風對比分析[J].沙漠與綠洲氣象,2018,12(4):74-81.
[3]周沖沖,鐘世明,李薇,等.基于GNSS及探空儀數據的大氣折射指數反演新方法[J].大地測量與地球動力學,2017,37(2):200-204.
[4]董曉雁.L波段探空數據備份接收機的注意事項及應用[J].氣象水文海洋儀器,2015,32(4):79-82.
作者簡介:姜孿娟,南京大橋機器有限公司。