• 官方微信

    CA800二维码微平台 大视野

  • 工控头条

    CA800二维码工控头条App

当前位置:自动化网>自动化文库>应用案例>基于Surfer Automation技术绘图方法研究

基于Surfer Automation技术绘图方法研究

发布时间:2013-01-23 来源:中国自动化网 类型:应用案例 人浏览
分享到:
关键字:

导读:

1 引言为了能够直观的观测到数据的分布及变化等情况,让工作者对大量的离散数据一目了然,将数据绘制成曲线以及各种图形,这在各个行业中有着普遍的应用,如地址图、海洋要素图、航迹图等。由于近些年计算机行业的高速...

1  引言
为了能够直观的观测到数据的分布及变化等情况,让工作者对大量的离散数据一目了然,将数据绘制成曲线以及各种图形,这在各个行业中有着普遍的应用,如地址图、海洋要素图、航迹图等。由于近些年计算机行业的高速发展,相应的专业绘图软件及一些编程附带的绘图功能块越来越多。因此对于工作者来说,如何选择一款适合自己的绘图工具这尤为重要。
Surfer是美国Golden公司在1985 年推出的可以用于空间插值、绘制等值线图软件,具有很强的等值线绘制功能,但是多数研究还只是停在平面设计功能,Surfer Automation技术在绘图中所带来的便捷还没有引起足够的重视[1-2]。本文结合绘制水文气象等值线图来说明Surfer Automation技术极大的方便了绘图人员, 提高了绘图的效率和效果。在客户程序中通过Surfer的Automation技术后台操作Surfer,这样不仅借助了Surfer的强大功能,而且界面上无缝结合,能给用户便捷统一的操作界面。

2  软件简介
Automation接口技术是指一个应用程序通过某个对象去“操纵”另一个应用程序的机制。它克服了早期一些编程语言功能弱、速度慢的缺点,提供了一个从应用程序外部控制某个应用程序对象的编程界面,应用程序暴露出的对象称为自动化对象(automation object),外部客户应用程序通过使用这些对象的属性、方法,就可以达到控制该应用程序的目的。用户可以利用专业的GIS工具软件(如MapInfo,Surfer,AutoCAD等)作为后台服务器,来直接实现专业软件的大部分功能,而不需要单独开发。并且,用户可以利用Delphi、VB、VC及MATLAB等可视化开发工具作为开发平台,进行二者的简单集成开发[3]。

Surfer软件(图1为Surfer软件设置界面)可处理离散点资料、格点资料,可以绘制等值线图、三维立体图等,也可添加研究区域的部分地理信息、在资料点上显示标注等;提供了传统的Windows界面,操作简单。Golden为Surfer 设计了可嵌入编程的接口, 并自带了VB 脚本编辑器Scripter, 从而使应用开发人员可以在Scripter 中采用VB 编程语言对其进行嵌入调用[4]。利用VB程序开发时间短、可控性好的特征, 可以快速地实现数据批量可视化, 更加充分地发挥出surfer 的优点。
为进一步扩展其应用范围, Surfer中采用Surfer Automation技术来公开其接口,可方便地实现面向对象的嵌入式编程方法, 将Surfer的空间插值功能无缝地集成在用户的应用程序中, 可以大大缩短开发时间, 避免重复开发。Surfer Automation技术, 实现在后台运行Surfer服务器程序, 完全摆脱了Surfer 的主程序界面,在客户应用程序中实现了等值线图快速自动绘制功能[5-6]。

3  在VB6中调用Surfer8.0绘图的步骤与方法
Surfer8.0[7]提供了用户程序与Surfer服务之间的Automation接口技术,该接口涵盖了绘图的所有功能,实现了批量图形的自动绘制,实践表明绘图效果较好。
3.1  实现步骤
实现方法可以分为以下几步:
(1) 提供原始数据文件,数据格式形如:
118.003998 18.997000 34.3860015869141
119.767668 18.386333 33.5203336079915
123.516998 18.500999 34.576000213623
125.999001 18.996999 34.4819984436035
126.497002 18.999001 34.6360015869141
……
其中每一列分别表示经度、纬度、值(如温度、盐度、密度、深度等值);
(2) 在VB6中生成Surfer应用程序对象;
(3) 借助Surfer应用程序对象,用克里格法将数据内插到格点上,生成网格数据文件;
(4) 借助Surfer应用程序对象,生成初始等值线图;
(5) 借助Surfer应用程序对象,绘制水深分界线;
(6) 借助Surfer应用程序对象,绘制中国海区底图;
(7) 合并初始等值线图、水深分界线、中国海区底图;
(8) 输出图形文件;
(9) 在VB6应用程序界面中显示(8)中输出的图形文件。
其中(3)—(8)均是借助(2)中创建的Surfer应用程序对象在后台完成的。网格化算法有很多种,比如加权反距离法、最小曲率法、改进谢别德法、多项式回归法、径向基函数法等等,我们采用的是系统默认的克里格算法。
3.2  具体实现
下面列出其中的几个关键点的实现方法。
(1) 在VB6中生成Surfer应用程序对象和文档对象:

