羅亞楠,李 剛,聶 祥,吳 姍,吳蔚然
(1.貴州省七星關區氣象局,貴州 七星關 551799;2.貴州省氣象臺,貴州 貴陽 550002;3.貴州省畢節市氣象局,貴州 畢節 551700)
畢節市位于貴州省西北部,地處云貴高原東麓烏蒙山腹地,地形復雜,海拔差異顯著,地方性氣候特征明顯,暴雨、冰雹、凝凍等多種災害性天氣頻繁出現,且局地性較強,給氣象預報預測及服務工作帶來較大挑戰,特別在云貴準靜止鋒影響期間,使得這一地區天氣更加復雜多變。由于畢節市地形的特殊性和高海拔等因素,除暴雨、冰雹等災害性天氣影響外,大霧和大風也較為頻發和典型,且時空分布極度不均勻,對當地農業設施、林業及交通等均存在著不同程度的破壞與影響。大風天氣多發于赫章和威寧的春秋季節,夏季常常伴隨著強對流天氣發生,對基礎設施、農業設施、林業等影響巨大,給當地帶來巨大損失[1]。大霧常年均有發生,尤以大方、威寧和金沙等縣較為突出,具有顯著的局地性特點。特別是高速公路大霧,嚴重影響交通安全[2],給國民經濟和人民生命財產帶來重大損失。因此,做好當地大風、大霧的監測預警服務工作,有助于政府決策與調度,最大限度減小因氣象因素造成的經濟損失,研發一套適合本地的大風大霧監測預警系統[3]尤為重要。
目前,畢節市大霧和大風的監測、預警及服務工作,主要依靠人工每天關注短臨一體化等平臺的觀測數據,根據數據變化進一步主觀判斷是否進行預警服務,存在較大的滯后性。此外,因預報服務工作中業務人員需要關注的數據種類較多,工作量大且人工不能完全24 h無間隙地對數據進行實時監視,因此,靠人工監測來開展大霧與大風預警工作不但難度大且極易發生錯漏與滯后,易錯過最佳決策調度時段。雖然現階段應用的一體化平臺兼有自動檢測大霧與大風的功能,但目前僅限于國家氣象觀測站,針對本地常規站點實時監測預警功能并未納入其中,而當地破壞力較大的風及能見度較低的大霧又常常發生于鄉鎮,因此其監測預警服務難以滿足當前的業務需求;另外,當前一體化業務平臺主要停留在文字提醒,尚不足以起到及時警示的作用。
本系統的建設不僅包括國家氣象觀測站,還包括鄉鎮常規站數據的實時監測與跟蹤研判,更能夠適應當地服務需求;在預警形式上,采取聲音警報與文字彈窗分級組合共同完成,更好地適應當前實際需求[4]。系統的建設完成,將大量減小人工實時對數據的監視工作,可以幫助業務人員提前判斷是否發布相應的預警信號并開展相關服務,從而提升預警信號發布的及時性和準確率,改善服務效果。本系統旨在從天擎系統實時調取數據并加以監測,然后對其進行統計、分析和顯示,還可以通過監測數據建立預測模型,對未來可能出現大風或大霧天氣進行演變趨勢分析,便于業務人員及時開展預警服務工作。
基于Windows環境,采用Python3.7語言,Pycharm2019專業版IDE,通過經典的B/S架構進行搭建,Web端本次采用Python + flask框架設計,此架構易用性強,免安裝,部署在畢節地區本地的服務器上,業務人員在局域網中可由瀏覽器登陸使用,后臺程序在服務器中運行,也可實時查看運行情況,保障功能通暢。此外,開發過程中還合理應用Python接口獲取、SQLite數據庫管理、ECharts數據可視化等技術。
系統數據主要來源于天擎系統。氣象大數據云平臺(天擎系統)是在中國氣象局預報司的組織下,由省氣象信息中心牽頭開發的“數算一體”的氣象大數據云平臺,于2020年12月15日上線正式開始運行,具備海量數據存儲、全業務貫通、數據應用高效的能力,足夠開放,可直接支撐天氣、氣候、探測、公服、人影等各類氣象應用的云化融入,初步形成“云+端”的應用生態,是目前氣象數據的集中共享平臺,相較于之前使用的CIMISS環境更加穩定,開放,功能更加完善[5]。
系統的建設與應用主要致力于標準化提取數據,實時顯示關鍵指標變化趨勢,并根據趨勢和臨界值判斷與警示,提醒業務人員是否需要發布預警。天擎數據讀取中,服務節點使用NMIC_MUSIC_CMADAAS,序列化格式為JSON,數據名稱為SURF_WEA_CHN_MUL_MIN(中國地面分鐘全要素資料),服務接口為:getSurfEleInRegionByTime(按時間、地區檢索地面數據要素)。總體結構圖見圖1。分為前臺和后臺2個部分,其中后臺部分包含了取數據,數據庫管理,計算和處理數據以及報警功能4個模塊;前臺主要為顯示功能模塊。

