劉海燕 周雪瑩
摘要:氣象預報技能競賽可以提升天氣預報業(yè)務(wù)水平, 培養(yǎng)天氣預報員業(yè)務(wù)素質(zhì)和基本技能。為了提供良好的競賽環(huán)境,依托氣象大數(shù)據(jù)云平臺和虛擬資源池,采用“云+端”的模式設(shè)計了江西省氣象預報競賽產(chǎn)品管理系統(tǒng),構(gòu)建了面向省市兩級的統(tǒng)一存儲環(huán)境,提供競賽產(chǎn)品文件的上傳與下載服務(wù),并且實時監(jiān)視傳輸情況。
關(guān)鍵詞:預報競賽;Python;虛擬資源池;MySQL
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)26-0063-02
開放科學(資源服務(wù))標識碼(OSID):
氣象行業(yè)職業(yè)技能競賽已成為推動氣象事業(yè)改革與發(fā)展的有力抓手,是全行業(yè)基層氣象業(yè)務(wù)發(fā)展的風向標、展示氣象人精神風貌的大舞臺以及培育勞動精神、勞模精神、工匠精神和造就基層氣象人才的助推器。及時、完整的氣象數(shù)據(jù)是取得好的預報技術(shù)方法的前提基礎(chǔ),做好比賽期間的資料下載、計算資源、產(chǎn)品上傳等參賽保障工作尤為重要。為氣象預報競賽提供良好的數(shù)據(jù)環(huán)境,基于省級基礎(chǔ)設(shè)施資源池,設(shè)計了江西省氣象預報競賽產(chǎn)品管理系統(tǒng),助力預報競賽起到重要作用,為推動氣象預報業(yè)務(wù)高質(zhì)量發(fā)展提供強有力的信息化支撐。
1 數(shù)據(jù)流程
本系統(tǒng)通過接口提供各類氣象產(chǎn)品下載服務(wù),在基礎(chǔ)設(shè)施資源池上構(gòu)建了面向省市兩級的統(tǒng)一存儲環(huán)境,提供競賽產(chǎn)品的上傳與下載服務(wù),并且對上傳的競賽產(chǎn)品文件進行文件名格式檢查和信息提取,通過Web方式實現(xiàn)實時監(jiān)視和統(tǒng)計功能。數(shù)據(jù)處理流程如圖1。
2 系統(tǒng)設(shè)計
依托氣象大數(shù)據(jù)云平臺和虛擬資源池的服務(wù),采用“云+端”的模式進行江西省氣象預報競賽支撐系統(tǒng)的設(shè)計,包括服務(wù)層,存儲層,處理層,監(jiān)視層。服務(wù)層提供各類競賽產(chǎn)品的支撐數(shù)據(jù),比如雷達數(shù)據(jù)、衛(wèi)星數(shù)據(jù)等;存儲層主要通過NAS存儲競賽產(chǎn)品,并且把相應(yīng)的基本信息存儲到監(jiān)視數(shù)據(jù)庫中;處理層包含文件名格式檢查、文件信息提取和存儲數(shù)據(jù)庫;監(jiān)視層主要是對競賽產(chǎn)品的基本信息的展示、傳輸情況的顯示、統(tǒng)計分析和報警功能。
3 系統(tǒng)功能
根據(jù)競賽方案的要求,本系統(tǒng)設(shè)計了文件處理、監(jiān)視模塊和參數(shù)配置三部分。文件處理包括文件名格式檢查、文件信息提取及處理和文件規(guī)范化存儲;監(jiān)視模塊主要包括實時監(jiān)視、查詢功能、信息詳情、統(tǒng)計分析和聲音告警;后臺管理包括數(shù)據(jù)庫設(shè)置、產(chǎn)品配置和告警時間配置等。系統(tǒng)功能如圖2所示。
3.1 文件處理
文件名格式檢查模塊是以《國內(nèi)氣象數(shù)據(jù)交換文件命名規(guī)范》為依據(jù),對參賽產(chǎn)品文件名進行解析處理,不符合命名規(guī)則的產(chǎn)品文件屬于無效文件,不納入有效統(tǒng)計范圍。文件信息提取模塊對符合文件名要求的產(chǎn)品進行文件名信息提取,獲取參賽團隊代碼、產(chǎn)品制作完成時間、預報種類、預報時效、最大預報時效和預報間隔以及文本格式,并且存儲到數(shù)據(jù)庫中,參賽產(chǎn)品傳輸?shù)街付夸浵?,按照年月日文件夾分類保存。
3.2 監(jiān)視模塊
監(jiān)視頁面顯示參賽產(chǎn)品文件到報時間根據(jù)考核的時效是否及時,并且標注顏色進行提示,紅色表示未收到產(chǎn)品文件,藍色表示到報時間超過考核的時效范圍,綠色表示到報時間在考核時效范圍內(nèi),及時有效。查詢功能提供時間查詢,包括當前時次,前一時次、后一時次、某一時次、前一天、后一天、當天和某一天的查詢方式。信息詳情顯示參賽產(chǎn)品的詳細信息,主要包括資料類別、資料名稱、文件名、發(fā)送時間、起報時間和及時標志。如果參賽產(chǎn)品的到報時間超過考核的時效范圍,則通過改變數(shù)據(jù)網(wǎng)格組件的行樣式,來突出顯示該信息。統(tǒng)計分析主要是根據(jù)競賽產(chǎn)品文件到報時間與考核的時效進行對比,統(tǒng)計出到報及時率,如果低于競賽設(shè)置的最低值,則取消競賽資格。聲音告警模塊提供高效實時的Web告警,當有競賽產(chǎn)品未及時上傳或未上傳時,監(jiān)視系統(tǒng)則發(fā)出異常聲音告警。
3.3 系統(tǒng)數(shù)據(jù)庫建設(shè)
本系統(tǒng)采用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)MySQL數(shù)據(jù)庫,建立數(shù)據(jù)庫連接,客戶端與數(shù)據(jù)庫連接字符集設(shè)置為UTF8,創(chuàng)建連接的游標的語句為conn= pymysql.connect(host =IP,port = int(Port),user =用戶名,passwd =密碼,db =數(shù)據(jù)庫,charset= 'utf8'),使用語句cursor.executemany(sql, args)數(shù)據(jù)批量執(zhí)行插入。
4 系統(tǒng)實現(xiàn)
4.1 技術(shù)實現(xiàn)
文件信息入庫模塊采用Python語言,監(jiān)控參賽產(chǎn)品文件的變動,如新建、修改和移動,并且記錄到數(shù)據(jù)庫中。
采用Web前端UI框架Bootstrap、Python和Flask進行web開發(fā),Bootstrap是由Twitter推出的一個用于前端開發(fā)的開源工具包,給予HTML、CSS、JavaScriot,提供簡潔、直觀、強悍的前端開發(fā)框架,是目前最受歡迎的前端框架。Flask是一個基于Python開發(fā),依賴jinja2模板和Werkzeug WSGI服務(wù)的一個微型框架。通過python服務(wù)端Flask結(jié)合Bootstrap框架,操作mysql數(shù)據(jù)庫實現(xiàn)競賽產(chǎn)品監(jiān)控與告警。
前臺采用JavaScript語言從告警信息表中讀取到報警代碼,發(fā)出警報提示音,提醒值班人員報文未及時上傳,值班人員點擊圖標可以關(guān)閉警報提示音。
var audio = document.getElementById('sound');
audio.pause();
musicflag=2
$.ajax({
url: "alarm?musicflag=1",
type: "get",
dataType: "json",