張偉強,招偉文,伍淑瑜
(1.廣東省佛山市順德區氣象局,廣東 佛山 528300;2.廣東省佛山市順德區突發事件預警信息發布中心,廣東 佛山 528300)
佛山市地處亞熱帶,下轄5個區,高溫、暴雨、強對流天氣、灰霾等是影響佛山的主要災害性天氣[1]。為了提供氣象防災的精細化水平,2015年起佛山氣象系統實行分鎮街發布氣象預警,即預警信號由原來以區為單位發布,細化至以鎮(街道)為單位發布。對于天氣預報員來說,由5個區擴展為32個鎮(街道) ,預警發布的難度大大提高。為便于預報員能及時、迅速地評估氣象要素分布,盡快判斷是否需要發布氣象預警信號,迫切需要將佛山市境內190多個自動氣象站資料加工成可視的、直觀的、美化的圖形信息。
Surfer是一款非常流行的二、三維數據處理和顯示軟件,具有使用方便、繪圖美觀的特點,近年來被廣泛應用于氣象業務[2-6],其提供的.net編程接口,可以運用C#、VB等多種編程語言實現自動等值線繪圖。由于Surfer繪圖步驟繁瑣,出圖效率較低,鄧霞君等人認為其難以滿足批量繪圖需求[2]。佛山市氣象要素等值線動態顯示系統通過優化架構,減少批量處理過程中的重復運算,提高自動化批量繪制等值線的效率,實現動態顯示氣象要素的實時分布。
系統基于計算機網絡和Surfer軟件功能,使用C#編程語言、Html + JavaScript技術,結合預報預警服務工作情況,主要實現以下功能:
①固定繪圖區域。等值線圖一般以行政區域為繪圖范圍,摒棄周邊的信息,即Surfer繪圖中的白化過程。為了滿足市、區兩級氣象局的需要,系統可實現同時繪制佛山市和五區的氣象要素等值線圖。
②繪圖要素具體。每個行政區需要繪制實時的氣溫等值線圖,以及不同時次的雨量等值線圖,方便預報員了解各時次雨量、雨強及雨量分布情況。
③高效率繪圖。基于以上兩點,系統最少需要批量繪制30張圖,當遇到自動站報文延遲的情況,需要重新繪圖,則繪圖量大,同時,天氣預警業務對于出圖效率要求高。
系統主要由數據處理、繪圖、顯示等3個獨立運行的子程序組成,經過3個子程序先后進行處理后,最終實現批量快速出圖。具體介紹如下:
①數據處理程序。自動讀取區域自動站數據,生成Surfer用于格點化的xyz數值文本和用于標注的xyn文本,并在數據庫記錄關聯信息,包括該文本表示的時間、要素類型、區域等。
②繪圖程序。定時調用Surfer軟件,利用已生成的文本繪制等值線,最終輸出到Web服務器。
③顯示程序。建立Web服務器,通過Html + JavaScript技術,將等值線圖以動態形式進行顯示。
Surfer繪制等值線圖所需要文件為xyz文本、xyn文本。其中xyz文本包括自動站的經度、緯度和要素值三列數據,由數據處理程序動態生成;xyn文本為需要在圖上標注的站點經緯度和數值(系統選取各區最大雨量在圖上標注),也需要由數據處理程序動態生成;Surfer文件、色標文件和邊界文件是必備固定文件。
為了避免數據處理和繪圖程序同時讀寫文本而發生沖突,文本的相關信息保存在數據庫中,以提示繪圖程序是否觸發繪圖。

表1 Surfer繪圖所需文件Tab.1 Required files for Surfer drawing
4.1.1 通過IDEA讀取自動數據并生成文本 由廣東省氣象探測數據中心提供的歷史一體化數據訪問平臺(Integrated Database for Easy Acess,IDEA)高度整合了海量氣象數據,通過3種標準的數據訪問接口向省、市、縣級氣象部門提供氣象類數據支撐[7-9]。
數據處理程序通過http的方式定時訪問IDEA平臺,獲取最新的XML格式的自動站數據。程序讀取繪圖需要的氣溫、雨量等數據后,自動生成xyz文本,同時讀取氣溫、雨量要素的極值,自動生成xyn文本,作為圖上標注數值所需。
4.1.2 對自動站數據延遲的處理 由于通訊或其它各種原因,會出現個別自動站數據延遲的情況。為了兼顧效率和準確性,數據處理程序取到足夠自動站數據時即進行繪圖,其后若有延遲的自動站數據補充,再重新生成xyz文件,并標示需要重新繪圖。
4.1.3 在數據庫中記錄文本的相關信息 生成xyz文本后,繪圖程序還需要xyz文本數據所屬的時間、要素類型以選擇色標、行政區域,以及包含自動站點個數,對應的xyn文本等信息。這需要建立數據表讓數據處理程序和繪圖程序實現記錄與交換信息,將相關信息存入到數據庫中。數據表的結構如表2所示:
為了便于監視數據的生成情況,數據處理程序包含監控界面,如圖1所示:

