余國河+吳蘇+李鵬+闕艷紅
摘要:Surfer軟件具有強大的數(shù)據(jù)插值和繪圖功能,可用于氣象研究領(lǐng)域各種氣象要素的數(shù)據(jù)資料處理與分析?;赟urfer軟件提供的Surfer ActiveX Automation技術(shù),通過在.NET環(huán)境中使用C#語言對Automation相關(guān)對象的屬性設(shè)置與方法調(diào)用,完成不同氣象要素等值線圖的自動繪制。利用此原理并結(jié)合實際應(yīng)用,實現(xiàn)了兩套氣象領(lǐng)域業(yè)務(wù)應(yīng)用系統(tǒng),業(yè)務(wù)運行表明系統(tǒng)界面友好、操作簡單、功能完備并且專業(yè)有效,極大地提高了工作效率。
關(guān)鍵詞:Surfer;數(shù)據(jù)插值;氣象繪圖;等值線圖;C#
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)34-8174-03
在氣象研究領(lǐng)域,常常要處理和分析大批量的氣象要素數(shù)據(jù),其中必然涉及各種圖件的繪制工作。隨著現(xiàn)代計算機技術(shù)的發(fā)展與應(yīng)用,各種專業(yè)繪圖軟件迅速面市,并且伴隨業(yè)務(wù)應(yīng)用的不斷深入,繪圖軟件的性能和功能也在不斷地提高和完善。傳統(tǒng)手工繪制圖件的過程不僅速度慢、效率低、而且繪圖質(zhì)量在很大程度上由業(yè)務(wù)人員的技術(shù)水平所決定。通過利用計算機繪制氣象圖件,不僅可以大大減輕工作量,提高工作效率,而且可以對原始數(shù)據(jù)進行預(yù)處理與分析,從而能夠保證圖件繪制的精度與準確性。在眾多的繪圖軟件中,美國Golden Software公司編制的Surfer軟件,以其直觀易學、操作簡單、功能完善、對系統(tǒng)要求低等優(yōu)點得到廣大用戶的青睞,成為應(yīng)用最廣泛的繪圖軟件之一。
Surfer具有強大的數(shù)據(jù)插值功能和繪制圖件能力,包括克里金法、距離倒數(shù)加權(quán)法、多元回歸以及移動平均法等十二種插值方法都有提供,以便用來滿足不同應(yīng)用的插值需求,而且利用Surfer能夠輕松制作基底圖、等值線圖、分類數(shù)據(jù)圖、剖面圖、3D曲面圖等,已成為氣象、地質(zhì)、水文水利、土地管理工作者必備的專業(yè)成圖軟件[1]。Surfer軟件還提供各種GIS軟件文件格式的轉(zhuǎn)換接口以及不同圖形圖像文件格式的輸入輸出接口,極大方便了數(shù)據(jù)的共享與轉(zhuǎn)換,而且提供了Surfer ActiveX Automation技術(shù),有效支持了基于Surfer軟件的二次開發(fā)。論文結(jié)合Surfer軟件強大的數(shù)據(jù)插值與繪圖功能,提出通過C#調(diào)用Surfer自動繪制氣象要素等值線圖的自適應(yīng)方法,針對土壤墑情監(jiān)測和凍土深度監(jiān)測業(yè)務(wù)應(yīng)用領(lǐng)域,以相關(guān)領(lǐng)域氣象整編資料為數(shù)據(jù)源,制作具有氣象數(shù)據(jù)資料瀏覽與分析功能的業(yè)務(wù)應(yīng)用軟件。
1 Surfer軟件
Surfer是在Windows操作環(huán)境下運行的二維和三維圖形繪制軟件,能夠迅速地將離散的數(shù)據(jù)通過插值算法轉(zhuǎn)換為連續(xù)的數(shù)據(jù)曲面,從而繪制等值線圖、3D立體圖、陰影地貌圖、矢量圖等。軟件采用Automation技術(shù)公開其接口,提供了近60種不同種類的ActiveX Automation對象,它們幾乎覆蓋了Surfer的所有功能[2]。在安裝Surfer軟件之后,開發(fā)人員就可以在其他開發(fā)環(huán)境中創(chuàng)建、調(diào)用它所提供的Automation對象,用以實現(xiàn)相應(yīng)的數(shù)據(jù)可視化功能。
1.1 原始數(shù)據(jù)準備
在使用Surfer軟件進行圖形繪制時,首先需要根據(jù)不同的作圖目的,提供滿足一定條件數(shù)據(jù)文件格式的原始數(shù)據(jù)。其中, ASCII碼形式的XYZ數(shù)據(jù)格式是比較基本的格式?;谠紨?shù)據(jù),就可以利用Surfer軟件的網(wǎng)格化功能,將原始數(shù)據(jù)轉(zhuǎn)換為基于網(wǎng)格圖形的必須文件,然后再利用網(wǎng)格化的數(shù)據(jù)使用Surfer軟件的繪圖功能繪制各種圖形,而使用Surfer軟件最常見的應(yīng)用就是從XYZ數(shù)據(jù)文件創(chuàng)建一個基于網(wǎng)格的各類圖形。
1.2 離散數(shù)據(jù)插值
繪制等值線圖時,關(guān)鍵的工作之一便是將離散點資料插值成規(guī)則的網(wǎng)格點資料。氣象觀測資料通常是離散點數(shù)據(jù),通常包含有臺站編號、臺站名稱、臺站位置坐標(通常是經(jīng)緯度)以及屬性項(如降雨量、氣溫、土壤含水量等)等數(shù)據(jù)項,在進行數(shù)據(jù)分析前需要根據(jù)具體情況讀取數(shù)據(jù)并生成離散點文本數(shù)據(jù)格式。Surfer軟件提供了許多數(shù)學插值模型,如反距離加權(quán)插值法、最小曲率法、線性插值三角網(wǎng)法、克里金插值法、局部多項式法等,利用這些數(shù)學模型,可以很方便地進行插值。在實際應(yīng)用中,應(yīng)根據(jù)Surfer軟件中不同插值方法的基本原理,針對各類數(shù)據(jù)不同的特點,以及要進行的各種不同的應(yīng)用分析,科學地選擇正確的插值方法[3],進行參數(shù)設(shè)置生成網(wǎng)格文件,從而最終繪制出正確、有意義的等值線圖。
1.3 繪圖功能
Surfer軟件的主要功能是繪制等值線圖(Contour Map),此外還可以繪制post map, classed post map, vector map, image map, wireframe map,3d surface map 等形式的圖形。在氣象工作中,總是可以得到大量研究對象各方面特性或特征數(shù)據(jù),在對其進行分析時,往往借助于等值線來對其進行一些必要的分析[4]。在將氣象領(lǐng)域離散點資料處理成GRD文件格式以后,利用Surfer軟件的Contour功能便可進行等線圖的繪制。在應(yīng)用中,可能為了更好結(jié)合實際業(yè)務(wù)以及美觀的要求,需要進行一些額外的設(shè)置[5-7],例如等值線顏色填充與否、等值線間隔、數(shù)據(jù)軸修改、散點圖數(shù)據(jù)點和圖形圖層的使用、透明度、色階和標題、網(wǎng)格文件的白化、地理信息的疊加等。
1.4 Surfer ActiveX Automation技術(shù)
Surfer軟件具有獨特的繪圖功能和開放的接口技術(shù),它提供了開放的對象調(diào)用,通過屬性和方法實現(xiàn)對Surfer相關(guān)功能的調(diào)用,實現(xiàn)Surfer應(yīng)用的二次開發(fā)功能。一方面Surfer軟件的Scripter程序能夠適用于任何ActiveX自動化兼容的客戶端,從而很容易使用各種ActiveX客戶端編程語言來定制Surfer功能。另一方面Surfer軟件采用Automation技術(shù)來公開其接口[8],Automation接口是指具有Automation功能的服務(wù)器系統(tǒng)提供的允許其它外部程序訪問其對象的編程接口,即一個應(yīng)用程序通過某個對象去“操縱”另一個應(yīng)用程序的機制。通過Surfer提供的ActiveX Automation編程接口,允許Scripter腳本工具或其他高級編程語言(如VB、C#、C++等)編程調(diào)用Surfer的繪圖功能[9],從而可以靈活采用各種編程語言進一步開發(fā),快速、批量地進行圖形繪制,極大地提高工作效率。endprint
2 C#與Surfer自動化接口
C#是微軟公司發(fā)布的一種運行于.NET Framework框架之上的、面向?qū)ο蟮母呒壋绦蛟O(shè)計語言。C#由C語言和C++派生而來,在繼承了其強大性能的同時,又依靠.NET框架類庫,具有類似Visual Basic的快速開發(fā)能力。當前,C#以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[10,11]。實現(xiàn)氣象專題圖的繪制功能,主要是在.NET平臺下,利用C#語言通過對Surfer Automation接口提供的系列對象的調(diào)用來實現(xiàn)。Surfer Automation對象模型層次結(jié)構(gòu)如圖1所示。
2.1 Surfer Automation對象介紹
Surfer Automation對象模型由一系列的對象構(gòu)成,每個對象又有若干方法和屬性構(gòu)成,通過訪問具體的方法和屬性能夠調(diào)用Surfer對應(yīng)的功能。其中,常用的自動化對象有:Application、Documents、Shapes、MapFrame、ContourMap等。Application對象表示Surfer程序,在所有的Surfer自動化對象中Application對象是最基本的,在調(diào)用Surfer進行繪圖前需要先對其進行實例化。Documents對象是文檔類對象的基類,它派生出的類有PlotDocument、WksDocument等,其中PlotDocument對象對應(yīng)Surfer軟件中的工作場景,而WksDocument對象對應(yīng)的是工作表。Shapes是所有繪圖對象的集合。利用Surfer進行二次開發(fā)時,借助通過對各個對象賦予不同的參數(shù)值和調(diào)用對象具體的方法,就可以實現(xiàn)Surfer的自動化技術(shù)。
2.2 核心代碼實現(xiàn)
按照Surfer軟件中基于網(wǎng)格的圖形類型的繪制流程,.NET環(huán)境中利用C#語言調(diào)用Surfer軟件進行等值線的自動繪制與輸出主要可以分為如下4個步驟:(1) 實例化Application對象并進行相關(guān)設(shè)置,從而啟動Surfer程序;(2) 讀取XYZ數(shù)據(jù)文件,進行數(shù)據(jù)列信息、網(wǎng)格化方法、網(wǎng)格線幾何特征等網(wǎng)格化相關(guān)參數(shù)設(shè)置后生成GRD文件;(3) 讀取GRD文件,進行等值線相關(guān)參數(shù)設(shè)置后生成疊加基底圖的等值線圖;(4) 設(shè)置輸出參數(shù),并導(dǎo)出等值線圖。其中部分關(guān)鍵代碼如下:
3 應(yīng)用
在氣象科研中,通過使用儀器設(shè)備對氣象要素進行監(jiān)測時會產(chǎn)生大量的資料數(shù)據(jù),如果使用傳統(tǒng)手段對這些數(shù)據(jù)進行分析將會面臨工作量大、效率低、易出錯的問題,在繪制不同氣象要素的等值線圖時尤為明顯。因此,在實際應(yīng)用中,利用Surfer強大的數(shù)據(jù)插值與繪圖功能,根據(jù)不同業(yè)務(wù)領(lǐng)域的特點,在.NET環(huán)境中利用C#語言實現(xiàn)了不同氣象要素數(shù)據(jù)的瀏覽與分析功能。
3.1 基于GStar-II觀測儀的土壤墑情瀏覽系統(tǒng)
該軟件用于土壤水分的分析、研究,目前實現(xiàn)了對土壤重量含水率、體積含水量、土壤相對濕度和有效水分貯存量四種土壤水分要素的區(qū)域水分分布圖、多層逐時曲線圖和多站逐時曲線圖三種顯示方式的瀏覽和查詢,軟件的“水分分布圖”功能則是利用上文所述的原理實現(xiàn)的。針對河南省各個縣市安裝的125套土壤水分自動觀測站,自動收集2013年10月22日且土壤深度為10CM的重量含水率觀測數(shù)值并進行平均值計算,利用軟件的“水分分布圖”功能自動分析得出河南省土壤水分(重量含水率)分布圖,具體實現(xiàn)效果如圖2所示。
3.2 基于GStar-IV觀測儀的凍土監(jiān)測瀏覽系統(tǒng)
該軟件用于土壤凍融的分析、研究,目前實現(xiàn)了對土壤重量含水率、體積含水量、土壤相對濕度和有效水分貯存量、地溫、凍土深度和干土層厚度七種土壤水分要素的區(qū)域水分分布圖、多層逐時曲線圖和多站逐時曲線圖三種顯示方式的瀏覽和查詢,其中,凍土深度數(shù)值是結(jié)合當?shù)赝寥拉h(huán)境特征,并根據(jù)各層次土壤溫度與土壤水分含量,利用一定的算法計算得出的。針對全國試點安裝的11套凍土深度與干土層厚度自動觀測儀,自動收集2013年1月22日凍土深度觀測數(shù)值,利用該軟件的“凍土與干土層分布”功能自動分析得出中國凍土分布圖,具體實現(xiàn)效果如圖3所示。
4 結(jié)論
基于Surfer軟件強大的數(shù)據(jù)插值與繪圖功能,能夠?qū)庀筚Y料數(shù)據(jù)進行有效且深入的分析。論文通過對Surfer ActiveX Automation技術(shù)進行深入研究,利用Surfer Application編程接口,在.NET環(huán)境中利用C#語言實現(xiàn)了等值線圖的自動繪制。利用上述原理并結(jié)合實際應(yīng)用,實現(xiàn)了“基于GStar-II觀測儀的土壤墑情瀏覽系統(tǒng)”與“基于GStar-IV觀測儀的凍土監(jiān)測瀏覽系統(tǒng)”兩套業(yè)務(wù)應(yīng)用系統(tǒng),系統(tǒng)界面友好、操作簡單、功能完備且專業(yè)有效,極大地提高了工作效率。隨著今后工作的深入,可以在此基礎(chǔ)上進行更為專業(yè)復(fù)雜的業(yè)務(wù)系統(tǒng)開發(fā)。
參考文獻:
[1] 張宗灝,王詠青,景安華,等.中尺度自動氣象站W(wǎng)eb圖形顯示系統(tǒng)[J].氣象科技,2008,36(3):372-374.
[2] 厲玉昇,申雙和,冶林茂,等.C++與Surfer Automation在氣象繪圖中的應(yīng)用[J].計算機應(yīng)用與軟件,2008,25(4):279-280.
[3] 盧涵宇,王華軍,柳錦寶,等.基于Surfer的地學數(shù)據(jù)快速可視化研究及應(yīng)用[J].廣西大學學報:自然科學版,2011,36(2):279-284.
[4] 張鐵軍,王錫穩(wěn),張鴻,等.Surfer自動控制技術(shù)在氣象資料自動成圖中的應(yīng)用[J].干旱氣象,2007,25(2):90-94.
[5] 陳忠云,陳華,張亞斌,等.應(yīng)用Surfer Automation繪制地質(zhì)等值線圖[J].物探化探計算技術(shù),2009,31(4):409-413.
[6] 楊曉武,黃興友,徐平.加密自動氣象站實時監(jiān)控與查詢顯示系統(tǒng)[J].氣象科技,2008,36(4):506-509.
[7] 李興寶,候方.基于自動氣象站與自動雨量站的氣象服務(wù)、監(jiān)視及自動報警系統(tǒng)[J].氣象科技,2009,37(1):110-113.
[8] 陳正旭,封秀燕,王亞云.多島嶼地圖上繪制氣象要素等值線色塊的自適應(yīng)方法[J].氣象科技,2009,37(3):356-359.
[9] 沈良朵,鄒志利.融合MATLAB和SURFER的三維地形自動可視化處理[J].計算機工程與應(yīng)用,2012,48(3):17-21.
[10] 申啟杰,凌捷.基于C#的插件框架設(shè)計和實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(1):148-150.
[11] 劉四方,尹曉旭,郭亞坤.基于C#的船載測控設(shè)備遠程監(jiān)控系統(tǒng)實現(xiàn)[J].計算機應(yīng)用與軟件,2012(3):298-300.endprint
2 C#與Surfer自動化接口
C#是微軟公司發(fā)布的一種運行于.NET Framework框架之上的、面向?qū)ο蟮母呒壋绦蛟O(shè)計語言。C#由C語言和C++派生而來,在繼承了其強大性能的同時,又依靠.NET框架類庫,具有類似Visual Basic的快速開發(fā)能力。當前,C#以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[10,11]。實現(xiàn)氣象專題圖的繪制功能,主要是在.NET平臺下,利用C#語言通過對Surfer Automation接口提供的系列對象的調(diào)用來實現(xiàn)。Surfer Automation對象模型層次結(jié)構(gòu)如圖1所示。
2.1 Surfer Automation對象介紹
Surfer Automation對象模型由一系列的對象構(gòu)成,每個對象又有若干方法和屬性構(gòu)成,通過訪問具體的方法和屬性能夠調(diào)用Surfer對應(yīng)的功能。其中,常用的自動化對象有:Application、Documents、Shapes、MapFrame、ContourMap等。Application對象表示Surfer程序,在所有的Surfer自動化對象中Application對象是最基本的,在調(diào)用Surfer進行繪圖前需要先對其進行實例化。Documents對象是文檔類對象的基類,它派生出的類有PlotDocument、WksDocument等,其中PlotDocument對象對應(yīng)Surfer軟件中的工作場景,而WksDocument對象對應(yīng)的是工作表。Shapes是所有繪圖對象的集合。利用Surfer進行二次開發(fā)時,借助通過對各個對象賦予不同的參數(shù)值和調(diào)用對象具體的方法,就可以實現(xiàn)Surfer的自動化技術(shù)。
2.2 核心代碼實現(xiàn)
按照Surfer軟件中基于網(wǎng)格的圖形類型的繪制流程,.NET環(huán)境中利用C#語言調(diào)用Surfer軟件進行等值線的自動繪制與輸出主要可以分為如下4個步驟:(1) 實例化Application對象并進行相關(guān)設(shè)置,從而啟動Surfer程序;(2) 讀取XYZ數(shù)據(jù)文件,進行數(shù)據(jù)列信息、網(wǎng)格化方法、網(wǎng)格線幾何特征等網(wǎng)格化相關(guān)參數(shù)設(shè)置后生成GRD文件;(3) 讀取GRD文件,進行等值線相關(guān)參數(shù)設(shè)置后生成疊加基底圖的等值線圖;(4) 設(shè)置輸出參數(shù),并導(dǎo)出等值線圖。其中部分關(guān)鍵代碼如下:
3 應(yīng)用
在氣象科研中,通過使用儀器設(shè)備對氣象要素進行監(jiān)測時會產(chǎn)生大量的資料數(shù)據(jù),如果使用傳統(tǒng)手段對這些數(shù)據(jù)進行分析將會面臨工作量大、效率低、易出錯的問題,在繪制不同氣象要素的等值線圖時尤為明顯。因此,在實際應(yīng)用中,利用Surfer強大的數(shù)據(jù)插值與繪圖功能,根據(jù)不同業(yè)務(wù)領(lǐng)域的特點,在.NET環(huán)境中利用C#語言實現(xiàn)了不同氣象要素數(shù)據(jù)的瀏覽與分析功能。
3.1 基于GStar-II觀測儀的土壤墑情瀏覽系統(tǒng)
該軟件用于土壤水分的分析、研究,目前實現(xiàn)了對土壤重量含水率、體積含水量、土壤相對濕度和有效水分貯存量四種土壤水分要素的區(qū)域水分分布圖、多層逐時曲線圖和多站逐時曲線圖三種顯示方式的瀏覽和查詢,軟件的“水分分布圖”功能則是利用上文所述的原理實現(xiàn)的。針對河南省各個縣市安裝的125套土壤水分自動觀測站,自動收集2013年10月22日且土壤深度為10CM的重量含水率觀測數(shù)值并進行平均值計算,利用軟件的“水分分布圖”功能自動分析得出河南省土壤水分(重量含水率)分布圖,具體實現(xiàn)效果如圖2所示。
3.2 基于GStar-IV觀測儀的凍土監(jiān)測瀏覽系統(tǒng)
該軟件用于土壤凍融的分析、研究,目前實現(xiàn)了對土壤重量含水率、體積含水量、土壤相對濕度和有效水分貯存量、地溫、凍土深度和干土層厚度七種土壤水分要素的區(qū)域水分分布圖、多層逐時曲線圖和多站逐時曲線圖三種顯示方式的瀏覽和查詢,其中,凍土深度數(shù)值是結(jié)合當?shù)赝寥拉h(huán)境特征,并根據(jù)各層次土壤溫度與土壤水分含量,利用一定的算法計算得出的。針對全國試點安裝的11套凍土深度與干土層厚度自動觀測儀,自動收集2013年1月22日凍土深度觀測數(shù)值,利用該軟件的“凍土與干土層分布”功能自動分析得出中國凍土分布圖,具體實現(xiàn)效果如圖3所示。
4 結(jié)論
基于Surfer軟件強大的數(shù)據(jù)插值與繪圖功能,能夠?qū)庀筚Y料數(shù)據(jù)進行有效且深入的分析。論文通過對Surfer ActiveX Automation技術(shù)進行深入研究,利用Surfer Application編程接口,在.NET環(huán)境中利用C#語言實現(xiàn)了等值線圖的自動繪制。利用上述原理并結(jié)合實際應(yīng)用,實現(xiàn)了“基于GStar-II觀測儀的土壤墑情瀏覽系統(tǒng)”與“基于GStar-IV觀測儀的凍土監(jiān)測瀏覽系統(tǒng)”兩套業(yè)務(wù)應(yīng)用系統(tǒng),系統(tǒng)界面友好、操作簡單、功能完備且專業(yè)有效,極大地提高了工作效率。隨著今后工作的深入,可以在此基礎(chǔ)上進行更為專業(yè)復(fù)雜的業(yè)務(wù)系統(tǒng)開發(fā)。
參考文獻:
[1] 張宗灝,王詠青,景安華,等.中尺度自動氣象站W(wǎng)eb圖形顯示系統(tǒng)[J].氣象科技,2008,36(3):372-374.
[2] 厲玉昇,申雙和,冶林茂,等.C++與Surfer Automation在氣象繪圖中的應(yīng)用[J].計算機應(yīng)用與軟件,2008,25(4):279-280.
[3] 盧涵宇,王華軍,柳錦寶,等.基于Surfer的地學數(shù)據(jù)快速可視化研究及應(yīng)用[J].廣西大學學報:自然科學版,2011,36(2):279-284.
[4] 張鐵軍,王錫穩(wěn),張鴻,等.Surfer自動控制技術(shù)在氣象資料自動成圖中的應(yīng)用[J].干旱氣象,2007,25(2):90-94.
[5] 陳忠云,陳華,張亞斌,等.應(yīng)用Surfer Automation繪制地質(zhì)等值線圖[J].物探化探計算技術(shù),2009,31(4):409-413.
[6] 楊曉武,黃興友,徐平.加密自動氣象站實時監(jiān)控與查詢顯示系統(tǒng)[J].氣象科技,2008,36(4):506-509.
[7] 李興寶,候方.基于自動氣象站與自動雨量站的氣象服務(wù)、監(jiān)視及自動報警系統(tǒng)[J].氣象科技,2009,37(1):110-113.
[8] 陳正旭,封秀燕,王亞云.多島嶼地圖上繪制氣象要素等值線色塊的自適應(yīng)方法[J].氣象科技,2009,37(3):356-359.
[9] 沈良朵,鄒志利.融合MATLAB和SURFER的三維地形自動可視化處理[J].計算機工程與應(yīng)用,2012,48(3):17-21.
[10] 申啟杰,凌捷.基于C#的插件框架設(shè)計和實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(1):148-150.
[11] 劉四方,尹曉旭,郭亞坤.基于C#的船載測控設(shè)備遠程監(jiān)控系統(tǒng)實現(xiàn)[J].計算機應(yīng)用與軟件,2012(3):298-300.endprint
2 C#與Surfer自動化接口
C#是微軟公司發(fā)布的一種運行于.NET Framework框架之上的、面向?qū)ο蟮母呒壋绦蛟O(shè)計語言。C#由C語言和C++派生而來,在繼承了其強大性能的同時,又依靠.NET框架類庫,具有類似Visual Basic的快速開發(fā)能力。當前,C#以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[10,11]。實現(xiàn)氣象專題圖的繪制功能,主要是在.NET平臺下,利用C#語言通過對Surfer Automation接口提供的系列對象的調(diào)用來實現(xiàn)。Surfer Automation對象模型層次結(jié)構(gòu)如圖1所示。
2.1 Surfer Automation對象介紹
Surfer Automation對象模型由一系列的對象構(gòu)成,每個對象又有若干方法和屬性構(gòu)成,通過訪問具體的方法和屬性能夠調(diào)用Surfer對應(yīng)的功能。其中,常用的自動化對象有:Application、Documents、Shapes、MapFrame、ContourMap等。Application對象表示Surfer程序,在所有的Surfer自動化對象中Application對象是最基本的,在調(diào)用Surfer進行繪圖前需要先對其進行實例化。Documents對象是文檔類對象的基類,它派生出的類有PlotDocument、WksDocument等,其中PlotDocument對象對應(yīng)Surfer軟件中的工作場景,而WksDocument對象對應(yīng)的是工作表。Shapes是所有繪圖對象的集合。利用Surfer進行二次開發(fā)時,借助通過對各個對象賦予不同的參數(shù)值和調(diào)用對象具體的方法,就可以實現(xiàn)Surfer的自動化技術(shù)。
2.2 核心代碼實現(xiàn)
按照Surfer軟件中基于網(wǎng)格的圖形類型的繪制流程,.NET環(huán)境中利用C#語言調(diào)用Surfer軟件進行等值線的自動繪制與輸出主要可以分為如下4個步驟:(1) 實例化Application對象并進行相關(guān)設(shè)置,從而啟動Surfer程序;(2) 讀取XYZ數(shù)據(jù)文件,進行數(shù)據(jù)列信息、網(wǎng)格化方法、網(wǎng)格線幾何特征等網(wǎng)格化相關(guān)參數(shù)設(shè)置后生成GRD文件;(3) 讀取GRD文件,進行等值線相關(guān)參數(shù)設(shè)置后生成疊加基底圖的等值線圖;(4) 設(shè)置輸出參數(shù),并導(dǎo)出等值線圖。其中部分關(guān)鍵代碼如下:
3 應(yīng)用
在氣象科研中,通過使用儀器設(shè)備對氣象要素進行監(jiān)測時會產(chǎn)生大量的資料數(shù)據(jù),如果使用傳統(tǒng)手段對這些數(shù)據(jù)進行分析將會面臨工作量大、效率低、易出錯的問題,在繪制不同氣象要素的等值線圖時尤為明顯。因此,在實際應(yīng)用中,利用Surfer強大的數(shù)據(jù)插值與繪圖功能,根據(jù)不同業(yè)務(wù)領(lǐng)域的特點,在.NET環(huán)境中利用C#語言實現(xiàn)了不同氣象要素數(shù)據(jù)的瀏覽與分析功能。
3.1 基于GStar-II觀測儀的土壤墑情瀏覽系統(tǒng)
該軟件用于土壤水分的分析、研究,目前實現(xiàn)了對土壤重量含水率、體積含水量、土壤相對濕度和有效水分貯存量四種土壤水分要素的區(qū)域水分分布圖、多層逐時曲線圖和多站逐時曲線圖三種顯示方式的瀏覽和查詢,軟件的“水分分布圖”功能則是利用上文所述的原理實現(xiàn)的。針對河南省各個縣市安裝的125套土壤水分自動觀測站,自動收集2013年10月22日且土壤深度為10CM的重量含水率觀測數(shù)值并進行平均值計算,利用軟件的“水分分布圖”功能自動分析得出河南省土壤水分(重量含水率)分布圖,具體實現(xiàn)效果如圖2所示。
3.2 基于GStar-IV觀測儀的凍土監(jiān)測瀏覽系統(tǒng)
該軟件用于土壤凍融的分析、研究,目前實現(xiàn)了對土壤重量含水率、體積含水量、土壤相對濕度和有效水分貯存量、地溫、凍土深度和干土層厚度七種土壤水分要素的區(qū)域水分分布圖、多層逐時曲線圖和多站逐時曲線圖三種顯示方式的瀏覽和查詢,其中,凍土深度數(shù)值是結(jié)合當?shù)赝寥拉h(huán)境特征,并根據(jù)各層次土壤溫度與土壤水分含量,利用一定的算法計算得出的。針對全國試點安裝的11套凍土深度與干土層厚度自動觀測儀,自動收集2013年1月22日凍土深度觀測數(shù)值,利用該軟件的“凍土與干土層分布”功能自動分析得出中國凍土分布圖,具體實現(xiàn)效果如圖3所示。
4 結(jié)論
基于Surfer軟件強大的數(shù)據(jù)插值與繪圖功能,能夠?qū)庀筚Y料數(shù)據(jù)進行有效且深入的分析。論文通過對Surfer ActiveX Automation技術(shù)進行深入研究,利用Surfer Application編程接口,在.NET環(huán)境中利用C#語言實現(xiàn)了等值線圖的自動繪制。利用上述原理并結(jié)合實際應(yīng)用,實現(xiàn)了“基于GStar-II觀測儀的土壤墑情瀏覽系統(tǒng)”與“基于GStar-IV觀測儀的凍土監(jiān)測瀏覽系統(tǒng)”兩套業(yè)務(wù)應(yīng)用系統(tǒng),系統(tǒng)界面友好、操作簡單、功能完備且專業(yè)有效,極大地提高了工作效率。隨著今后工作的深入,可以在此基礎(chǔ)上進行更為專業(yè)復(fù)雜的業(yè)務(wù)系統(tǒng)開發(fā)。
參考文獻:
[1] 張宗灝,王詠青,景安華,等.中尺度自動氣象站W(wǎng)eb圖形顯示系統(tǒng)[J].氣象科技,2008,36(3):372-374.
[2] 厲玉昇,申雙和,冶林茂,等.C++與Surfer Automation在氣象繪圖中的應(yīng)用[J].計算機應(yīng)用與軟件,2008,25(4):279-280.
[3] 盧涵宇,王華軍,柳錦寶,等.基于Surfer的地學數(shù)據(jù)快速可視化研究及應(yīng)用[J].廣西大學學報:自然科學版,2011,36(2):279-284.
[4] 張鐵軍,王錫穩(wěn),張鴻,等.Surfer自動控制技術(shù)在氣象資料自動成圖中的應(yīng)用[J].干旱氣象,2007,25(2):90-94.
[5] 陳忠云,陳華,張亞斌,等.應(yīng)用Surfer Automation繪制地質(zhì)等值線圖[J].物探化探計算技術(shù),2009,31(4):409-413.
[6] 楊曉武,黃興友,徐平.加密自動氣象站實時監(jiān)控與查詢顯示系統(tǒng)[J].氣象科技,2008,36(4):506-509.
[7] 李興寶,候方.基于自動氣象站與自動雨量站的氣象服務(wù)、監(jiān)視及自動報警系統(tǒng)[J].氣象科技,2009,37(1):110-113.
[8] 陳正旭,封秀燕,王亞云.多島嶼地圖上繪制氣象要素等值線色塊的自適應(yīng)方法[J].氣象科技,2009,37(3):356-359.
[9] 沈良朵,鄒志利.融合MATLAB和SURFER的三維地形自動可視化處理[J].計算機工程與應(yīng)用,2012,48(3):17-21.
[10] 申啟杰,凌捷.基于C#的插件框架設(shè)計和實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(1):148-150.
[11] 劉四方,尹曉旭,郭亞坤.基于C#的船載測控設(shè)備遠程監(jiān)控系統(tǒng)實現(xiàn)[J].計算機應(yīng)用與軟件,2012(3):298-300.endprint