何 月 嬌(北京天航信民航通信網絡發展有限公司 北京 100192)
民航飛行電報數據是空管自動化系統的重要數據源,也是空中交通管制的主要信息來源,電報中包含了航班航空飛行的關鍵數據,如航班號、起降機場、飛機機型、起飛時間、降落時間、飛行高度、航路等,在空管自動化系統中發揮著重要作用。民航飛行電報解析后的航班動態數據,與雷達、機場、倉單、空域等信息結合,廣泛應用于民航航班運行監控、數據統計挖掘、CDM等生產監測統計系統中。
隨著民航業的快速發展,空中交通流量日益增加。中國民用航空局民航機場生產統計公報顯示,近五年飛機起降架次增長率在7.9%以上,如表1所示,2016年平均每天起降航班2.5萬架次[1]。

表1 航班起降架次統計
每一個航班的起降,對應的是幾倍甚至幾十倍的民航飛行電報數量。民航飛行電報數量的快速增長,給航班的監控運行帶來了壓力和挑戰,對于民航飛行電報自動化處理的效率和準確性提出了更高的要求。文獻[2-4]討論了使用XML、語法分析、正則表達式、知識庫解決民航飛行電報解析和容錯的問題。文獻[5]討論了電報數據質量的約束模型。文獻[6]討論了航班動態數據挖掘與航班預測模型,對航班到達時間進行了預測。綜上,歷史文獻對基于規范的電報格式的解析處理以及動態數據預測有一些相關研究,國內尚未出現信息整合設計和效率的討論。
基于航班的數據整合是將動態的民航飛行電報基于航班按照時間序列進行整合,以提供基于航班的準確的實時信息。民航飛行電報在拍發過程中存在一定量級的錯誤、重復、延遲,其中拍發錯誤指的是缺失編組、使用代碼錯誤、電報提供的信息錯誤、電報種類錯誤等,拍發重復指電報的重復發送。航班運行的實時監控對于航班整合的效率和準確性要求較高。對電報數據整合時,需要識別錯誤電報進行自動糾正或異常提示,重復拍發的電報可以識別重復值,并整合到同一個航班上。
基于上述背景,本文提出基于狀態機的民航飛行電報數據流并發處理模型,目的是提高數據整合的準確性,以及提高處理效率,滿足民航飛行電報的監控統計需求。
我國管制區域間飛行動態信息的傳遞是通過航空固定電信網AFTN,以民用航空飛行動態固定格式電報進行發送。民航飛行電報拍發遵從《民用航空飛行動態固定電報格式》標準,該標準是依據民航局規章《民航航空空中交通規則》,參考國際民航組織文件《空中交通管理》(ICAO DOC 4444)制定[7]。《民用航空飛行動態固定電報格式》歷年標準有MH 4007-1998、MH/T 4007-2006、MH/T 4007-2012標準、現行標準為MH/T 4007-2012。MH/T 4007-2012中電報種類有16種[8]。具體電報的種類包括:
緊急電報:告警報(ALR),無線電通信時效報(RCF)。
動態電報:領航計劃報(FPL)、修改領航計劃報(CHG)、取消領航計劃報(CNL)、延誤報(DLA)、起飛報(DEP)、落地報(ARR)。
協調電報:現行飛行變更報(CPL)、預計飛越報(EST)、管制協調報(CDN)、管制協調接收報(ACP)、邏輯確認報(LAM)。
補充電報:請求飛行計劃報(RQP)、請求領航計劃補充信息報(RQS)、領航計劃補充信息報(SPL)。
由于各地區管理局、航空公司運輸公司、機場公司、相關飛行學院等發展程度和設備多樣,在實際電報拍發過程中,存在MH 4007-1998、MH/T 4007-2006、MH/T 4007-2012標準混合使用,在實際電報還會出現PLN(飛行預報)、ABS(取消重復與非重復性飛行預報)、RTN(返航報)等電報種類,還存在同一種電報如領航計劃報(FPL)拍發使用多種標準的情況,如18編組。另外,在電報中會出現民航簡字簡語,對于飛行電報進行變更或者取消等處理。
有限狀態機是一種用來進行對象行為建模的數學工具,其作用主要是描述對象在它的生命周期內所經歷的狀態序列,以及如何響應來自外界的各種事件。每個時刻根據當前的狀態和當前時刻的輸入,決定應執行的動作和確定一個狀態以進行狀態轉移。針對民航飛行電報數據特征和邏輯關系,利用有限狀態機的概念,提出基于狀態機的民航飛行電報數據并發整合模型,模型相關定義如下。
定義1(FSM模型)T=(Σ,S,SI,δ,F)。其中T表示模型定義,Σ表示輸入數據類型集合,S是狀態的非空有限集合,SI表示初始化狀態且SI∈S,δ表示狀態轉移函數且S×δ→S,F是最終狀態的集合且F∈S。
定義2(數據類型集合)Σ給定數據類型集合,表示所有電報類型的集合,Σ={FPL,DEP,CNL,…,ARR}。
丁主任擦了擦眼淚,對著甲洛洛:張大爺,你是知道我的,當初為了救我父親的命,我不得不接受她家的幫助,可她家從來都只把我當成一條狗,一條供潘美麗驅使的狗。甲洛洛嘆息了一聲:過不下去就別過了,人生一輩子,苦點累點可以扛著,但一個大男人不能活得沒了尊嚴。丁主任感激地看著甲洛洛:張大爺,今后就叫我小丁吧,這院壩里,我最敬重的就是你,也就你最了解我,最可憐我了,我心里一直記著呢!
定義3(狀態的非空有限集合)S={APLN,APRE,…,AlARM},表示航班狀態集合。
定義4(初始化狀態)SI={APLN},表示航班初始狀態。
定義5(狀態轉移函數)Sj=δ(Si) ,其中δ為轉移函數,Si,Sj∈S。如航班初始狀態為APLN,接收數據后仍處于APLN或者跳轉到其他狀態。根據輸入數據不同,跳轉到不同狀態,如接收{FPL},跳轉到{APRE}狀態。
定義6(最終狀態的集合)F={ARR,ACNL,ACDN,AlARM},表示航班的最終狀態集合。
定義7(主鍵)K=f(I),其中I∈S,K表示消息關鍵詞序列,f表示關鍵詞處理函數。
定義8(并行處理分組)MG=GROUP(K),GROUP表示分組函數。
航班狀態有限集合如表2所示,劃分為九種狀態。狀態跳轉如圖1所示。

