韋凱華, 張曙, 趙碧云
(1.廣東省氣象臺, 廣東 廣州 510080;2.韶關市氣象局, 廣東 韶關 512028;3.荊門市氣象局, 湖北 荊門 448000)
長期以來,基層氣象預報技術人員需兼顧氣象短期預報和短時強對流天氣跟蹤監測工作??h級預報預警人員更需兼任其他很多非氣象任務,對其而言,為實現強對流天氣的自動預報預警,提高氣象預警服務的能力,亟需一套行之有效的輔助軟件。
傳統的單偏振雷達業務軟件(簡稱PUP,下同)中自帶一些強對流天氣的輔助報警功能,但由于設置復雜、誤報率過高未能大規模推廣使用。而在雙偏振雷達中,雖然數據質量控制得到了一定程度的提高,但強對流天氣的預警指標依然較少,目前在PUP的73號產品(用戶報警信息,簡稱UAM)中僅能設置3個單偏振或者雙偏振特征量[1],且特征量之間均只能采用“與”運算,難以較好地區分強對流類型。雙偏振雷達在廣東省全面布設后,得到了大量可參考的雙偏振雷達產品,在此基礎上利用一定數量的研究個例[2-4],可分析歸納出適合華南地域特點的雙偏振特征量。
基于上述產品,結合以往的單偏振雷達得到的有效特征量,例如徑向速度、垂直累積液態含水量(簡稱VIL,下同)等指標,本文設計了強對流天氣的分類預警算法,基于.Net框架編寫了交互軟件,在滿足多要素判斷后自動發出預警提示,將符合報警閾值的風暴單體關鍵信息與地理區域進行匹配,對所關注區域進行精準靶向報警,由此降低預警誤警率,避免臨近邊界的強對流單體的漏報。
本文設計的預警軟件的核心是對流單體各種特征量的搜索、排序等分析。通過以上方式合理提取和設置風暴屬性表的內容,獲取實時的風暴單體關鍵信息并根據不同的閾值組合判據診斷強對流類型。而特征量的獲取首先是要確認強對流風暴的中心位置,根據回波強度和面積預設閾值,逐徑向、逐庫讀取分析基數據后,識別并標注出強中心所在的經緯度(默認強中心的閾值為:強度達到35 dBZ,面積達到3 km2)。在確認其位置后,通過提取特征值得出風暴屬性,如表1所示。
雷達體積掃描結束后,對基數據進行解碼和判斷,輸出一個風暴屬性值的文件(默認路徑為軟件安裝的log目錄,文件名為DPS*.log)。以ASCII碼保存,每一行為一個風暴的屬性,用空格依次隔開多個屬性,每個文件包括的風暴可能為零個或多個,各列字符串具體的屬性參數值含義按順序排列。

表1 風暴屬性參數列表
本文設計的軟件包含架構圖中的數據處理層、算法識別層以及報警產品生成與傳播層中產品生成模塊,如圖1所示。

圖1 風暴預警軟件模塊架構圖
軟件基于.Net框架,采用C#語言進行編程處理[5-6],對輸出的風暴屬性信息文本文件進行邏輯判斷,實現對三大類強天氣(短時強降水、雷雨大風、冰雹)的分類報警。這一階段主要分為運行實時監控可視化界面程序與邏輯算法計算程序運行[7-8],其中運行實時監控可視化界面,如圖2所示。
界面中點擊窗口右上方“配置”“探空站點”按鈕可以分別彈出配置文件和擬讀取計算的探空站點配置文件進行修改。左上角顯示實時刷新的本機時間,指示方燈“紅/綠”交替閃爍表明該程序處于正常運行中,并能實時刷新獲取最新數據,否則說明該程序已掛死,需要關閉后重新啟動運行。

