張琰,俞霄靚,梁欣,吳啟楦
(中國(guó)民用航空西北地區(qū)空中交通管理局,陜西 西安 710082)
基于MICAPS核心的數(shù)值預(yù)報(bào)資料下載處理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)
張琰,俞霄靚,梁欣,吳啟楦
(中國(guó)民用航空西北地區(qū)空中交通管理局,陜西 西安 710082)
通過(guò)分析MICAPS系統(tǒng)核心的dataCMACAST軟件,得到數(shù)值預(yù)報(bào)解碼程序參數(shù),利用C#語(yǔ)言和XML技術(shù),設(shè)計(jì)開(kāi)發(fā)數(shù)值預(yù)報(bào)資料下載處理系統(tǒng)。該軟件能自動(dòng)、定時(shí)從遠(yuǎn)程數(shù)據(jù)服務(wù)器下載數(shù)值預(yù)報(bào)資料,解碼處理并記錄日志,供客戶(hù)端通過(guò)MICAPS軟件調(diào)用。并且具備可移植性和對(duì)不同平臺(tái)的兼容性,對(duì)數(shù)值預(yù)報(bào)資料類(lèi)型可以通過(guò)XML配置文件做到增、刪、改。
MICAPS;DataCMACAST;數(shù)值預(yù)報(bào);XML
MICAPS(Meteorological Information Comprehensive Analysis and Processing System,氣象信息綜合分析處理系統(tǒng))是我國(guó)氣象預(yù)報(bào)現(xiàn)代化業(yè)務(wù)系統(tǒng)的重要組成部分。于1994年開(kāi)始開(kāi)發(fā),1997年第一版問(wèn)世,2007年發(fā)布了MICAPS 3.0正式版本,并于2009年發(fā)布了MICAPS 3.1測(cè)試版。MICAPS客戶(hù)端可以顯示和處理氣象觀(guān)測(cè)數(shù)據(jù)、圖形產(chǎn)品、數(shù)值預(yù)報(bào)格點(diǎn)資料、為繪制天氣圖和制作預(yù)報(bào)產(chǎn)品而進(jìn)行交互操作。新版MICAPS系統(tǒng)提供了本地?cái)?shù)據(jù)管理能力,設(shè)置靈活,二次開(kāi)發(fā)十分方便,對(duì)建立基于MICAPS第三版的業(yè)務(wù)流程提供了方便[1]。
本文主要介紹了數(shù)值預(yù)報(bào)資料下載處理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。該軟件通過(guò)分析MICAPS核心下載處理軟件dataCMACAST的運(yùn)行情況,整理得到解碼程序的運(yùn)行參數(shù)?;诮獯a程序,采用C#語(yǔ)言編寫(xiě)了下載處理軟件,該軟件可與dataCMACAST進(jìn)行對(duì)接,定時(shí)對(duì)數(shù)值預(yù)報(bào)資料進(jìn)行下載與處理,解決原軟件運(yùn)行不穩(wěn)定的問(wèn)題。
1.1 現(xiàn)狀
MICAPS 3.1系統(tǒng)所提供的豐富的氣象觀(guān)測(cè)數(shù)據(jù)、圖形產(chǎn)品以及數(shù)值預(yù)報(bào)產(chǎn)品已成為民航西北地區(qū)空管局氣象中心制作天氣預(yù)報(bào)的重要參考來(lái)源,大幅度提高了天氣預(yù)報(bào)的準(zhǔn)確性和實(shí)時(shí)性,成為預(yù)報(bào)工作不可缺少的參考資料。
目前,MICAPS的數(shù)據(jù)源是由陜西省氣象局提供的世界數(shù)值預(yù)報(bào)產(chǎn)品,通過(guò)陜西省氣象局到西安咸陽(yáng)機(jī)場(chǎng)民航西北空管局氣象中心數(shù)據(jù)庫(kù)機(jī)房鋪設(shè)的一條10M專(zhuān)線(xiàn)引接。在西北空管局氣象中心數(shù)據(jù)庫(kù)機(jī)房架設(shè)一臺(tái)MICAPS資料服務(wù)器,通過(guò)MICAPS系統(tǒng)自帶的后臺(tái)資料下載軟件dataCMACAST將原始數(shù)值預(yù)報(bào)產(chǎn)品下載至本地,經(jīng)過(guò)解析處理進(jìn)程將原始資料解碼后在前臺(tái)顯示。同時(shí),將MICAPS解碼后的資料共享到氣象中心預(yù)報(bào)室的MICAPS客戶(hù)端上顯示。
1.2 存在問(wèn)題
MICAPS系統(tǒng)引入以后,以其信息量大、檢索方便等特點(diǎn),對(duì)氣象預(yù)報(bào)發(fā)揮著重要作用。然而,在日常工作中,我們發(fā)現(xiàn)該系統(tǒng)有以下幾點(diǎn)缺陷:
第一,由于MICAPS后臺(tái)的dataCMACAST資料下載進(jìn)程24小時(shí)持續(xù)運(yùn)行,長(zhǎng)時(shí)間占用大量計(jì)算機(jī)CPU及內(nèi)存資源,不能有效釋放系統(tǒng)硬件資源,會(huì)造成系統(tǒng)經(jīng)常性死機(jī),使得預(yù)報(bào)產(chǎn)品不能及時(shí)下載處理,嚴(yán)重影響預(yù)報(bào)工作。第二,MICAPS系統(tǒng)自帶的資料下載進(jìn)程僵死會(huì)導(dǎo)致監(jiān)控程序和解碼處理程序僵死,因此不能及時(shí)發(fā)現(xiàn)數(shù)據(jù)缺失。第三,MICAPS系統(tǒng)缺少日志功能,不能及時(shí)記錄系統(tǒng)運(yùn)行信息,在系統(tǒng)出現(xiàn)錯(cuò)誤時(shí)運(yùn)維人員不能查找出問(wèn)題所在,對(duì)系統(tǒng)進(jìn)一步開(kāi)發(fā)不利。
針對(duì)出現(xiàn)的諸多問(wèn)題,對(duì)現(xiàn)有MICAPS系統(tǒng)的進(jìn)一步開(kāi)發(fā)缺少參考資料,并且開(kāi)發(fā)周期較長(zhǎng),不能立即解決資料缺失問(wèn)題,因此經(jīng)過(guò)對(duì)MICAPS系統(tǒng)的結(jié)構(gòu)分析,重新開(kāi)發(fā)了一套基于C#的資料下載處理程序,與原MICAPS系統(tǒng)核心的dataCMACAST后臺(tái)解碼進(jìn)程對(duì)接。
在軟件開(kāi)發(fā)過(guò)程中,軟件的復(fù)雜性是基本特征,主要有4個(gè)原因:?jiǎn)栴}域的復(fù)雜性、管理開(kāi)發(fā)過(guò)程的困難性、通過(guò)軟件可能實(shí)現(xiàn)的靈活性以及刻畫(huà)離散系統(tǒng)行為的問(wèn)題[2]。該軟件的設(shè)計(jì)采用面向?qū)ο蟮脑O(shè)計(jì)方法,通過(guò)分解復(fù)雜系統(tǒng),利用類(lèi)的抽象、封裝和繼承得到較小的系統(tǒng),從較小的系統(tǒng)開(kāi)始增量式推演。軟件的設(shè)計(jì)要求在不影響原有系統(tǒng)的情況下,做到自動(dòng)、定時(shí)下載并解碼數(shù)值預(yù)報(bào)資料;在遇到資料不及時(shí)或系統(tǒng)故障時(shí),記錄日志用于故障排查;同時(shí)要求具備可移植性和對(duì)不同平臺(tái)的兼容性;并且預(yù)留用戶(hù)操作接口,對(duì)數(shù)值預(yù)報(bào)資料類(lèi)型做到可增、刪、改。
針對(duì)上述要求,在軟件開(kāi)發(fā)中采用XML作為數(shù)據(jù)文件的描述方式,抽象出數(shù)據(jù)的基本信息,如遠(yuǎn)程FTP地址、文件名、后處理程序等,便于描述新的數(shù)據(jù)。同時(shí)與dataCMACAST軟件對(duì)接,利用現(xiàn)有的解碼程序,對(duì)數(shù)值預(yù)報(bào)資料進(jìn)行解碼處理。
3.1 系統(tǒng)分析
MICAPS系統(tǒng)主要包括數(shù)據(jù)服務(wù)器、應(yīng)用服務(wù)器和客戶(hù)端三部分,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
原MICAPS數(shù)值預(yù)報(bào)資料系統(tǒng)利用dataCMACAST軟件從陜西省氣象局FTP服務(wù)器下載氣象預(yù)報(bào)資料,進(jìn)行本地解碼處理,供航空預(yù)報(bào)人員調(diào)取使用,主要預(yù)報(bào)產(chǎn)品如表1所示。
圖1 MICAPS系統(tǒng)結(jié)構(gòu)圖
表1 主要數(shù)值預(yù)報(bào)產(chǎn)品類(lèi)型和時(shí)次
dataCMACAST資料下載與解碼工作流程如下,利用MicapsDateSchedule.exe從遠(yuǎn)程數(shù)據(jù)服務(wù)器下載資料,放入用戶(hù)設(shè)定好的本地目錄D:MSERVER1D,運(yùn)行后臺(tái)相應(yīng)的解碼程序,對(duì)本地目錄下的數(shù)值預(yù)報(bào)資料進(jìn)行解碼處理,轉(zhuǎn)換格式,放入用戶(hù)設(shè)定的解碼后的目錄D:MSERVER1MICAPS,由客戶(hù)端的用戶(hù)登錄相應(yīng)資料目錄查看。用戶(hù)通過(guò)MicapsDataServerConfig.exe程序?qū)Y料下載的時(shí)次、文件名、下載頻率、解碼程序等進(jìn)行配置,同時(shí)下載后調(diào)用datatran目錄下的解碼程序?qū)Y料進(jìn)行解碼處理[3]。主要解碼程序和參數(shù)如表2所示。
數(shù)值預(yù)報(bào)解碼程序?yàn)榕幚砦募?,運(yùn)行時(shí)需要傳遞參數(shù),表中“FilePath”表示下載后的原始資料存放目錄,“TargetPath”表示解碼后的資料存放目錄,“process_date”表示運(yùn)行時(shí)當(dāng)前系統(tǒng)時(shí)間,格式為yymmddhh(年年日日月月時(shí)時(shí))。
3.2 軟件架構(gòu)設(shè)計(jì)
由圖2可以看出,軟件需要解決的問(wèn)題是從數(shù)據(jù)服務(wù)器上下載數(shù)值預(yù)報(bào)原始格點(diǎn)場(chǎng)資料,在應(yīng)用服務(wù)器上進(jìn)行解碼,處理后放入共享目錄,供客戶(hù)端的MICAPS軟件調(diào)用顯示。
表2 dataCMACAST軟件解碼程序及參數(shù)說(shuō)明
圖2 MICAPS系統(tǒng)運(yùn)行結(jié)構(gòu)簡(jiǎn)圖
由于軟件搭建在應(yīng)用服務(wù)器上,使用者只是管理員或設(shè)備維護(hù)者,并不面向廣大氣象預(yù)報(bào)用戶(hù),所以開(kāi)發(fā)采用基于客戶(hù)端的C/S架構(gòu),安全性能可以很容易保證,由于只有一層交互,因此響應(yīng)速度較快。這種體系的數(shù)據(jù)應(yīng)用系統(tǒng)的優(yōu)勢(shì)在于開(kāi)發(fā)周期較短,能夠適應(yīng)大部分中小型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的要求[4]。數(shù)值預(yù)報(bào)資料每天固定時(shí)次制作,下載與處理沒(méi)有必要一直占用系統(tǒng)資源,所以開(kāi)發(fā)中考慮根據(jù)資料時(shí)次定時(shí)下載的方式,在下載完畢結(jié)束程序,釋放系統(tǒng)資源,保證程序長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。同時(shí),軟件通過(guò)調(diào)取dataCMACAST原有解碼程序,對(duì)資料進(jìn)行解碼轉(zhuǎn)換。物理結(jié)構(gòu)如表3所示。
表3 GAT軟件目錄
3.3 功能模塊劃分
該軟件的功能模塊劃分如圖3所示,共分為定時(shí)任務(wù)模塊、批處理模塊、配置模塊、XML處理模塊和GATinvent 5個(gè)主要模塊。
(1)定時(shí)任務(wù)模塊:該模塊根據(jù)數(shù)值預(yù)報(bào)資料時(shí)次,定時(shí)啟動(dòng)對(duì)應(yīng)的批處理模塊。
(2)批處理模塊:該模塊根據(jù)氣象數(shù)值預(yù)報(bào)產(chǎn)品類(lèi)型,將對(duì)應(yīng)的數(shù)值預(yù)報(bào)資料配置文件(XML格式)以參數(shù)形式傳遞給下載處理程序,進(jìn)行封裝。
(3)配置模塊:該模塊分為綜合配置模塊和數(shù)值預(yù)報(bào)資料配置模塊。用于存放軟件運(yùn)行的參數(shù)配置,采用XML語(yǔ)言編寫(xiě),每個(gè)文件為一個(gè)單獨(dú)的XML文件,具備可擴(kuò)展、可維護(hù)性。其中綜合配置模塊包含數(shù)據(jù)服務(wù)器的FTP地址、用戶(hù)名、口令、解碼后資料存放目錄、解碼程序絕對(duì)路徑。數(shù)值預(yù)報(bào)資料配置模塊包括資料時(shí)次、資料下載目錄、本地存儲(chǔ)路徑、日志存放目錄、文件名模板、文件名篩選關(guān)鍵字。
圖3 GAT功能模塊劃分示意圖
(4)XML處理模塊:該模塊對(duì)XML文件進(jìn)行讀取和處理,提取配置模塊的相應(yīng)參數(shù)轉(zhuǎn)化為程序運(yùn)行的變量,同時(shí)根據(jù)文件名篩選關(guān)鍵字生成篩選關(guān)鍵字矩陣,用于和數(shù)值預(yù)報(bào)資料的文件名進(jìn)行對(duì)比和匹配。
(5)日志記錄模塊:該模塊根據(jù)不同數(shù)值預(yù)報(bào)資料類(lèi)型創(chuàng)建不同的日志文件(TXT格式),生成日志頭,對(duì)資料下載與處理過(guò)程中的情況進(jìn)行記錄,將下載的所有文件名和異常故障寫(xiě)入日志,供管理員日常維護(hù)使用。
(6)GET下載模塊:該模塊根據(jù)配置參數(shù)和系統(tǒng)時(shí)間,連接遠(yuǎn)程數(shù)據(jù)服務(wù)器,根據(jù)文件名篩選,下載當(dāng)天對(duì)應(yīng)的數(shù)值預(yù)報(bào)資料,放入應(yīng)用服務(wù)器的本地目錄進(jìn)行存儲(chǔ),為解碼提供數(shù)據(jù)源。
(7)數(shù)值預(yù)報(bào)資料解碼模塊:該模塊根據(jù)配置模塊的參數(shù)和系統(tǒng)時(shí)間,利用原dataCMACAST軟件相應(yīng)解碼程序,對(duì)應(yīng)用服務(wù)器上的數(shù)值預(yù)報(bào)原始格點(diǎn)場(chǎng)資料進(jìn)行解碼處理,放入解碼后的目錄,供MICAPS3.1軟件調(diào)用。
其中,日志記錄模塊、GET下載模塊和數(shù)值預(yù)報(bào)資料解碼模塊由GATinvent模塊封裝,減少軟件變量的傳遞、提高模塊之間的內(nèi)聚性。
3.4 系統(tǒng)運(yùn)行流程
以歐洲中心數(shù)值預(yù)報(bào)資料下載處理為例,圖4為系統(tǒng)運(yùn)行流程圖,進(jìn)行說(shuō)明定時(shí)任務(wù)啟動(dòng)歐洲中心數(shù)值預(yù)報(bào)資料的批處理文件ecmwf08.bat,提取批處理文件參數(shù)ecmwf08.xml并啟動(dòng)下載處理主程序;XML文件模塊根據(jù)歐洲模式XML配置文件和軟件綜合配置文件APP.config獲取XML信息,轉(zhuǎn)化為程序運(yùn)行中的變量,并創(chuàng)建日志,開(kāi)始記錄下載與處理的情況;根據(jù)XML文件中的文件名篩選項(xiàng),下載程序根據(jù)相應(yīng)類(lèi)型下載數(shù)值預(yù)報(bào)資料,下載后交由解碼模塊處理;解碼程序通過(guò)參數(shù)判斷是否為T(mén)639資料,根據(jù)解碼規(guī)則對(duì)資料進(jìn)行格式轉(zhuǎn)換,并記入日志,主程序結(jié)束。
(1)綜合配置文件APP.config:軟件啟動(dòng)后的初始化配置,包含用戶(hù)口令配置和一些路徑配置信息,下述為APP.config配置模板:
說(shuō)明:
①I(mǎi)P:遠(yuǎn)程數(shù)據(jù)服務(wù)器IP
②ID:用戶(hù)名
③Passwd:口令
④TargetPath:目標(biāo)路徑,如D:MSERVER1MICAPS
⑤ProcessPath:解碼程序目錄,如D:dataCMACAST1.9datatran
(2)數(shù)值預(yù)報(bào)資料配置文件:下載解碼時(shí)調(diào)用的參數(shù)配置,XML格式,包含不同數(shù)值預(yù)報(bào)產(chǎn)品的配置信息,下述為數(shù)值預(yù)報(bào)資料配置模板:
圖4 GAT系統(tǒng)運(yùn)行流程圖
以歐洲中心數(shù)值預(yù)報(bào)資料配置ecmwf08.xml為例作說(shuō)明:
①數(shù)值預(yù)報(bào)資料名:ecmwf08
②check:資料時(shí)次為UTC時(shí)間,如“00”或者“08”。
③RemotePath:數(shù)據(jù)服務(wù)器遠(yuǎn)程路徑,如/bexa/grib/ ecmf/。
④FilePath:下載后文件存儲(chǔ)路徑,如D:MSERVER1D awdatadvbs wpecmwf
⑤LogPath:日志存放目錄,如D:GATLOGecmwf_ Log.txt
⑥文件名模板:文件名中年用“yyyy”,月用“mm”,日用“dd”表示,如
A_HVLY85ECMFddhh00_C_ECMF_yyyymm20184751.bin
⑦ProcessName:解碼程序名,如clec08.bat
⑧NameH0:文件名篩選關(guān)鍵字,如num=“31,1”value=V,T,U,P,R,H;num=“8,4”value=ECMF。
(3)計(jì)劃時(shí)間:安排定時(shí)任務(wù)的啟動(dòng)時(shí)間,具體安排如表4所示:
表4 數(shù)值預(yù)報(bào)資料下載處理時(shí)間計(jì)劃表
其中“-22”的負(fù)號(hào)表示前一天22點(diǎn)UTC。
軟件具備日志記錄功能,在運(yùn)行中會(huì)生成下載與處理的日志信息,圖5為軟件運(yùn)行中生成的文件名信息和解碼信息日志??蛻?hù)端的MICAPS軟件可以調(diào)取解碼后的數(shù)值預(yù)報(bào)資料,并進(jìn)行圖片展示,如圖6所示。由圖5可以看出,該軟件能夠及時(shí)下載計(jì)劃時(shí)次的數(shù)值預(yù)報(bào)資料,解碼轉(zhuǎn)換為MICAPS客戶(hù)端可調(diào)用的資料類(lèi)型。運(yùn)行至今,沒(méi)有程序僵死或運(yùn)行不穩(wěn)定現(xiàn)象。
軟件改進(jìn)建議:
①數(shù)值預(yù)報(bào)資料類(lèi)型有待進(jìn)一步擴(kuò)充,根據(jù)XML的可擴(kuò)展性,增加更多資料類(lèi)型。
圖5 歐洲模式數(shù)值預(yù)報(bào)資料下載處理日志
②目前基于C/S控制臺(tái)結(jié)構(gòu),由于無(wú)需人為干預(yù),軟件定時(shí)啟動(dòng),無(wú)操作界面。以后可以考慮制作軟件界面,對(duì)資料的下載與處理進(jìn)行監(jiān)控。
③軟件設(shè)計(jì)時(shí)同一類(lèi)型數(shù)值預(yù)報(bào)資料日志記錄到同一份文件中,沒(méi)有自動(dòng)清除功能,當(dāng)日志文件過(guò)大時(shí),需要手工清除,今后可以考慮增加日志自動(dòng)清除功能。
本文基于MICAPS系統(tǒng)dataCMACAST軟件,利用面向?qū)ο蟮姆治龇椒?,設(shè)計(jì)開(kāi)發(fā)了C/S架構(gòu)的數(shù)值預(yù)報(bào)資料下載與處理軟件,解決了系統(tǒng)僵死造成資料不及時(shí)和系統(tǒng)維護(hù)缺少日志的問(wèn)題。采用XML語(yǔ)言對(duì)數(shù)值預(yù)報(bào)資料類(lèi)型做到增刪改,系統(tǒng)運(yùn)行穩(wěn)定,能夠?yàn)轭A(yù)報(bào)工作提供有力保障。
圖6 MICAPS客戶(hù)端調(diào)取預(yù)報(bào)資料截圖
[1] 李月安,羅兵,曹莉等.MICAPS 3.1用戶(hù)使用手冊(cè)[M],2009:24~34
[2] Grady Booch,Robert A.Maksimchuk,etc.Object-Oriented Analysis and Design with Applications[M],2012:7~20
[3] MICAPS數(shù)據(jù)服務(wù)器說(shuō)明書(shū)[Z],2010:1~35
[4] 俞霄靚,陳齊亞,黎巍.基于Web的民航氣象信息服務(wù)系統(tǒng)的改造[J],2011
Design and Development of the Numerical Forecast Products Processing System Based on MICAPS Core Software
ZHANG Yan,YU Xiao-liang,LIANG Xin,WU Qi-xuan
(Air Traffic Management Bureau of Northwest Regional of CAAC,Xi'an 710082)
By analyzing dataCMACAST,MICAPS core software,parameters of the numerical forecast decoding procedures were gotten,which induces to develop the download and processing system of the numerical forecast products by using C#and XML technology.The software has several advantages such as getting data from remote server by auto or timing,decoding and recoding log,call by MICAPS client, compatible with different platform,portability,reversing XML configuration file for getting different types of numerical forecast products.
MICAPS;DataCMACAST;Numerical Forecast;XML
1007-1423(2015)01-0058-07
10.3969/j.issn.1007-1423.2015.01.014
張琰(1986-),女,陜西西安人,碩士研究生,工程師,研究方向?yàn)闅庀髷?shù)值預(yù)報(bào)應(yīng)用
俞霄靚(1981-),女,陜西西安人,碩士研究生,工程師,研究方向?yàn)橛?jì)算機(jī)應(yīng)用
2014-11-27
2014-12-15
梁欣(1988-),女,陜西西安人,在讀碩士研究生,工程師,研究方向?yàn)橛?jì)算機(jī)應(yīng)用
吳啟楦(1989-),女,陜西西安人,在讀碩士研究生,工程師,研究方向?yàn)橛?jì)算機(jī)應(yīng)用