表2 狀態的非空有限集合

圖1 狀態轉移圖
民航飛行電報處理主要包括5部分:數據接收、電報識別、電報解析、電報整合、信息展示。具體算法如圖2所示。

圖2 民航飛行電報處理流程
1) 接收數據字符,判斷是否觸發電報識別。是則進入電報識別,否則保存字符。
2) 根據電報規則識別電報,如ZCZC。
3) 根據民用航空飛行動態固定電報格式分組規則,多線程解析電報,哈希存儲鍵值對,K={FNM,FDATE,DEPDROME,ARRDROME}。
4) 根據電報鍵值K進行分組,MG=GROUP(K),多線程處理MG。
5) 根據FSM模型,對電報內容進行整合。
以“FPL/DEP/ARR/DEP/ARR/CNL/CHG/ARR”編碼為例說明上述算法的執行過程,實際民航飛行電報的復雜度和長度要遠大于此例。
接收字符串識別電報,去除電報報頭后電報內容如圖3所示。分析電報內容,獲取電報鍵值。該實例中識別到3個鍵值,按照鍵值分組,并行執行基于FSM的狀態整合獲得結果。

圖3 算法執行實例
以2017年6月份一周數據為例,平均每天起降航班2.9萬次,平均每天錯誤數據20個,航班處理準確率99%以上,如圖4所示。

圖4 起降量和準確性統計
起降數據處理實時性在100 ms以內。對比前期數據航班處準確率在90%左右,數據處理實時性在2 min左右。
測試平臺為 3.3 GHz 處理器、4 GB內存、Windows 2007、JDK1.7,使用 Java 實現。
本文提出一種基于狀態機的民航飛行電報數據并發整合模型,它擴展了目前的民航飛行電報處理方法,滿足數據處理的實時性、準確性需求。實驗結果表明,該方法利用較小的空間,實現了較高的效率。
[1] 中國民用航空局.年度機場生產統計公報[R].北京:民航發展計劃司,2016.
[2] 陳強.飛行數據處理技術的研究與應用[D].四川:四川大學,2003.
[3] 陳玉秋.民航空管自動化系統中飛行電報自動化處理[D].南京:南京理工大學,2007.
[4] 杜冬.基于正則表達式的飛行電報處理算法[J].中國民航飛行學院學報,2013(1):21- 23,28.
[5] 姜高揚,王潔寧,周沅.基于FIXM的AFTN電報數據質量約束模型研究[J].計算機應用與軟件,2016,33(10):122- 125,144.
[6] 張猛.航班動態數據挖掘與航班預測模型的研究和實現[D].北京:北京郵電大學,2015.
[7] International Civil Aviation Organization.Doc 4444,Procedures for Air Navigation Services,Air Traffic Management[M].Canada:International Civil Aviation Organization,2017.
[8] 中國民用航空局.MH/T4007-2012民用航空飛行動態固定格式電報管理規定[S/OL].航空器適航審定司,2012[2012-10-10].http://www.caac.gov.cn/XXGK/XXGK/BZGF/201708/t20170804_45973.html.