圖1 核心功能結構
系統功能模塊主要有:觀測數據實時顯示模塊、數據處理模塊、監測預警模塊、業務人員信息管理模塊等。在觀測數據實時顯示模塊中,使用百度地圖API實時根據經緯度顯示站點位置,后續可選擇加入其他要素數據顯示;觀測數據實時顯示模塊,使用ECharts實時以折線圖形式顯示在網頁上,利用ajax技術逐分鐘局部刷新;業務人員信息管理包括管理業務人員登錄信息和預警提醒記錄2部分;監測預警模塊在核心功能計算后依據預警標準觸發提醒功能[6],數據處理模塊根據畢節市預警業務實際需要,對直接讀出的數據進行本地化處理,針對性調取核心要素,滿足功能的前體下提升系統性能。
大風預警規則是:平均風速6級以上,或者陣風7級以上。在系統數據中表現為:即平均風速≥10.8 m·s-1,或瞬時風速≥13.9 m·s-1,其中瞬時風速是觀測值極大風速。
大霧預警規則是能見度≤500 m[7], 在系統數據中表現為 1 min平均能見度≤500 m。當實時觀測數據或者系統預測數據達到以上標準時即分級觸發報警程序,提醒業務人員考慮發布大風、大霧預警信息[8]。
當前業務應用系統一體化平臺是對觀測數據全要素全域數據調取,對實際使用并不友好,一方面會出現信息過多,使用者上手難度大,操作過程復雜,降低處理速度,另一方面海量數據,對系統運行硬件要求提高,維護成本提升。因此,本系統數據從天擎系統接口調取觀測數據后,按要素、市域、區縣進行拆分,進行結構化重組后存儲進數據庫,大幅度減小數據存儲量及實時流量。后續調取時使用分級策略,協助用戶更方便快捷獲取想要的數據及決策建議,對市級,縣區級的數據處理區分單獨處理,最大限度提升使用感和系統運行效率。
在使用端,系統根據不同用戶的需求提供不同的服務。如業務人員以預警目的查看信息時,顯示結果為簡潔易讀的折線圖方式;依據不同查詢條件查詢數據時,顯示為表格形式;需統計數據時提供統計分析圖表,顯示結果可選餅圖、柱狀圖、堆疊圖等實用類型[9]。
為及時有效地進行工作服務,除數據的實時監測顯示外,還對數據進行存儲與管理。數據包含了國家氣象觀測站和常規站的分鐘級數據,數據量較大,為更有效地進行數據應用,進行了SQLite數據庫設計。現行一體化系統無本地服務器,使用時常出現卡頓,處理速度慢等狀況,為提升系統運行性能,進行數據的本地存儲與處理。
系統數據表格設計:業務人員信息表、大霧觀測逐分鐘實時數據表、大風觀測逐分鐘數據表、大霧大風逐小時觀測數據表、大霧大風逐日最值數據表、預警提醒記錄表。其中大霧觀測逐分鐘實時數據表和大風觀測逐分鐘數據表信息每日自動清理。
目前本地化使用的系統多為個人設計實施,對數據的定義、采用的開發語言、設計的數據存儲結構、使用的架構等多依據個人習慣采用,并未形成統一規范的形式,對多系統融合和后續擴展開發造成較大麻煩。而且同一個實例采用不同軟件會有不同結果,對服務工作造成不便。本次系統的設計嚴格采用國家及省局業務規范與指標,對數據進行規范性編譯與處理,形成統一規范的數據出口,規范了業務服務工作。
針對本系統中的大霧大風監測預警,一方面監測實時數據,達到標準報警,提醒發布;另一方面通過前期實時數據進行趨勢擬合,對未來數據進行預判,根據結果報警。在數據的趨勢擬合預判中,主要根據30組數值利用二次三項式擬合找出回歸方程來完成,如出現缺省則向前取數補充,并預判后續5 min內的數值,根據預判做出擬合圖效果,如達到標準則觸發警報[10-13]。
監測預警模塊是本系統的核心功能之一,需根據不同緊急情況采取不同方式警報,具體如表1所示:

