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