C#调用Surfer 绘制等值线在气象服务中的应用
2013-09-02周秀美
程 林,苗 芸,周秀美
(云南省红河自治州气象局,云南 蒙自 661199)
1 引言
随着经济社会的快速发展,气象服务在国民经济中的地位和作用日益凸显。小到衣食住行,大到国防科技,气象服务都起着不可或缺的保障作用,因此提高气象服务质量,是社会发展的客观需求。
目前,多数气象服务产品都需要通过在一定地域平面内,利用气象要素数据绘制等值线来表现该地域的气象形势。而等值线的绘制仅靠人工来完成,不但工作量大,而且效果也不佳,当遇到大量且复杂的数据时,人工绘制几乎无从下手。因此,该类产品的制作不得不借助外界工具。
长期以来,笔者通过直接使用Surfer 绘图和在编程调用Surfer 绘图之间摸索学习与研究,现已能灵活控制各个绘图环节,精准地绘制各类等值线服务产品。为我州气象服务事业提供了重要支撑。
2 技术介绍
2.1 C#介绍
C#(C Sharp)是微软(Microsoft)为.NET Framework 量身订做的程序语言,是微软公司在2000年6月发布的一种面向对象编程语言。C#拥有C/C ++的强大功能以及Visual Basic 简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java 一样亦为对象导向(object-oriented)程序语言,与Java 有着惊人的相似;它包括了诸如单一继承、界面、与java 几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java 有着明显的不同,它借鉴了Delphi的一个特点,与COM(组建对象模型)是直接集成的,而且它是微软公司.NET windows 网络框架的主角。
2.2 Surfer 介绍
Surfer 是由美国Golden Software 公司编制的一款三维绘图软件,具有强大的插值功能和绘制图件能力,可以轻松制作等值线图、基面图、矢量图以及三维表面图等。该软件通过数据网格化将离散的(X,Y,Z)数据转化为分布均匀的网格数据,通常是不规则分布的原始数据点,经过数学处理,构成一个规则的空间矩形网格,并以多种形式的图形表达出来。原始数据的不规则分布,造成数据缺失“空洞”,网格化则利用外推或内插的计算方法填充了这些“空洞”。
3 基于C#/Surfer的编程
3.1 Surfer 对象简介
Surfer 提供了完整的COM 组件功能供外部程序调用,其组件名称为“Surfer 8 Type Library”。常用的Surfer 对象如下:Application、Aexe、BaseMap、ContourMap、Document、Grid、ImageMap、Levels、Map-Frame、Overlays、PlotDocument、Selection、Shape、Shapes、Windows 等。其中Application 对象代表Surfer 应用程序实例,是其他对象的根。Document、Shape 都是基类对象。
3.2 主体程序设计
4 产品在气象服务中的应用
目前,我州已将通过C#调用Surfer 绘制出来的等值线产品应用到了地质灾害预报预警和电力气象服务中。为防灾减灾及电力行业的正常运行提供了极大的支持。图1 为地质灾害预报预警产品,图2 为电力气象服务产品。
图1 泥石流等级预报图
图2 红河州日最高气温实况图
5 结论
通过C#调用Surfer 绘制等值线图,不仅解决了数据量大绘图难问题,而且大大提高了绘图的效率,给气象工作人员节省了宝贵的时间,更重要的是通过该方式绘制出来的等值线图美观实用,大大提高了气象产品的可视化程度,为地方领导及相关部门提供了直观、准确的气象信息,提高了气象服务水平。
[1]齐立波.C#入门经典(第四版)[M].北京:清华大学出版社,2008.
[2]吴延霞.Surfer 软件嵌入VB 编程在激光平地系统中的应用[J].德州学院学报,2008-12.