圖2 風暴預警軟件運行實時監控可視化界面
界面中部顯示當前獲取到的最新時次探空資料情況,并按列表顯示配置文件中選取的探空站點信息,包括根據探空資料計算出的0 ℃層、-10 ℃層、-20 ℃層高度(這些特定溫度層次供程序判斷冰雹類型強天氣時調用使用,也便于臺站人員快速粗略了解是否具有冰雹天氣產生條件的溫度層結)。界面下方顯示的是生成的風暴信息文件(DPS*.log)更新的最新時間,可實時刷新顯示監控是否有新文件生成,相關的關鍵代碼如下。
1. public partial class Form1: Form
2. { ……
3. public Form1() { InitializeComponent(); }
4. private void Form1_Load(object sender, EventArgs e)
5. { int closed = 0;
6. foreach (System.Diagnostics.Process thisProc in System.Diagnostics.Process.GetProcesses())
7. { string tempName = thisProc.ToString(); //獲取form名稱
8. ……
9. if (tempName == "fbyj_form") { closed++; }
10. if (closed >= 2) { Environment.Exit(0); } //若打開1個以上窗口,關閉多余的,保證只有1個程序在運行
11. }
12. fb();
13. }
14. private void fb()
15. { try { FileInfo[] files = new DirectoryInfo(path).GetFiles("DPS*.log"); //獲取風暴屬性文件.log的列表
16. List〈FileInfo〉 list = new List〈FileInfo〉(files);
17. if (list.Count > 0) {
18. list.Sort(new Comparison〈FileInfo〉(delegate(FileInfoa,FileInfo b) {return b.Name.CompareTo(a.Name); }));//判斷并返回最新風暴屬性文件的文件名
19. ……} //最新風暴屬性文件名轉換為時間并以文本在窗口顯示
20. }
21. catch {……}
22. }
23. }
風暴預警軟件系統程序數據流程及資料文件夾結構配置,如圖3所示。

圖3 程序及資料文件夾結構
其中“fbyj.exe”為風暴特征報警算法的主程序,提供風暴信息文件的處理功能;“fbyj_form.exe”為系統運行實時監控可視化界面。當監控程序檢測到指定目錄下有新的風暴屬性文件生成時,調用“fbyj.exe”處理?!癟logP”文件夾下為存放的MICAPS格式的TlogP文件。每處理完一個DPS*.log文件(風暴屬性文件)就會在back文件夾生成一份它的拷貝,用以表示該log文件已處理過。風暴屬性信息處理結果(即分類強對流報警產品)輸出在out目錄,同時另外輸出一路給短信報警,由短信模塊調用;計算的探空特征層信息輸出在tout目錄?!熬彌_”文件夾內為不同距離范圍的緩沖區圖層(.bln文件),“config.xml”為配置文件,其部分詳細參數及功能修改見2.5節。
將高精度廣東省縣級行政區劃面的地理信息文件導入ARCGIS中,利用分析工具中的鄰域分析功能,并設定所需的線性單位距離,分縣對行政區邊界向外建立不同范圍的緩沖區。本系統需求設置的緩沖區分別為本行政區域外擴10 km、20 km、30 km,業務人員可根據實際情況在預警系統配置文件中修改對應距離范圍,實現配置不同范圍的緩沖區供報警需求使用,經過測試,目前默認為10 km為比較合理的界限。
在程序的“站點信息.ini”文件中配置有與報警區域行政區劃對應的氣象站信息,包括站名、站號、經緯度。一般采用本行政區內國家氣象觀測站的信息或本行政區內氣象局所在地附近的區域自動站作為參考點。生成報警信息文字產品時,其中的方位角、距離均為相對于上述參考點計算的距離,僅供提示參考。
探空資料通過讀取MICAPS中第五類數據(TlogP)數據的規定站點經計算得出,要處理的站點在config.xml配置文件中設置(詳見第2.5節)。目前針對粵北(韶關)地區,探空站數據取4個站點,分別是郴州、贛州、清遠和河源站,韶關基本上處于上述四地的中間,根據各層資料,通過線性內插法計算出0 ℃層、-10 ℃層、-20 ℃層高度。在時間的選取上,考慮到MICAPS格式的探空資料錄取齊整需要在整點探測后約45分鐘(即北京時間約8:45,20:45,下同),一般情況下一天又只有兩次探空資料,故默認在后續處理中,當日09:00~21:00之間的風暴屬性表使用當日08時的探空資料,當日21:00~次日09:00使用當日20時的探空資料。對于有非常規探空時次的加密探空參照上述規定時間規則使用該次探空資料。
通過針對粵北(韶關)地區2016和2017年典型強對流天氣的分析,總結歸納其中雷雨大風、暴雨、冰雹三類主要強對流天氣的雙偏振雷達偏振量的特征,并參考以往的單偏振雷達成熟算法的閾值,與國內外已有相關研究進行比對,作為本軟件分類算法的參考閾值設置,形成針對粵北地區適用的報警算法。
2.4.1 冰雹算法
本軟件主要目的是用來提示市縣預報員注意出現的強回波及種類,在算法上做了一定精簡,部分采用原有算法,并結合本地實際做適當調整。(以下均為軟件默認閾值)
冰雹算法在應用中的改進:2019年2月20日,廣東省多地出現軟雹和小冰雹,但原來設置的報警未能識別出來。通過對當時回波和天氣實況的分析,在地面及低層氣溫較低的情況下回波高度很低,導致回波強度Z、垂直液態降水量VIL和強回波核心高度H等指標偏低。原有指標過于嚴格??紤]到冬末初春期間一般情況下冰雹粒子不大,但也會對農業造成一定損失和社會影響,故又加入了原來曾摒棄的Posh強冰雹概率并達到100%的條件,再在此基礎上根據雙偏振特征量進行消空處理(這個概率值如直接在本地應用會形成虛警),以提高預警的準確率。另考慮到韶關地處丘陵地帶,交叉相關系數CC在近距離會出現污染,故修改了相應指標運算。算法流程,如圖4所示。

