摘? 要: 概述了民航氣象觀測報文準確及時發(fā)布的重要性,介紹了長沙黃花機場民航湖南空管分局氣象觀測現(xiàn)有發(fā)報的傳輸保障方式?,F(xiàn)有傳輸保障方式存在手段單一,節(jié)點有較多的安全隱患,因此基于Python語言設計了氣象觀測發(fā)報及線路監(jiān)控系統(tǒng)。該系統(tǒng)實現(xiàn)了串口和網(wǎng)絡兩種方式發(fā)報,能實時檢測現(xiàn)有報文線路是否正常,一定程度上優(yōu)化了保障手段,降低了安全風險,從而提高氣象服務質(zhì)量水平。
關鍵詞: 氣象觀測報文; Python語言; 報文線路監(jiān)控; 安全風險
中圖分類號:TP311? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)09-36-04
Design of the meteorological observation transmitting telegraph and line monitoring system using Python
Zhou Zuxi
(The Civil Aviation Air Traffic Management Bureau of Hunan, Changsha, Hunan 410137, China)
Abstract: The importance of accurate and timely release of civil aviation meteorological observation telegraph was outlined in this paper, and the current transmission guarantee mode of transmitting telegraph of the civil aviation air traffic management bureau of Hunan in Changsha Huanghua airport was introduced. There are many hidden dangers in the existing transmission guarantee mode, such as single means and more nodes. To solve the problems, the meteorological observation transmitting telegraph and line monitoring system based on Python was designed, it realizes the serial port and network two ways transmitting to send message, and can detect whether the existing message line is normal in real time, which optimizes the safeguards to a certain extent and reduce the safety risk effectively, so as to improve the quality of meteorological services.
Key words: meteorological observation telegraph; Python; telegraph line monitoring; safety risk
0 引言
機場氣象臺、機場氣象站應當按照民用航空氣象地面觀測和報告的規(guī)定發(fā)布機場天氣報告[1],行業(yè)里把機場天氣報告簡稱為氣象觀測報文,它是飛行氣象情報的一種,它的及時、準確發(fā)布,對保證航空安全起著非常重要作用[2]。中國民用航空局非常重視機場天氣報告的發(fā)布,在《民用航空飛行氣象情報發(fā)布與交換辦法》中明確規(guī)定,氣象觀測報文的交換時效是正點或半點的5分鐘內(nèi);在《氣象業(yè)務差錯標準》中明確,機場天氣報告遲發(fā)10分鐘以上屬嚴重差錯事件;在《中國民用航空氣象工作規(guī)則》中提到民用航空氣象服務機構需通過航空固定電信網(wǎng)(AFTN)、民用航空氣象信息系統(tǒng)、網(wǎng)絡等有效手段交換飛行氣象情報。
在民航系統(tǒng),用來發(fā)布氣象觀測報文的軟件并不統(tǒng)一,有些是自己研發(fā)的;有些是用自動氣象觀測系統(tǒng)附屬功能;有些是用民用航空氣象信息系統(tǒng)附屬功能等,保障手段主要是通過AFTN和氣象數(shù)據(jù)庫系統(tǒng)(MQ方式傳輸)。長沙黃花機場民航湖南空管分局氣象觀測報文是通過中南空管局研發(fā)的軟件發(fā)布的,見圖1。從圖1可以看出,主、備發(fā)報終端都是通過串口方式,中間傳輸節(jié)點有轉換器、FA36、SDH等主要通信設備(傳輸距離較遠),傳輸保障手段單一,節(jié)點較多,存在很大的安全隱患;如果中間節(jié)點故障或者轉報機故障,會影響觀測報文的發(fā)布,很容易造成氣象嚴重差錯事件。
本文目的在于,設計一款軟件來解決現(xiàn)有氣象觀測發(fā)報傳輸保障單一、節(jié)點較多的安全隱患,同時能實時檢測現(xiàn)有報文線路是否正常,優(yōu)化保障手段,從而提高氣象服務質(zhì)量水平。
1 系統(tǒng)設計
1.1 需求分析
⑴ 能實時采集自動氣象觀測系統(tǒng)數(shù)據(jù);
⑵ 根據(jù)采集數(shù)據(jù)編發(fā)報文;
⑶ 通過異步(RS232)及網(wǎng)絡方式發(fā)送報文;
⑷ 能實時監(jiān)測異步(RS232)發(fā)報物理線路;
⑸ 能存儲發(fā)送報文內(nèi)容。
1.2 系統(tǒng)總體框架
根據(jù)需求分析,對系統(tǒng)框架進行了初步設計,具體如圖2所示。
系統(tǒng)主要分為兩部分:一部分為數(shù)據(jù)采集和發(fā)報前端;一部分為報文線路監(jiān)控及轉發(fā),在下面文章中將詳細介紹這兩部分。
1.3 開發(fā)語言
本文采用Python語言進行開發(fā)。Python由Guido van Rossum于1989年底發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Python 有很多優(yōu)點[3-4]:如語言優(yōu)雅、簡單、實用、易讀懂;Python 語言內(nèi)置了主流語言都必備的基礎工具和特性,使其在安裝后就能立即使用;Python 語言本身還帶有一個可視化的集成開發(fā)環(huán)境、一個可視化類庫和許多其他工具;擁有完善的標準庫和接口,可以進行混合編程等。
軟件用戶界面用wxFormBuilder開發(fā)的,該軟件是一個開源跨平臺的所見即所得的圖形用戶界面生成器,可以翻譯wxWidget GUI設計成C++,Python和PHP或XML格式;先通過該平臺設計軟件用戶界面,再將相應生成的Python語句拷貝出來,作為一個Class嵌入主程序。
2 數(shù)據(jù)采集及發(fā)報前端部分
本部分主要實現(xiàn)數(shù)據(jù)采集和編發(fā)報功能,數(shù)據(jù)采集功能:主要是從自動氣象觀測系統(tǒng)里獲取數(shù)據(jù),并將數(shù)據(jù)解析,顯示;編發(fā)報功能:根據(jù)實時采集數(shù)據(jù),定時提醒發(fā)報或者手動編報,然后根據(jù)選擇發(fā)報方式,將報文發(fā)出,其中信號流程如圖3。
自動氣象觀測系統(tǒng)它與飛行密切相關,是民航地面保障不可或缺的部分[5-6];可以提供風向、風速、溫濕度、氣壓、能見度等氣象要素,管制人員根據(jù)這些氣象要素指揮飛機的起飛和著陸;該系統(tǒng)輸出標準數(shù)據(jù)格式,其他系統(tǒng)可以通過RS232或者網(wǎng)絡的方式從自動氣象觀測系統(tǒng)里的TS16設備獲取,本文設計系統(tǒng)是通過網(wǎng)絡方式獲取該系統(tǒng)數(shù)據(jù)的(見圖2)。
用戶界面設計如圖4所示。關鍵點:數(shù)據(jù)接收與解析;串口發(fā)送與接收;網(wǎng)絡發(fā)送。
模塊socketserver.ThreadingTCPServer(),實現(xiàn)數(shù)據(jù)接收;當每個客服端請求連接到服務器時,socket服務端都會在服務器上創(chuàng)建一個“線程”或“進程”專門負責處理當前客戶端的所有請求。
其設計思路:先創(chuàng)建接收線程,然后讀取自動氣象觀測系統(tǒng)數(shù)據(jù)。自動氣象觀測系統(tǒng)輸出每幀數(shù)據(jù)(見圖5)以x011(字符r1)開始,以x03\x04(字符┕┙)結尾,中間每一大項以x03\x02(字符┕┓)隔開,再以(|)細分每一項,因此解析格式比較固定;先讀包頭x011,再讀包尾x03\x04,再根據(jù)x03\x02分割大項,最后根據(jù)分隔符讀取需要的數(shù)值。
模塊myserial.write()和myserial. read()實現(xiàn)串口讀寫功能。
網(wǎng)絡發(fā)送功能通過Redis服務實現(xiàn)。Redis是一個key-value存儲系統(tǒng),它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)等;為了保證效率,數(shù)據(jù)都緩存在內(nèi)存;支持主從同步,數(shù)據(jù)可以從主服務器向任意數(shù)量的從服務器上同步;通過指令myredis.lpush()緩存數(shù)據(jù)。
不同的終端系統(tǒng),安裝的Redis版本也不一樣,在使用時需特別注意。
界面設置了網(wǎng)口發(fā)送和串口發(fā)送兩個按鈕,可以根據(jù)觀測員的需要,只設置一個發(fā)送按鈕,一份報文同時通過串口和網(wǎng)口發(fā)送,雙重保障確保報文及時到達地區(qū)民航氣象數(shù)據(jù)庫。
3 報文線路監(jiān)控及轉發(fā)部分
本部分主要實現(xiàn)報文轉發(fā)和線路監(jiān)控功能,用戶界面如圖6。報文線路監(jiān)控功能:主要實現(xiàn)對現(xiàn)有發(fā)送報文物理線路進行監(jiān)測??展芟到y(tǒng)觀測對報文發(fā)送時間有很高的要求,地方空管分局(站)需在整點或半點后三分鐘之內(nèi)入地區(qū)空管局氣象數(shù)據(jù)庫。如果一旦報文線路故障,就需要采取應急手段,這將很容易導致發(fā)報超時。湖南空管分局觀測報文線路主要是RS232方式,為了能確保線路正常,需在整點或半點前某個時間段提前對線路進行測試。首先其他或本身終端定時或手動發(fā)送測試報文,然后通過轉報機轉發(fā)至本部分軟件,如果本部分軟件能正常收到報文,則證明報文物理線路是正常的,否則線路異常。
報文轉發(fā)有兩種方式:RS232和FTP發(fā)送方式,可以根據(jù)觀測員需求,只設置一個按鈕或者不設置按鈕而默認兩種方式同時發(fā)送。見圖2可得知RS232發(fā)送是該軟件部分與轉報機相連,線路發(fā)冠字暫定義為YMX,直接從分局B樓發(fā)至綜合業(yè)務樓轉報機,中間傳輸節(jié)點減少;FTP發(fā)送是將報文采取FTP傳輸至民航氣象數(shù)據(jù)庫系統(tǒng)[7]的監(jiān)控平臺終端,然后進一步傳輸至該系統(tǒng)通信機,最后通過通信機分別轉發(fā)至廣州和本地氣象數(shù)據(jù)庫。
接收的報文數(shù)據(jù)是來自于發(fā)報前端(安裝了Redis服務器),主程序中設置了定時程序,每隔1秒,去檢查Redis服務器是否有緩存,如果有數(shù)據(jù)則通過指令myredis.lpop(),獲取新數(shù)據(jù)。另外線路告警、接收和發(fā)送報文等都在信息提示框中顯示。
4 結束語
氣象觀測報文及時準確的發(fā)布,對保證航空安全起著非常重要作用。本文基于Python語言設計的氣象觀測發(fā)報及線路監(jiān)控系統(tǒng),經(jīng)初步測試,基本功能正常,操作簡單,并得出如下結論。
第一,作為黃花機場民航湖南空管分局氣象觀測發(fā)報方式一個很好地補充,一份報文可以同時通過三種方式發(fā)往地區(qū)民航氣象數(shù)據(jù)庫,保障手段得到很大程度地優(yōu)化。
第二,是該系統(tǒng)的串口線路監(jiān)控功能,對觀測員起到了提前預警作用,如果串口線路故障,有充足時間采取其它發(fā)報手段,而不會因線路或者發(fā)報主機故障,導致發(fā)報延時,造成氣象差錯事件。
第三,這對民航空管系統(tǒng)保障觀測發(fā)報有一定的借鑒意義,用兩種傳輸方式發(fā)報,同時也能監(jiān)控線路是否正常。
該系統(tǒng)還存在一些不足,系統(tǒng)需要觀測員長時間測試,對用戶界面及功能提出改進建議,使該系統(tǒng)進一步完善。
參考文獻(References):
[1] 中國民用航空局.中國民用航空氣象工作規(guī)則[Z],2014.
[2] 梁欣,黎巍,俞霄靚,張琰,邢杉.基于Shell腳本的氣象報文遲發(fā)漏發(fā)監(jiān)控程序設計與實現(xiàn)[J].計算機時代,2015.3: 46-49
[3] 史夢楚.Python 語言的探討[J]. 互聯(lián)網(wǎng)+應用,2017:98
[4] 薛建波,譚凌嵐,羅佳.基于Python 混合編程[J]. 網(wǎng)絡與信息工程,2018:80-81
[5] 周祖錫. 氣象自動觀測系統(tǒng)雷擊故障案例分析[J].氣象水文海洋儀器,2016.2.
[6] 郭方. 機場氣象自動觀測系統(tǒng)監(jiān)控及值班輔助軟件的研究與設計[J].內(nèi)蒙古科技與經(jīng)濟, 2017.1.
[7] 王歡,趙曄暉. 民航氣象數(shù)據(jù)庫系統(tǒng)典型故障研究[J].民航學報,2018.2:25-29