表1 警報模式表
監測預警模塊為了保證實時效果好,設定每分鐘執行1次報警檢測程序,確保新的分鐘數據進入數據庫之后第一時間進行預警監測。
系統數據展示模塊依據實際用戶需求做分類處理,地圖部分適應地市和區縣兩級需求,根據用戶權限默認首頁顯示地圖區域大小,各級用戶均可根據需要選擇顯示的區域級別。數據顯示,默認顯示大霧,大風逐分鐘實時數據依據時間變化折線圖,可根據需要選擇時間、空間、站點、要素及圖標類型等,按需求顯示。例如:可顯示1個站點過去1 h逐分鐘的能見度變化情況,可顯示本行政區域所有站點此刻的2 min平均風速值等等,圖2為畢節地區過去10 min內所有國家氣象觀測站的2 min平均風速的變化折線圖,圖3為畢節本級顯示區域內所有國家氣象觀測站點的效果圖,已做到最大程度的定制化顯示。

圖2 大風預警數據展示界面

圖3 畢節地區國家站分布效果圖
測試的具體案例數據參照大霧和大風測試數據表(表2),測試過程中采用手工傳入數據庫,系統自動生成圖片,并自動根據規則觸發報警行為。表中大霧、大風測試數據各5組,其中3組是歷史實際數據,2組是人工測試數據。

表2 大方站大霧測試數據表
大霧數據測試:實例1傳入系統后,引發第3級警報,成功響起語音報警,點擊關閉彈窗,后續無其他報警觸發;實例2傳入系統中,成功觸發語音報警,不做處理,2 min后觸發彈窗+語音報警;實例3傳入系統前,輸入前置程序,引發預測5 min后出現大霧趨勢,1.2 s后成功觸發彈窗報警,點擊關閉彈窗,后續無其他報警觸發;實例4傳入系統中,輸入前置程序,引發預測5 min后出現大霧趨勢,1.4 s后成功觸發彈窗報警,不做處理,3 min后觸發警報聲音+語音;實例5作為儲備實例,分別按前4中情形重新傳入,得到結果均符合預設。
大風數據測試:實例1傳入系統后,引發第3級警報,成功響起語音報警,點擊關閉彈窗,后續無其他報警觸發;實例2傳入系統中,成功觸發語音報警,不做處理,2 min后觸發彈窗+語音報警;實例3傳入系統前,輸入前置程序,引發預測5 min后出現大風趨勢,1.2 s后成功觸發彈窗報警,點擊關閉彈窗,后續無其他報警觸發;實例4傳入系統中,輸入前置程序,引發預測5 min后出現大風趨勢,1.4 s后成功觸發彈窗報警,不做處理,3 min后觸發警報聲音+語音;實例5作為儲備實例,分別按前4種情形重新傳入,得到結果均符合預設。

表3 畢節市大風測試數據表(單位:m·s-1)
在七星關區氣象局部署程序測試,經過2021年6月的試運行,畢節市七星關區發生大風成功預測2次大風預警,6月未發生大霧情況。其中,6月3日的大風預警為2 min平均風速在10時10分率先達到預警值,系統10時10分準時正確發出語音報警,經預報員研判10時14分發出大風預警信號;6月16日20時51分出現2 min平均風速達到預警值,20時51分彈出語音報警后3 min內未處理,20時54分系統正確觸發了語音報警和警報聲音報警,預報員經綜合考慮21時發出預警信息。
在充分吸取以往服務平臺優勢基礎上,結合現行業務運行流程規范,從當前業務需要出發,對畢節市大風、大霧實時監測預警業務系統中數據環境、系統架構設計、核心功能模型及關鍵技術進行了詳細論述。目前該系統已投放業務試運行,各方面表現出較好的業務應用價值。
①當前業務系統開發主要立足于省級氣象局,本地化針對性不夠,不能完全滿足本地市縣級預報使用需求,本系統的設計與實施基于本地預報員使用習慣,更能滿足業務需求。
②針對本地實際需求集合關鍵要素數據分級存儲并處理,提升系統運行效率,方便業務人員及時查詢與處理,提升工作準確性和效率。
③大霧大風監測預警系統建設,結合預報員對大霧大風預警的經驗,極大提升了對大霧大風天氣預警的時效性。
綜上所述,畢節大霧大風監測預警系統開發對預警信息化工作的本地化做出探索,更有效地提升服務和效率,為未來信息化建設添磚加瓦。