圖4 冰雹算法流程圖
2.4.2 短時強降水算法
短時強降水算法主要針對雨強大于20 mm/h的降水。短時強降水主要發生在強回波的對流性降水和中低強度回波的熱帶降水中,在以往的降水預測算法中一般多為對回波強度進行運算,在熱帶降水的監測預警中效果不是很好。在雙偏振雷達中,因為增加了差分反射率ZDR及差分相移率KDP,對于水滴大小及對流單體中的水滴總含量有了較好的監測預警作用。
通過涵蓋了2016年1-7月份不同時段,17天內發生短時強降水的站點(包括國家站和區域自動站)不同降水類型的統計分析,在相應時段,其低仰角的差分相移率KDP均能顯示為明顯不同。算法中加入回波高度ET是為了去除地物回波的影響,低仰角ZDR≥0.75 dB是為了排除小水滴占比過大的低強度降水。短時強降水算法流程圖,如圖5所示。

圖5 短時強降水算法流程圖
2.4.3 雷雨大風算法
考慮到雙偏振產品中對于雷雨大風沒有新的突破,故在算法上依然沿用以前的一些思路加以改進。本軟件算法中不考慮臺風所造成的大風,沒有考慮對流單體前側貼地面層輻合時造成的大風,主要針對強單體移動、變化過程中所造成的一般雷雨大風以及中尺度氣旋引起的大風。雷雨大風算法流程圖,如圖6所示。

圖6 雷雨大風算法流程圖
軟件經過上述算法處理后生成新的分類強對流報警產品,文字信息以DPSyyyymmddhhmmss.txt的文本方式保存,供短信、網頁調度模塊調用內容向指定手機或電腦發送報警信息使用,以冰雹算法為例給出算法識別的部分關鍵代碼如下。
1. public static string storm(string line) //判斷風暴類型
2. {
3. string[] ret = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
4. float topheight = float.Parse(ret[3]); //逐行逐列讀入風暴屬性表變量值
5. ……
6. string classResult = ""; //風暴類型字段
7. XmlDocument doc = new XmlDocument();
8. doc.Load(ss + @"config.xml"); //加載Xml配置文件
9. vil_max = double.Parse(doc.SelectSingleNode("/root/hail/vil_max").InnerText); //讀入配置文件預設閾值
10. ……
11. if (mdbz_min <= mdbz && mdbz_max >= mdbz) //以下為冰雹判定算法
12. x5 = true; //多閾值判定,7個條件
13. ……
14. if (x5 && x6 && x7){ //邏輯判定
15. if (x1 ‖ x2 ‖ x3 ‖ x4) { classResult = classResult + "冰雹"; } //保存判定的對流風暴類型字段,待拼接輸出文本
16. }
17. return classResult;
18. }
“站點信息.ini”配置文件中報警區域的參考站可以修改,但報警區域名稱必須與系統中地理信息文件名稱、緩沖區圖層文件.bln中的多邊形區域名稱相一致,否則系統無法識別。config.xml配置文件中可以設置報警區地圖緩沖距離、雷達產品報警文件(DPS*.log)和探空文件所在目錄,并設置需要顯示和計算特殊探空層次參數的探空站號。.xml文件中部分可設置的關鍵參數如下。
1. 〈!--mapdis 地圖緩沖距離 --〉
2. 〈mapdis〉10〈/mapdis〉
3. 〈!-- logroute 設置DPS*.log文件所在目錄--〉
4. 〈logroute〉M:DPSLog〈/logroute〉
5. 〈!-- troute micaps探空文件所在目錄--〉
6. 〈troute〉N:TlogP〈/troute〉
7. 〈!-- tnum micaps探空站 --〉
8. 〈tnum〉59293,59280,59663,59316〈/tnum〉
2019年4月22日9時50分左右,在韶關市曲江區烏石鎮、翁源縣鐵龍林場先后出現了直徑1-2 cm的冰雹。
為冰雹發生前時刻雷達觀測的偏振量與原有氣象算法識別冰雹的結果。有降雹潛勢的核心區域在白色圈中的CC值較周圍低,如圖7(c)所示,但圈中的原有算法識別結果在近地層并未識別出冰雹,如圖7(b)所示,而是成片雨區中的缺測值,僅使用VIL的產品,如圖7(a)所示,由于雷達回波發展高度較低,VIL值偏小,也未能提前識別報警。但本預警軟件的識別結果在此時已識別有冰雹,并由外部通信模塊向值班預報員發送了提示短信,如圖7(d)所示,值班員研判后分別于9時09分和9時18分向公眾發布了曲江區、翁源縣的冰雹橙色預警信號,較地面觀測到的冰雹實況提前了約30分鐘。預警軟件對這兩個縣的首次提示分別在8時48分和9時30分,較實況分別提前56分和20分,如圖7所示。

