摘 要: 概述了民航氣象觀測報文準確及時發布的重要性,介紹了長沙黃花機場民航湖南空管分局氣象觀測現有發報的傳輸保障方式。現有傳輸保障方式存在手段單一,節點有較多的安全隱患,因此基于Python語言設計了氣象觀測發報及線路監控系統。該系統實現了串口和網絡兩種方式發報,能實時檢測現有報文線路是否正常,一定程度上優化了保障手段,降低了安全風險,從而提高氣象服務質量水平。
關鍵詞: 氣象觀測報文; Python語言; 報文線路監控; 安全風險
推薦閱讀:《內蒙古氣象》是由內蒙古氣象局、內蒙古氣象學會主辦的綜合性氣象科學技術刊物。
0 引言
機場氣象臺、機場氣象站應當按照民用航空氣象地面觀測和報告的規定發布機場天氣報告[1],行業里把機場天氣報告簡稱為氣象觀測報文,它是飛行氣象情報的一種,它的及時、準確發布,對保證航空安全起著非常重要作用[2]。中國民用航空局非常重視機場天氣報告的發布,在《民用航空飛行氣象情報發布與交換辦法》中明確規定,氣象觀測報文的交換時效是正點或半點的5分鐘內;在《氣象業務差錯標準》中明確,機場天氣報告遲發10分鐘以上屬嚴重差錯事件;在《中國民用航空氣象工作規則》中提到民用航空氣象服務機構需通過航空固定電信網(AFTN)、民用航空氣象信息系統、網絡等有效手段交換飛行氣象情報。
在民航系統,用來發布氣象觀測報文的軟件并不統一,有些是自己研發的;有些是用自動氣象觀測系統附屬功能;有些是用民用航空氣象信息系統附屬功能等,保障手段主要是通過AFTN和氣象數據庫系統(MQ方式傳輸)。長沙黃花機場民航湖南空管分局氣象觀測報文是通過中南空管局研發的軟件發布的,見圖1。從圖1可以看出,主、備發報終端都是通過串口方式,中間傳輸節點有轉換器、FA36、SDH等主要通信設備(傳輸距離較遠),傳輸保障手段單一,節點較多,存在很大的安全隱患;如果中間節點故障或者轉報機故障,會影響觀測報文的發布,很容易造成氣象嚴重差錯事件。
本文目的在于,設計一款軟件來解決現有氣象觀測發報傳輸保障單一、節點較多的安全隱患,同時能實時檢測現有報文線路是否正常,優化保障手段,從而提高氣象服務質量水平。
1 系統設計
1.1 需求分析
⑴ 能實時采集自動氣象觀測系統數據;
⑵ 根據采集數據編發報文;
⑶ 通過異步(RS232)及網絡方式發送報文;
⑷ 能實時監測異步(RS232)發報物理線路;
⑸ 能存儲發送報文內容。
1.2 系統總體框架
根據需求分析,對系統框架進行了初步設計,具體如圖2所示。
系統主要分為兩部分:一部分為數據采集和發報前端;一部分為報文線路監控及轉發,在下面文章中將詳細介紹這兩部分。
1.3 開發語言
本文采用Python語言進行開發。Python由Guido van Rossum于1989年底發明,第一個公開發行版發行于1991年。Python 有很多優點[3-4]:如語言優雅、簡單、實用、易讀懂;Python 語言內置了主流語言都必備的基礎工具和特性,使其在安裝后就能立即使用;Python 語言本身還帶有一個可視化的集成開發環境、一個可視化類庫和許多其他工具;擁有完善的標準庫和接口,可以進行混合編程等。
軟件用戶界面用wxFormBuilder開發的,該軟件是一個開源跨平臺的所見即所得的圖形用戶界面生成器,可以翻譯wxWidget GUI設計成C++,Python和PHP或XML格式;先通過該平臺設計軟件用戶界面,再將相應生成的Python語句拷貝出來,作為一個Class嵌入主程序。
2 數據采集及發報前端部分
本部分主要實現數據采集和編發報功能,數據采集功能:主要是從自動氣象觀測系統里獲取數據,并將數據解析,顯示;編發報功能:根據實時采集數據,定時提醒發報或者手動編報,然后根據選擇發報方式,將報文發出,其中信號流程如圖3。
自動氣象觀測系統它與飛行密切相關,是民航地面保障不可或缺的部分[5-6];可以提供風向、風速、溫濕度、氣壓、能見度等氣象要素,管制人員根據這些氣象要素指揮飛機的起飛和著陸;該系統輸出標準數據格式,其他系統可以通過RS232或者網絡的方式從自動氣象觀測系統里的TS16設備獲取,本文設計系統是通過網絡方式獲取該系統數據的(見圖2)。
用戶界面設計如圖4所示。關鍵點:數據接收與解析;串口發送與接收;網絡發送。
模塊socketserver.ThreadingTCPServer(),實現數據接收;當每個客服端請求連接到服務器時,socket服務端都會在服務器上創建一個“線程”或“進程”專門負責處理當前客戶端的所有請求。
其設計思路:先創建接收線程,然后讀取自動氣象觀測系統數據。自動氣象觀測系統輸出每幀數據(見圖5)以x011(字符r1)開始,以x03\x04(字符┕┙)結尾,中間每一大項以x03\x02(字符┕┓)隔開,再以(|)細分每一項,因此解析格式比較固定;先讀包頭x011,再讀包尾x03\x04,再根據x03\x02分割大項,最后根據分隔符讀取需要的數值。
模塊myserial.write()和myserial. read()實現串口讀寫功能。
網絡發送功能通過Redis服務實現。Redis是一個key-value存儲系統,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)等;為了保證效率,數據都緩存在內存;支持主從同步,數據可以從主服務器向任意數量的從服務器上同步;通過指令myredis.lpush()緩存數據。
不同的終端系統,安裝的Redis版本也不一樣,在使用時需特別注意。
界面設置了網口發送和串口發送兩個按鈕,可以根據觀測員的需要,只設置一個發送按鈕,一份報文同時通過串口和網口發送,雙重保障確保報文及時到達地區民航氣象數據庫。
3 報文線路監控及轉發部分
本部分主要實現報文轉發和線路監控功能,用戶界面如圖6。報文線路監控功能:主要實現對現有發送報文物理線路進行監測。空管系統觀測對報文發送時間有很高的要求,地方空管分局(站)需在整點或半點后三分鐘之內入地區空管局氣象數據庫。如果一旦報文線路故障,就需要采取應急手段,這將很容易導致發報超時。湖南空管分局觀測報文線路主要是RS232方式,為了能確保線路正常,需在整點或半點前某個時間段提前對線路進行測試。首先其他或本身終端定時或手動發送測試報文,然后通過轉報機轉發至本部分軟件,如果本部分軟件能正常收到報文,則證明報文物理線路是正常的,否則線路異常。
報文轉發有兩種方式:RS232和FTP發送方式,可以根據觀測員需求,只設置一個按鈕或者不設置按鈕而默認兩種方式同時發送。見圖2可得知RS232發送是該軟件部分與轉報機相連,線路發冠字暫定義為YMX,直接從分局B樓發至綜合業務樓轉報機,中間傳輸節點減少;FTP發送是將報文采取FTP傳輸至民航氣象數據庫系統[7]的監控平臺終端,然后進一步傳輸至該系統通信機,最后通過通信機分別轉發至廣州和本地氣象數據庫。
接收的報文數據是來自于發報前端(安裝了Redis服務器),主程序中設置了定時程序,每隔1秒,去檢查Redis服務器是否有緩存,如果有數據則通過指令myredis.lpop(),獲取新數據。另外線路告警、接收和發送報文等都在信息提示框中顯示。
4 結束語
氣象觀測報文及時準確的發布,對保證航空安全起著非常重要作用。本文基于Python語言設計的氣象觀測發報及線路監控系統,經初步測試,基本功能正常,操作簡單,并得出如下結論。
第一,作為黃花機場民航湖南空管分局氣象觀測發報方式一個很好地補充,一份報文可以同時通過三種方式發往地區民航氣象數據庫,保障手段得到很大程度地優化。
第二,是該系統的串口線路監控功能,對觀測員起到了提前預警作用,如果串口線路故障,有充足時間采取其它發報手段,而不會因線路或者發報主機故障,導致發報延時,造成氣象差錯事件。
第三,這對民航空管系統保障觀測發報有一定的借鑒意義,用兩種傳輸方式發報,同時也能監控線路是否正常。
該系統還存在一些不足,系統需要觀測員長時間測試,對用戶界面及功能提出改進建議,使該系統進一步完善。
參考文獻(References):
[1] 中國民用航空局.中國民用航空氣象工作規則[Z],2014.
[2] 梁欣,黎巍,俞霄靚,張琰,邢杉.基于Shell腳本的氣象報文遲發漏發監控程序設計與實現[J].計算機時代,2015.3: 46-49
[3] 史夢楚.Python 語言的探討[J]. 互聯網+應用,2017:98
[4] 薛建波,譚凌嵐,羅佳.基于Python 混合編程[J]. 網絡與信息工程,2018:80-81
[5] 周祖錫. 氣象自動觀測系統雷擊故障案例分析[J].氣象水文海洋儀器,2016.2.
[6] 郭方. 機場氣象自動觀測系統監控及值班輔助軟件的研究與設計[J].內蒙古科技與經濟, 2017.1.
[7] 王歡,趙曄暉. 民航氣象數據庫系統典型故障研究[J].民航學報,2018.2:25-29
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >