【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“利用VB调用surfer软件实现酸雨数据可视化 - 会议论文”一文,供大家参考学习
S8 会场 利用
VB 调用 surfer 软件实现酸雨数据可视化 李明明 韩照宇 王雁 闫世明 陈二萍 卢淑贤 刘占贞 张逢生 杨爱琴 (山西省气象科学研究所,山西 太原 030002) 摘 要 在酸雨业务工作中,经常要对大量的气象要素数据进行系统分析,在诸多的分析方法中,绘制等值线是最直观、最有效的手段之一。
现阶段对于大量气象数据的等值线分析,虽说已有 Micaps 专业气象资料分析软件,但需要对数据进行格式化处理和许多二次开发工作,程序灵活性和延展性有限。
因而借助专业绘图软件进行气象要素的等值线分析被广泛的利用。
在众多的商业化绘图软件中,美国 GOLDEN 公司的 surfer8.0 软件,以其功能强大、开放式接口、支持数据多样化、产品结果实用美观等诸多优点得到广大用户的青睐。
Surfer 软件提供了 Automation 技术,支持
VB 编程语言的二次开发,Automation技术是指一个应用程序通过某个对象去操纵另一个应用程序的机制。
它提供了一个应用程序逻辑外部控制某个应用程序对象的编程界面,应用程序暴露出的对象称为自动化对象(automation object),外部客户应用程序通过使用这些对象的属性、方法就可以达到控制应用程序的目的。
该软件提供了可嵌入编程的接口,Surfer 服务器在后台运行,可以完全摆脱 Surfer的主控界面,在客户程序界面中通过
VB 嵌入式编程快速实现等值线图的绘制。
本次研究提出一种用
VB 将酸雨气象数据和 surfer 软件相结合,同时实现动态演示的方法。
研究通过采用 Active 技术解决了使用
VB 调用 surfer 软件提供的自动化接口, 同时实现了酸雨气象数据在区域地图范围内的动态
演示,为酸雨监控 用及酸雨防治措施提供了有力的技术支持。
VB 作为编程语言,一方面用于形成用户界面,另外一方面用来调用 Surfer 软件,利用
VB6.0 编程嵌入 Surfer8.0 核心模块开发应用程序的主要工作流程为:首先通过
VB6.0 编写程序核心
代码,然后引入Surfer 提供的 Automation 对象模块。
其中核心
代码用于处理数据和传递用户指令给 Surfer 模块,Surfer 模块进行后台服务绘制图形。
利用
VB 语言的兼容性和 Surfer 软件的强大绘图功能进行联合编程,实现了气象数据快速图像化,操作简捷,产品美观。
本文所采用的方法优点明显,编写
代码方便快捷,该项技术继承了
VB 和 Surfer 的优点,节省了开发绘制等值线图程序的时间,使得酸雨的分布情况能够更为清楚和直观地表现出来。
关键词:
VB Surfer
软件 酸雨气象数据 可视化1 引言 在酸雨业务工作中,经常要对大量的气象要素数据进行系统分析,在诸多的分析方法中,绘制等值线是最直观、最有效的手段之一1。
现阶段对于大量气象数据的等值线分析,虽说已有 Micaps 专业气象资料分析软件,但需要对数据进行格式化处理和许多二次开发工作,程序灵活性和延展性有限。
因而借助专业绘图软件进行气象要素的等值线分析被广泛的利用。
在众多的商业化绘图软件中,美国 GOLDEN 公司的surfer8.0 软件,以其功能强大、开放式接口、支持数据多样化、产品结果实用美观等诸多优点得到广大用户的青睐。
2
工作原理 Surfer 软件是美国 Golden Software 公司研制开发的基于 Windows 操作
系统的绘图软件2,它不仅提供了丰富的网格化和插值算法,还具有强大的绘制等值线图的能力。
我们在平时工作中常需要绘制雨量、温度等的等值线图。
Surfer 软件提供了 Automation 技术3,支持
VB 编程语言的二次开发,Automation 技术是指一个应用
程序通过某个对象去操纵另一个应用程序的机制。
它提供了一个应用程序逻辑外部控制某个应用程序对象的编程界面,应用程序暴露出的对象称为自动化对象(automation object) ,外部客户应用程序通过使用这些对象的属性、方法就可以达到控制应用程序的目的。
该软件提供了可嵌入编程的接口,Surfer 服务器在后台运行,可以完全摆脱 Surfer 的主控界面,在客户程序界面中通过
VB 嵌入式编程快速实现等值线图的绘制4 5。
1基金项目:山西省气象局 2010 年度青年基金项目“山西省酸雨特征及气象条件研究”资助。
作者简介:李明明1980- ,男,山西省昔阳县人,工程师,学士,从事大气环境研究, E-mail qkslmm126.com。
1 在面向对象程序设计语言中,
VB 功能强大,被广泛应用于 Windows 环境下系统的可视化界面
设计。
用
VB 作为编程语言,一方面用于形成用户界面,另外一方面用来调用 Surfer 软件,利用
VB6.0 编程嵌入Surfer8.0 核心模块开发应用程序的主要工作流程为:首先通过
VB6.0 编写程序核心
代码,然后引入 Surfer提供的 Automation 对象模块。
其中核心
代码用于处理数据和传递用户指令给 Surfer 模块,Surfer 模块进行后台服务绘制图形。
工作原理如图 1 所示。
用户界面
VB主程序 图形产品输出 数据文件 调用Surfer嵌入
代码模块后台服务 图1
VB 调用 Surfer 进行开发设计的工作流程3
代码实现
常用的 Surfer 对象有 Application、Documents、MapFrame、Shapes、Overlays、levels、Grid 等等。
用 CommonDialog1(对话框 1)打开数据文件,Combo1(组合框 1)显示时间,生成的等值线图在Picture1(图片框 1)中显示。
利用
VB6.0 编程控制 surfer8.0 对象绘制等值线图核心
代码如下: With CommonDialog1 .DialogTitle”打开数据文件” .Flags0 .CancelErrorTrue .FileName .Filter 数据文件.txt.dat.xls .ShowOpen If LenFileName0 Then ‘如果没有文件名则退出 Exit Sub End If strInFile.FileName ‘获取选中的文件名 End WithSet SurferApp CreateObjectSurfer.Application 生成 Surfer 模块With SurferApp .GridData DataFile:App.Path 等值线文件dat 文件 Combo1.Text .dat xCol:1 yCol:2 zCol:4 xMin:110.1 xMax:114.6 yMin:34.3 yMax:40.8 Algorithm:srfKriging _ DupMethod:2 showReport:False SearchEnable:True OutGrid:App.Path 等 值 线 文 件201010.grd 用克立格法将资料内插到格点上 Surfer8.0 提供了十二种插值方法,在此不加赘述。
.GridBlank Ingrid:App.Path 等值线文件201010.grd BlankFile:App.Path 等值线文件 mapbak山西.bln OutGrid:App.Path 等值线文件out.grd outfmt:srfGridFmtS7 Set Plot SurferApp.Documents.Add1 生成一个空白的绘图页 2 Set ContourMapFrame Plot.Shapes.AddContourMapApp.Path 等值线文件out.grd 生成一个等值线图 Set ContourMap ContourMapFrame.Overlays1 ContourMap.Levels.LoadFile App.Path 等值线文件 2.lvl ContourMap.SmoothContours 1 平滑等值线 ContourMap.FillContours True 设置等值线填充 Set myBasemap Plot.Shapes.AddBaseMapImportFileName:App.Path 等值线文件mapbak山西.bln 添加底图 Dim postmapframe As Object Plot.Shapes.SelectAll 合并图形 Plot.Selection.OverlayMaps 输出图形文件,退出 Surf Plot.Export FileName:App.Path 等值线文件201010.bmp Options:Width500Height700 Plot.Close SaveChanges:srfSaveChangesNo SurferApp.Quit 释放 Surfer 模块 End With Picture1.Picture LoadPictureApp.Path 等值线文件201010.bmp Private Sub Command3_Click i0 Combo1.ListIndex 0 Timer1.Interval 300 Timer 事件启动End Sub Suefer8.0 所提供的开放式接口技术与
VB6.0 相结合,进行嵌入式编程,开发了山西省酸雨数据显示的快速可视化平台。
该系统采用了 Surfer8.0 的等值线填色图,使得酸雨的分布情况能够更为清楚和直观地表现出来,图形产品如图 2 所示。
图2 酸雨分布情况 34 结束语 通过以上表述能够反映出,利用
VB 语言的兼容性和 Surfer 软件的强大绘图功能进行联合编程,实现了气象数据快速图像化,操作简捷,产品美观。
另外由于
VB6.0 对图像处理功能较弱,很大程度上限制了产品的可编辑性,有待以后工作中逐步探索。
本文所采用的方法优点明显,编写
代码方便快捷,实现起来较为容易。
该项技术继承了
VB 和 Surfer 的优点,节省了开发绘制等值线图程序的时间,保证了作图的精度。
参考文献:1 杨远航,沈永生,张顺玲. 乡镇自动气象站等值线要素图绘制技术J. 安徽农业科学,2010.3823:12764-12766.2 姚兴军,彭理通. 用
VB和Surfer实现污染物在大气中扩散的动态演示J. 化工环保,2004.244:298-300.3 宋明艺张春灌. 利用Surfer软件快速绘制平面等值线图J. 工程地球物
理学报,2009. 62: 244-246.4 赵炎陈向东. 基于.
NET平台的Surfer绘制等值线图实现J. 气象研究与应用,2009.309: 193-194.5 张丽莉吴健生. 综合利用
VB 与Surfer 实现地学三维曲面的动态显示J.
计算机工程与应用,2003.14:139-141. 4