(a) VIL冰雹識別產品;

(b) 原算法識別結果;

(c) 雷達觀測的低仰角CC分布;

(d) 預警軟件分類識別結果提示短信
本軟件對冰雹預警效果相對較好的原因主要是在雙偏振特征量中主要考慮低仰角的ZDR及CC,同時加入了實時更新的探空資料的零度層高度作為約束條件,相比原有算法的固定值判別能較準確判斷高空的冰雹胚胎是否在降落到地面后還能成為固態的冰雹。為了避免低仰角的ZDR的一定缺陷特別是山地區域近距離CC可能出現地物污染后的失真,在算法上采用“或”運算來適當提高預警時間提前量,否則如果達到閾值可能冰雹已經開始及地了。
針對于雷雨大風、短時強降水等其它類型的強對流天氣,也進行了業務測試,在一些單點影響較大的局地強對流天氣過程中能夠提前預警,取得了較好的服務效果,如表2所示。
強對流風暴單體的各種特征量及其空間分布是判斷對流的性質和單體生消的基礎,尤其是低仰角中的特征量對判斷落地時的降水性質至關重要。所設計的軟件通過對基數據中對流單體各種特征量的搜索排序和識別等分析,提取和設置風暴屬性表的內容,實時獲取了風暴體的關鍵信息,再設計合理的邏輯分類算法,根據不同風暴屬性之間的閾值組合判據判定強對流類型,能基本辨識出風暴體屬于雷雨大風、冰雹、短時強降水的某一類或者是這三類兼而有之,為分類強對流天氣的預報預警提供了依據。

表2 預警軟件分類強對流天氣預警效果個例
軟件可對不同地理區域設置和識別,使市、縣級預報員只需要關注本行政區域附近的強對流天氣,達到預警閾值后,算法生成新的分類強對流報警產品文本信息,可由軟件外部已有的通信調度方式抓取,通過短信或者網頁的形式通知預報員注意強對流天氣。預報員在收到內部報警信息后需要與實況進行驗證對比,最后確認無誤后對公眾發布預警信息。由此構建了針對華南特別是粵北地區全天候背景下強對流天氣的分類、分區域的報警模式。
通過國內外的文獻和本地的一些實際個例分析統計,探索總結了一些值得借鑒的雙偏振特征量,集成在本軟件的算法中作為分類強對流天氣識別的閾值判據。從應用的個例結果分析來看,能夠實現并滿足分類強對流天氣分區預警的業務需求,特別是在一些原有算法中特征不明顯的小冰雹過程,應用本地閾值加入算法后預警提示的提前量改善較為明顯。后續擬進一步加強對應用的檢驗評估,不斷優化軟件的閾值與算法,具備較成熟的條件后逐步在本省市加以推廣。