張偉強(qiáng),招偉文,伍淑瑜
(1.廣東省佛山市順德區(qū)氣象局,廣東 佛山 528300;2.廣東省佛山市順德區(qū)突發(fā)事件預(yù)警信息發(fā)布中心,廣東 佛山 528300)
佛山市地處亞熱帶,下轄5個區(qū),高溫、暴雨、強(qiáng)對流天氣、灰霾等是影響佛山的主要災(zāi)害性天氣[1]。為了提供氣象防災(zāi)的精細(xì)化水平,2015年起佛山氣象系統(tǒng)實行分鎮(zhèn)街發(fā)布?xì)庀箢A(yù)警,即預(yù)警信號由原來以區(qū)為單位發(fā)布,細(xì)化至以鎮(zhèn)(街道)為單位發(fā)布。對于天氣預(yù)報員來說,由5個區(qū)擴(kuò)展為32個鎮(zhèn)(街道) ,預(yù)警發(fā)布的難度大大提高。為便于預(yù)報員能及時、迅速地評估氣象要素分布,盡快判斷是否需要發(fā)布?xì)庀箢A(yù)警信號,迫切需要將佛山市境內(nèi)190多個自動氣象站資料加工成可視的、直觀的、美化的圖形信息。
Surfer是一款非常流行的二、三維數(shù)據(jù)處理和顯示軟件,具有使用方便、繪圖美觀的特點(diǎn),近年來被廣泛應(yīng)用于氣象業(yè)務(wù)[2-6],其提供的.net編程接口,可以運(yùn)用C#、VB等多種編程語言實現(xiàn)自動等值線繪圖。由于Surfer繪圖步驟繁瑣,出圖效率較低,鄧霞君等人認(rèn)為其難以滿足批量繪圖需求[2]。佛山市氣象要素等值線動態(tài)顯示系統(tǒng)通過優(yōu)化架構(gòu),減少批量處理過程中的重復(fù)運(yùn)算,提高自動化批量繪制等值線的效率,實現(xiàn)動態(tài)顯示氣象要素的實時分布。
系統(tǒng)基于計算機(jī)網(wǎng)絡(luò)和Surfer軟件功能,使用C#編程語言、Html + JavaScript技術(shù),結(jié)合預(yù)報預(yù)警服務(wù)工作情況,主要實現(xiàn)以下功能:
①固定繪圖區(qū)域。等值線圖一般以行政區(qū)域為繪圖范圍,摒棄周邊的信息,即Surfer繪圖中的白化過程。為了滿足市、區(qū)兩級氣象局的需要,系統(tǒng)可實現(xiàn)同時繪制佛山市和五區(qū)的氣象要素等值線圖。
②繪圖要素具體。每個行政區(qū)需要繪制實時的氣溫等值線圖,以及不同時次的雨量等值線圖,方便預(yù)報員了解各時次雨量、雨強(qiáng)及雨量分布情況。
③高效率繪圖?;谝陨蟽牲c(diǎn),系統(tǒng)最少需要批量繪制30張圖,當(dāng)遇到自動站報文延遲的情況,需要重新繪圖,則繪圖量大,同時,天氣預(yù)警業(yè)務(wù)對于出圖效率要求高。
系統(tǒng)主要由數(shù)據(jù)處理、繪圖、顯示等3個獨(dú)立運(yùn)行的子程序組成,經(jīng)過3個子程序先后進(jìn)行處理后,最終實現(xiàn)批量快速出圖。具體介紹如下:
①數(shù)據(jù)處理程序。自動讀取區(qū)域自動站數(shù)據(jù),生成Surfer用于格點(diǎn)化的xyz數(shù)值文本和用于標(biāo)注的xyn文本,并在數(shù)據(jù)庫記錄關(guān)聯(lián)信息,包括該文本表示的時間、要素類型、區(qū)域等。
②繪圖程序。定時調(diào)用Surfer軟件,利用已生成的文本繪制等值線,最終輸出到Web服務(wù)器。
③顯示程序。建立Web服務(wù)器,通過Html + JavaScript技術(shù),將等值線圖以動態(tài)形式進(jìn)行顯示。
Surfer繪制等值線圖所需要文件為xyz文本、xyn文本。其中xyz文本包括自動站的經(jīng)度、緯度和要素值三列數(shù)據(jù),由數(shù)據(jù)處理程序動態(tài)生成;xyn文本為需要在圖上標(biāo)注的站點(diǎn)經(jīng)緯度和數(shù)值(系統(tǒng)選取各區(qū)最大雨量在圖上標(biāo)注),也需要由數(shù)據(jù)處理程序動態(tài)生成;Surfer文件、色標(biāo)文件和邊界文件是必備固定文件。
為了避免數(shù)據(jù)處理和繪圖程序同時讀寫文本而發(fā)生沖突,文本的相關(guān)信息保存在數(shù)據(jù)庫中,以提示繪圖程序是否觸發(fā)繪圖。
表1 Surfer繪圖所需文件Tab.1 Required files for Surfer drawing
4.1.1 通過IDEA讀取自動數(shù)據(jù)并生成文本 由廣東省氣象探測數(shù)據(jù)中心提供的歷史一體化數(shù)據(jù)訪問平臺(Integrated Database for Easy Acess,IDEA)高度整合了海量氣象數(shù)據(jù),通過3種標(biāo)準(zhǔn)的數(shù)據(jù)訪問接口向省、市、縣級氣象部門提供氣象類數(shù)據(jù)支撐[7-9]。
數(shù)據(jù)處理程序通過http的方式定時訪問IDEA平臺,獲取最新的XML格式的自動站數(shù)據(jù)。程序讀取繪圖需要的氣溫、雨量等數(shù)據(jù)后,自動生成xyz文本,同時讀取氣溫、雨量要素的極值,自動生成xyn文本,作為圖上標(biāo)注數(shù)值所需。
4.1.2 對自動站數(shù)據(jù)延遲的處理 由于通訊或其它各種原因,會出現(xiàn)個別自動站數(shù)據(jù)延遲的情況。為了兼顧效率和準(zhǔn)確性,數(shù)據(jù)處理程序取到足夠自動站數(shù)據(jù)時即進(jìn)行繪圖,其后若有延遲的自動站數(shù)據(jù)補(bǔ)充,再重新生成xyz文件,并標(biāo)示需要重新繪圖。
4.1.3 在數(shù)據(jù)庫中記錄文本的相關(guān)信息 生成xyz文本后,繪圖程序還需要xyz文本數(shù)據(jù)所屬的時間、要素類型以選擇色標(biāo)、行政區(qū)域,以及包含自動站點(diǎn)個數(shù),對應(yīng)的xyn文本等信息。這需要建立數(shù)據(jù)表讓數(shù)據(jù)處理程序和繪圖程序?qū)崿F(xiàn)記錄與交換信息,將相關(guān)信息存入到數(shù)據(jù)庫中。數(shù)據(jù)表的結(jié)構(gòu)如表2所示:
為了便于監(jiān)視數(shù)據(jù)的生成情況,數(shù)據(jù)處理程序包含監(jiān)控界面,如圖1所示:
表2 存儲繪圖信息的數(shù)據(jù)表Tab.2 Database table for drawing information
圖1 數(shù)據(jù)處理程序監(jiān)控界面Fig.1 Monitoring interface of Data processing program
4.2.1 C#調(diào)用Surfer繪制等值線圖 具備表1中的邊界文件、Surfer文件和色標(biāo)文件后,即可用C#語言調(diào)用Surfer軟件,利用數(shù)據(jù)處理程序生成的文本,繪制等值線圖。程序處理主要分為4個步驟:
①讀取xyz文本并使用GridData函數(shù)進(jìn)行格點(diǎn)化,生成*.grd文件。
②使用GridBlank函數(shù),利用邊界文件對*.grd文件進(jìn)行白化。
③加載surfer文件和已白化的*.grd文件。
④使用Export2函數(shù)設(shè)置參數(shù)和輸出圖片。
流程如圖2所示:
圖2 C#調(diào)用Surfer繪圖的流程Fig.2 Surfer drawing process with C#
4.2.2 優(yōu)化繪制區(qū)級等值線的步驟 在4.2.1的繪制等值線的流程中,將離散點(diǎn)插值生成格點(diǎn)化*.grd文件是耗時較長的步驟。事實上,各區(qū)的數(shù)值格點(diǎn)已包含在全市的*.grd文件中,因此只要對全市的*.grd文件再次白化即可生成各區(qū)的*.grd文件,提高繪圖效率。
使用各區(qū)的*.bln文件對全市的*.grd文件進(jìn)行白化時,除了使用GridBlank函數(shù),還需要用SetLimits函數(shù)設(shè)定*.grd的范圍,程序代碼如下:
mapFrame.SetLimits(xMin, xMax, yMin, yMax);
上述范圍值(xMin, xMax, yMin, yMax)根據(jù)各區(qū)的*.srf文件獲得。
系統(tǒng)界面簡潔,能及時、直觀地反映氣象要素分布特征,同時滿足市局和各區(qū)局預(yù)警發(fā)布、災(zāi)情評估、過程總結(jié)等工作需要。用戶體驗良好,界面左側(cè)工具欄提供不同時次的要素與行政區(qū)域選項;界面下方設(shè)置氣象要素動態(tài)播放速度條,可調(diào)整播放速度,亦可定格在各時次,自動刷新最新時次,便于預(yù)報員對比監(jiān)視實況,極大地提高了工作效率,特別在汛期具有良好的使用價值。如圖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
系統(tǒng)結(jié)合IDEA平臺提供的數(shù)據(jù),利用C#語言和Surfer軟件進(jìn)行開發(fā),生成最新的氣象要素等值線,高效地批量生成等值線圖,直觀地表示氣象要素的地理分布和發(fā)展趨勢,對于預(yù)警信號的發(fā)布起到很好的參考作用。采用中央處理器為i7-6700的電腦對目前佛山190多個自動站進(jìn)行處理,生成每張圖耗時不足1 s,足以滿足預(yù)警業(yè)務(wù)需求。通過研究Surfer軟件的白化規(guī)則,簡化了繪制各區(qū)等值線圖的流程,進(jìn)一步提高效率。系統(tǒng)架構(gòu)在一定程度上具有擴(kuò)展性,例如Surfer在風(fēng)場表述方面有所欠缺[10],但可以使用C#語言,利用數(shù)據(jù)處理程序獲得的數(shù)據(jù)完成風(fēng)羽圖的繪制,后續(xù)還可以增加變壓等各類氣象要素的分布圖。
參考文獻(xiàn)
[1] 羅云,炎利軍,朱建軍.1981—2010 年佛山地區(qū)氣溫、降水和災(zāi)害性天氣的特征分析[J].廣東氣象,2014,36(2):6-12.
[2] 鄧霞君,等:C#+Surfer11實現(xiàn)浙江省市縣各級區(qū)域氣象要素繪圖[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].工程地球物理學(xué)報,2007,4(1):52-27.
[6] 王偉,袁錫沛,胡麗華等. 江門市自動站氣象要素圖形顯示系統(tǒng)[J].廣東氣象,2010,10(5):42-45.
[7] 廣東省氣象信息中心課題組.《廣東省氣象局通用接口平臺》使用培訓(xùn)手冊[Z].2014.
[8] 廣東省氣象信息中心課題組.《廣東省氣象局通用數(shù)據(jù)訪問接口》庫表結(jié)構(gòu)[Z].V2.06.
[9] 王剛,孫周軍,吳映,等.基于IDEA 數(shù)據(jù)平臺的海珠城市生態(tài)氣象綜合系統(tǒng)建設(shè)[J].廣東氣象,2016,38(2):77 -80.
[10]劉琴,楊海林,薛傳東,等.基于Google Earth數(shù)據(jù)的Surfer三維地形建模[J].河南科學(xué),2013,31(4):489-493.