Surfer Automation技术在气象业务软件中的应用研究
扫描二维码
随时随地手机看文章
摘 要: 针对当前气象业务应用软件存在绘制局部等值线图编程复杂、操作繁琐、地形边缘不精细、要素显示不直观等不利于天气分析的弱点,以军队格点报为例,介绍了基于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 带有站点信息底图的绘制