表2 存儲繪圖信息的數據表Tab.2 Database table for drawing information

圖1 數據處理程序監控界面Fig.1 Monitoring interface of Data processing program
4.2.1 C#調用Surfer繪制等值線圖 具備表1中的邊界文件、Surfer文件和色標文件后,即可用C#語言調用Surfer軟件,利用數據處理程序生成的文本,繪制等值線圖。程序處理主要分為4個步驟:
①讀取xyz文本并使用GridData函數進行格點化,生成*.grd文件。
②使用GridBlank函數,利用邊界文件對*.grd文件進行白化。
③加載surfer文件和已白化的*.grd文件。
④使用Export2函數設置參數和輸出圖片。
流程如圖2所示:

圖2 C#調用Surfer繪圖的流程Fig.2 Surfer drawing process with C#
4.2.2 優化繪制區級等值線的步驟 在4.2.1的繪制等值線的流程中,將離散點插值生成格點化*.grd文件是耗時較長的步驟。事實上,各區的數值格點已包含在全市的*.grd文件中,因此只要對全市的*.grd文件再次白化即可生成各區的*.grd文件,提高繪圖效率。
使用各區的*.bln文件對全市的*.grd文件進行白化時,除了使用GridBlank函數,還需要用SetLimits函數設定*.grd的范圍,程序代碼如下:
mapFrame.SetLimits(xMin, xMax, yMin, yMax);
上述范圍值(xMin, xMax, yMin, yMax)根據各區的*.srf文件獲得。
系統界面簡潔,能及時、直觀地反映氣象要素分布特征,同時滿足市局和各區局預警發布、災情評估、過程總結等工作需要。用戶體驗良好,界面左側工具欄提供不同時次的要素與行政區域選項;界面下方設置氣象要素動態播放速度條,可調整播放速度,亦可定格在各時次,自動刷新最新時次,便于預報員對比監視實況,極大地提高了工作效率,特別在汛期具有良好的使用價值。如圖3所示。

圖3 佛山市氣象要素分布圖:(a)佛山市24 h雨量;(b)佛山市5 min雨量Fig.3 User interface:(a)24 h precipitation of Foshan City;(b)5min precipitation of Foshan City
系統結合IDEA平臺提供的數據,利用C#語言和Surfer軟件進行開發,生成最新的氣象要素等值線,高效地批量生成等值線圖,直觀地表示氣象要素的地理分布和發展趨勢,對于預警信號的發布起到很好的參考作用。采用中央處理器為i7-6700的電腦對目前佛山190多個自動站進行處理,生成每張圖耗時不足1 s,足以滿足預警業務需求。通過研究Surfer軟件的白化規則,簡化了繪制各區等值線圖的流程,進一步提高效率。系統架構在一定程度上具有擴展性,例如Surfer在風場表述方面有所欠缺[10],但可以使用C#語言,利用數據處理程序獲得的數據完成風羽圖的繪制,后續還可以增加變壓等各類氣象要素的分布圖。
參考文獻
[1] 羅云,炎利軍,朱建軍.1981—2010 年佛山地區氣溫、降水和災害性天氣的特征分析[J].廣東氣象,2014,36(2):6-12.
[2] 鄧霞君,等:C#+Surfer11實現浙江省市縣各級區域氣象要素繪圖[J].氣象水文海洋儀器,2014.
[3] 曾志雄,陳慧嫻.如何使用Surfer 8. 0畫等值線圖[J].廣東氣象,2006,28(3):64-65.
[4] 熊文兵.用Sufer7.0繪制氣象等值線圖[J].廣西氣象, 2003,24(3):44-46.
[5] 陳歡歡,李星,丁文秀.Sufer8.0等值線繪制中的十二種插值方法[J].工程地球物理學報,2007,4(1):52-27.
[6] 王偉,袁錫沛,胡麗華等. 江門市自動站氣象要素圖形顯示系統[J].廣東氣象,2010,10(5):42-45.
[7] 廣東省氣象信息中心課題組.《廣東省氣象局通用接口平臺》使用培訓手冊[Z].2014.
[8] 廣東省氣象信息中心課題組.《廣東省氣象局通用數據訪問接口》庫表結構[Z].V2.06.
[9] 王剛,孫周軍,吳映,等.基于IDEA 數據平臺的海珠城市生態氣象綜合系統建設[J].廣東氣象,2016,38(2):77 -80.
[10]劉琴,楊海林,薛傳東,等.基于Google Earth數據的Surfer三維地形建模[J].河南科學,2013,31(4):489-493.