Surfer Automation技術(shù)在氣象業(yè)務(wù)軟件中的應(yīng)用研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要: 針對(duì)當(dāng)前氣象業(yè)務(wù)應(yīng)用軟件存在繪制局部等值線圖編程復(fù)雜、操作繁瑣、地形邊緣不精細(xì)、要素顯示不直觀等不利于天氣分析的弱點(diǎn),以軍隊(duì)格點(diǎn)報(bào)為例,介紹了基于Surfer Automation技術(shù)繪制軍隊(duì)格點(diǎn)報(bào)等值線圖的方法,實(shí)現(xiàn)了局部精細(xì)繪制等值線圖和動(dòng)態(tài)顯示站點(diǎn)氣象要素值的功能,降低了編程復(fù)雜度,并將該技術(shù)應(yīng)用于業(yè)務(wù)應(yīng)用軟件中。
關(guān)鍵詞: Surfer Automation;等值線圖;氣象業(yè)務(wù)軟件
等值線圖是天氣分析與預(yù)報(bào)的重要工具,目前部隊(duì)氣象業(yè)務(wù)應(yīng)用軟件在繪制等值線圖方面,還存在著編程復(fù)雜、操作繁瑣、不能直觀顯示站點(diǎn)氣象要素、地形邊緣不精細(xì)等不利于天氣分析的問題。
針對(duì)以上問題,國內(nèi)有學(xué)者進(jìn)行了Surfer在氣象數(shù)據(jù)可視化領(lǐng)域中的應(yīng)用研究。梁亮[1]進(jìn)行了Surfer在氣象主分量顯示分析中的研究,實(shí)現(xiàn)了Surfer顯示氣象數(shù)據(jù)的功能;楊遠(yuǎn)航等人[2]用Delphi和Surfer接口繪制氣象要素等值線圖,實(shí)現(xiàn)了自動(dòng)氣象站數(shù)據(jù)實(shí)時(shí)顯示分析。本文介紹了利用Surfer Automation技術(shù)通過VC#編程來高效繪制軍隊(duì)格點(diǎn)報(bào)等值線圖的方法,并設(shè)計(jì)實(shí)現(xiàn)了基于Surfer Automation技術(shù)的業(yè)務(wù)應(yīng)用軟件。
1 VC#和Surfer簡介
VC#是美國微軟公司為.net平臺(tái)專門設(shè)計(jì)的,由事件驅(qū)動(dòng)、完全面向?qū)ο蟮目梢暬幊陶Z言[3],其功能強(qiáng)大、編程簡單高效。
Surfer是美國黃金軟件公司研發(fā)的專業(yè)繪制等值線圖的圖像制作分析軟件[4],因其強(qiáng)大的繪圖功能和較低的系統(tǒng)需求而被廣泛地應(yīng)用于測(cè)繪、水利、氣象等領(lǐng)域。Surfer作為專業(yè)的等值線繪圖工具,底圖邊緣繪制精細(xì)、對(duì)氣象要素場的分析結(jié)果準(zhǔn)確、效率較高[1],在氣象數(shù)據(jù)可視化領(lǐng)域有一定的實(shí)用價(jià)值。Surfer提供的Automation技術(shù),幾乎涵蓋了Surfer的全部功能,并支持VC#編程語言進(jìn)行二次開發(fā)[5]。
2 程序設(shè)計(jì)原理研究
2.1 設(shè)計(jì)原理
VC#調(diào)用Surfer Automation技術(shù)的MapFrame、PlotDocument等對(duì)象來實(shí)現(xiàn)繪制等值線圖功能。MapFrame對(duì)象結(jié)構(gòu)圖如圖1所示,其中繪圖常用到BaseMap、ContourMap、PostMap、VectorMap和Axis等接口。
在繪圖前,VC#需要對(duì)Surfer進(jìn)行引用和初始化。在VC#的項(xiàng)目管理器中添加對(duì)“Surfer.exe”文件的引用,并在程序文件中添加using Surfer聲明即可完成引用。建立Surfer的Application對(duì)象即可完成初始化。
繪圖的基本過程包括:軍隊(duì)格點(diǎn)報(bào)數(shù)據(jù)格式轉(zhuǎn)換、背景底圖的生成、等值線圖的繪制、等值線參數(shù)設(shè)定、顯示等步驟,具體流程如圖2所示。
2.2 關(guān)鍵程序研究
2.2.1 數(shù)據(jù)準(zhǔn)備
Surfer繪圖用到的數(shù)據(jù)主要有:底圖邊界文件、站點(diǎn)信息文件和站點(diǎn)氣象要素?cái)?shù)據(jù)文件。
底圖邊界文件格式和站點(diǎn)信息文件格式可利用VC#參照參考文獻(xiàn)[4]編寫。
站點(diǎn)氣象要素?cái)?shù)據(jù)來自于軍隊(duì)格點(diǎn)報(bào),而軍隊(duì)格點(diǎn)報(bào)的數(shù)據(jù)格式與Surfer要求的數(shù)據(jù)格式不同,因此需要將軍隊(duì)格點(diǎn)報(bào)數(shù)據(jù)通過VC#編程轉(zhuǎn)換成Surfer所需要的XYZ離散數(shù)據(jù)文件,即“經(jīng)度、緯度、氣象要素值”格式,一般以“.dat”為擴(kuò)展名。在生成XYZ數(shù)據(jù)文件后,需要通過Surfer Automation的GridData命令插值成為GRD等值線數(shù)據(jù)文件。GridData命令提供了包括NearestNeighbor等12種插值方法,可以根據(jù)需要選擇其中一種,大大簡化了編程復(fù)雜度。根據(jù)盧涵宇等人的研究,本文選擇使用Kriging插值方法[6]。
2.2.2 帶有站點(diǎn)信息底圖的繪制