(2) 用克里格法将数据内插到格点上,生成网格数据文件:

上述语句生成的就是80行100列的网格数据文件。
(3) 分层次显示等值线之间的填充颜色

其中i表示第i层。
(4) 输出图形文件,退出Surfer

4  应用实例
在开发某海区地志系统时,我们需要一个统一的界面浏览各种类型的数据,包括文字、图表、音视频和水文气象专业图形等。对于水文气象专业图形,提供的只是特定时间的格点数据,要求系统能够即时生成对应等值线图。如图2和图3所示就是客户端程序界面。选定一组数据后即可生成对应emf格式的等值线图。按照传统步骤,我们对每一组数据都用Surfer来设置参数,一步一步生成等值线图,然后录入地志系统。这个过程虽不复杂,但在有很多组数据的情况下就不是个轻松地工作了,而且随着年度的变化,还需要不断更新。而现在,我们通过后台调用Surfer的绘图算法,可以直接在兵要地志系统中读取数据并生成图形,操作简单不易出错,界面统一,极大地提高了工作效率。

   

5  结束语
如何在客户应用程序中简单快速地实现等值线图的绘制功能,是目前一些相关专业软件开发中值得研究的问题。Surfer7.0以后的版本提供了Automation技术,供用户进行二次编程开发。用户通过使用这项技术,可在自己开发的客户应用程序中方便地引入Surfer的Automation对象,在客户程序中轻松地实现Surfer强大的等值线图绘制功能,并把最终的成果图无缝地嵌入客户程序,大大减小了工作量,缩短了程序开发周期,具有非常强的实用性。
此外,相对于VB等开发工具而言, M atlab具有强大的运算功能、丰富的数据可视化表现模式,在其中调用Surfer Automation技术,效果更好,此外无论在哪一种语言中调用,能够结合AutoCAD Voloview Express显示图形的功能,既可以节省开发绘制等值线图程序的时间,又保证了作图的精度,突出对图形进行实时平移、缩放、打印的功能。

参考文献:
[1] 任印国,魏永强.使用Surfer软件绘制地质图件和处理地质数据的方法[J].测绘技术装备,2006,8(1):34-36.
[2] 陈斌.使用Surfer嵌入编程技术实现地学中的数据快速可视化[J].地质找矿论丛,2006,21(3):224-226.
[3] 邱辽原,吴英友,朱显明等.基于Automation技术的噪声振动测量数据处理系统研究与实现[J].2007,26(3):115-123.
[4] 孙福清,董伯麟.利用Automation技术开发CAD系统[J].机械设计与制造工程,2001,30(3):48-49.
[5] 杨朝辉,党立华.基于Surfer Automation 技术的三维立体渲染图的绘制[J].海洋测绘,2003,23(4):26-28.
[6] 王喜荣.Surfer软件绘鸡西区域气象要素图[J].电脑知识与技术,2010,6(26):7291-7292.
[7] Addison.Surfer8 制图中文教程[EB/OL].http://wenku.baidu.com/view/202dac45b307e87101f69609.html.

作者简介:余祖玉(1964-),男,高级工程师,从事指挥自动化辅助决策方面的研究。

本文地址:本文地址: http://www.ca800.com/apply/d_1nrutga2l2fd7_1.html

拷贝地址

上一篇:模糊自适应PID控制在注塑机料筒温度控制中的应用*

下一篇:MOONS’(鸣志)三相步进电机在激光雕刻机上的应用

免责声明:本文仅代表作者个人观点,与中国自动化网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容!