《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > Surfer Automation技术在气象业务软件中的应用研究
Surfer Automation技术在气象业务软件中的应用研究
来源:微型机与应用2012年第11期
于 斌1,2,陈 希3,李 妍4,公言华2
(1.解放军理工大学 气象学院研管大队,江苏 南京 211101; 2.91206部队训练部,山东
摘要: 针对当前气象业务应用软件存在绘制局部等值线图编程复杂、操作繁琐、地形边缘不精细、要素显示不直观等不利于天气分析的弱点,以军队格点报为例,介绍了基于Surfer Automation技术绘制军队格点报等值线图的方法,实现了局部精细绘制等值线图和动态显示站点气象要素值的功能,降低了编程复杂度,并将该技术应用于业务应用软件中。
Abstract:
Key words :

摘  要: 针对当前气象业务应用软件存在绘制局部等值线图编程复杂、操作繁琐、地形边缘不精细、要素显示不直观等不利于天气分析的弱点,以军队格点报为例,介绍了基于Surfer Automation技术绘制军队格点报等值线图的方法,实现了局部精细绘制等值线图和动态显示站点气象要素值的功能,降低了编程复杂度,并将该技术应用于业务应用软件中。
关键词: Surfer Automation;等值线图;气象业务软件

 等值线图是天气分析与预报的重要工具,目前部队气象业务应用软件在绘制等值线图方面,还存在着编程复杂、操作繁琐、不能直观显示站点气象要素、地形边缘不精细等不利于天气分析的问题。
针对以上问题,国内有学者进行了Surfer在气象数据可视化领域中的应用研究。梁亮[1]进行了Surfer在气象主分量显示分析中的研究,实现了Surfer显示气象数据的功能;杨远航等人[2]用Delphi和Surfer接口绘制气象要素等值线图,实现了自动气象站数据实时显示分析。本文介绍了利用Surfer Automation技术通过VC#编程来高效绘制军队格点报等值线图的方法,并设计实现了基于Surfer Automation技术的业务应用软件。
1 VC#和Surfer简介
 VC#是美国微软公司为.net平台专门设计的,由事件驱动、完全面向对象的可视化编程语言[3],其功能强大、编程简单高效。
 Surfer是美国黄金软件公司研发的专业绘制等值线图的图像制作分析软件[4],因其强大的绘图功能和较低的系统需求而被广泛地应用于测绘、水利、气象等领域。Surfer作为专业的等值线绘图工具,底图边缘绘制精细、对气象要素场的分析结果准确、效率较高[1],在气象数据可视化领域有一定的实用价值。Surfer提供的Automation技术,几乎涵盖了Surfer的全部功能,并支持VC#编程语言进行二次开发[5]。
2 程序设计原理研究
2.1 设计原理

 VC#调用Surfer Automation技术的MapFrame、PlotDocument等对象来实现绘制等值线图功能。MapFrame对象结构图如图1所示,其中绘图常用到BaseMap、ContourMap、PostMap、VectorMap和Axis等接口。

 在绘图前,VC#需要对Surfer进行引用和初始化。在VC#的项目管理器中添加对“Surfer.exe”文件的引用,并在程序文件中添加using Surfer声明即可完成引用。建立Surfer的Application对象即可完成初始化。
绘图的基本过程包括:军队格点报数据格式转换、背景底图的生成、等值线图的绘制、等值线参数设定、显示等步骤,具体流程如图2所示。

2.2 关键程序研究
2.2.1 数据准备

 Surfer绘图用到的数据主要有:底图边界文件、站点信息文件和站点气象要素数据文件。
底图边界文件格式和站点信息文件格式可利用VC#参照参考文献[4]编写。
 站点气象要素数据来自于军队格点报,而军队格点报的数据格式与Surfer要求的数据格式不同,因此需要将军队格点报数据通过VC#编程转换成Surfer所需要的XYZ离散数据文件,即“经度、纬度、气象要素值”格式,一般以“.dat”为扩展名。在生成XYZ数据文件后,需要通过Surfer Automation的GridData命令插值成为GRD等值线数据文件。GridData命令提供了包括NearestNeighbor等12种插值方法,可以根据需要选择其中一种,大大简化了编程复杂度。根据卢涵宇等人的研究,本文选择使用Kriging插值方法[6]。
2.2.2 带有站点信息底图的绘制

 


 等值线通常以底图为参考[7],可利用MapFrame中BaseMap接口添加边界文件形成基面图,利用PostMap接口添加站点信息文件形成站点分布图,将站点分布图覆盖在基面图上而形成底图。
常见边界文件有BLN空白边界文件和BNA地图边界文件。Surfer读取文件中所有边界点的坐标并将其绘在基面图的相应位置上。
 站点信息文件采用XYZ文件格式,即“经度、纬度、站名”格式,Surfer读取该文件后按照站点经度与纬度信息将其绘制在站点分布图上。
 图3 为利用Surfer Automation技术绘制的东南沿海地区底图效果图。

2.2.3 等值线图绘制与等值线参数设定
 在使用Kriging插值方法将军队格点报文件插值成GRD等值线数据文件后,使用Surfer Automation的MapFrame对象的ContourMap接口加载GRD格式文件,使其作为一个图层附加在底图上。
 通过VC#编写的应用程序界面,可设定等值线间隔参数并传递Surfer。根据等值线间隔参数,ContourMap接口可以调整等值线间隔,同时显示色标。图4为业务应用软件中等值线设定窗口,可根据业务需要调整。
通过以上步骤,Surfer共创建了3个图层,分别是基面图层、站点分布图层和等值线图层。使用PlotDocument对象的Sharps对象,选择所有图层,利用PlotDocument对象保存为SRF中间文件,将SRF文件用Export方法输出保存为图像文件。至此,等值线图像文件已生成。

2.2.4 等值线图的显示
 使用PictureBox控件加载Surfer生成的图像文件,完成等值线图像的显示工作。
3 应用实例
 VC#调用Surfer Automation 技术编写的业务应用软件,可以显示自起报时间起特定时刻某一层次的特定气象要素值等值线图,并能在鼠标所在位置显示站点的站号、站名和气象要素值,同时能够调整等值线间隔,有目的地绘制等值线图。图5为VC#使用Surfer Automation技术编写的军队格点报业务应用软件界面,当前显示了2011年7月26日08时,预报时次为00 h的2 m高度温度要素分布等值线图,鼠标指向寻乌站点,显示“59102寻乌28.1”,表示站号:59102,站名:寻乌,2 m高度温度为28.1℃。
 与常见气象业务绘图软件相比,Surfer在精细绘制地形边缘和局地等值线方面有着较大的优势。Surfer Automation技术利用VC#二次开发方法在气象数据可视化方面具有可行性,既能充分发挥VC#强大的界面开发功能、降低编程复杂度,又能最大限度地利用Surfer丰富的绘图资源、减少系统的消耗。与网络相连,还可以开发气象数据实时显示系统。
 利用Surfer Automation技术编程方便、快捷、高效,在开发带有绘图和实时分析功能的气象业务应用系统上有一定的应用前景。
参考文献
[1] 梁亮.SURFER软件在气象主分量分析中的应用[J].浙江气象,2005,26(3):29-37.
[2] 杨远航,黄爱玉,沈永生.基于Delphi与Surfer接口绘制气象要素等值线图[J].福建电脑,2010(4):147-148.
[3] DEITEL H M, DEITEL P J, LISTFIELD J, et al. C#:how to program[M].USA:Pretice Hall.[2002].http://www.deitel.com.
[4] Gold Software Inc. surfer help[J/OL].[2010-08-25].http://www.goldensoftware.com.
[5] 马玉峰,高春香.VB与Surfer联合编程实现自动绘制气象要素图形[J].内蒙古气象,2010(2):38-40.
[6] 卢涵宇,王华军,柳锦宝,等.基于Surfer的地学数据快速可视化研究及应用[J].广西大学学报,2011,36(2):279-284.
[7] 杨学斌.基于SurferAutomation技术的气象等值线自动绘制[J].山东气象,2010(4):30-33.

此内容为AET网站原创,未经授权禁止转载。