C++与Surfer Automation在气象绘图中的应用分析
王乐
摘 要:伴随科学技术水平的不断提升,许多新技术、新理念、新方式在气象领域中得到广泛应用,强有力的推动着其发展与完善。需要指出的是,在各类气象业务工作当中,都需要把大量数据以一种直观方式给显示出来(图像形式),而Surfer软件便具有良好的绘图与数据处理功能,以Microsoft为基础设置COM体系OLE标准接口,并选用实用性更强的C++Builder6.0编程,对SurferAutomation绘图功能施加合理化、高效化控制,因而能够达到自动绘制气象数据等值线的目的。
关键词:气象数据;等值线;Surfer Automation;C++
Surfer由世界著名的GoldenSoftware公司所開发,其能够基于NT系统与Windows系统的辅助下,进行等值线图、三维立体图的绘制,而且在其内部,还储存者大量格网化方法及数据插值。因此,用户借助其脚本语言(CSScripter)编程,便能够对Surfer进行控制,以此来高效绘图;此外,还能利用其所配置的ActiveX编程接口,联合C++、Delphi、VB等可视化编程语言,对Surfer绘图施加有效控制。对于C++ Builder6.0而言(由Borland公司所开发),其实为一种比较典型的快速应用程序开发(RAD)工具,在其COM体系结构当中,拥有一个标准接口,即为OLE,C++应用程序能够根据现实需要,借助其属性、方法,来合理化、实时性且高效化调动Surfer相关功能,最终达到二次开发Surfer应用的目的。本文以气象绘图为对象,就C++与Surfer Automation在其中的具体应用探讨如下。
1 Automation技术概述
Automation技术能够根据现实需要,通过某个对象,使一个应用程序对另外一个应用程序进行“操纵”。其较好的提供了一个自应用程序的外部来对另外一个应用程序进行全面控制的编程界面。需要说明的是,从应用程序当中所暴露出的对象,便是自动化对象;外部用户程序能够听过对此些对象的属性、方法进行合理使用,以此达到对此应用程序施加控制的目的。还需强调的是,Surfer在组织其自动化对象上,所采用的是层次化方式。当前,已经被常态化应用的自动化对象为WksDocument、PlotDocument、Application等。而在全部Surfer自动化对象当中,最为基础的便是Application,其通常会设置在此种层次结构的最根部,所反映或折射的是Surfer应用程序实例。另需指出的是,Shapes Collection实为全部绘图对象的一种完整集合。各自动化对象自身均有专属自身的方法与属性,比如Aexs Collection,其专属方法为Item,而专属属性有三种,其一为Parent,其二是Count,其三为Application。而对于属性所描述的内容来讲,实为对象的当前状态,而方法则为对象的执行功能。在整个外部程序架构当中,通过将各种参数值赋予属性,并采用对象的方法,来对各种操作予以执行,便能最终获得Surfer所对应的Au-tomation技术。
2 C++与Surfer Automation接口
2.1 基本原理
针对C++Builder6.0来讲,其提供了能够操作OLE对象的各种指令,比如OleFunction、lePropertyGet及CreateObject等。在实际操作过程中,Surfer能够根据现实需要,提供active X自动化对象,并且还准允其它对自动化予以支持的开发工具,调动Surfer当中的各种绘图功能;另外,还需说明的是,还可借助各种对象来实现,比如APPlication、Axes、MapFrame等(由Surfer所提供)。应用程序通过利用其方法以及给Surfer对象的属性赋值,最终便能得到SurferAutomation技术。
2.2 核心接口代码分析
通过剖析Automation技术,从中可得知,C++要想对Surfer Automation进行合理化使用,需要产生一个Application对象(Surfer),然后方能操纵各种层次对象的目的。借助下述代码,便能实现在C++当中将Surfer Automation对象予以生成:
IapplicationPtr pApp(__uuidof(Applica-tion));
//产生一个Surfer Application对象句柄,PApp->Visible= VARIANT_TRUE;
//VARIANT_TRUE使sufer应用程序;
可见,Papp实为Surfer Application Object架构当中的一个句柄,借助此句柄,能够利用其Dcouments属性,得到1个Documents Collection对象,因此,能够为Surfer添加1个全新的文档;另通过等值距、等值线范围的设置,输出BMP图像。
3 气象数据等值线绘图系统
在各种气象工作当中,均或多或少的需要在处理好数据之后,以一种图形方式,将其显示出来;但需要指出的是,因气象数据在具体格式上,存在与Surfer软件所对应的绘图格式不相符的情况,所以,首先要做的便是转化“绘图数据”的格式,然后在完成颜色设置,从中便能获得色标文件(自定义格式);此时,可通过对Surfer绘图的接口功能进行调用,实现气象数据至Surfer等值线绘图处理之间的自动化;上述操作完成后,通过开展“图像显示”,便能获得等值线图像。
4 结语
综上,借助Surfer8.0版本,并与Surfer所具有的绘图功能相结合,可以达到缩短软件开发周期的目的,成功开发出在业务当中有着最强实用性的软件。本文借助Surfer所具有的强大绘图功能,将其与C++所具有的强大软件开发能力相结合,应用在气象绘图,使其各项数据变得更加直观、全面。
参考文献
[1]张莹, 张胜业, 昌彦君.Surfer Automation技术在电法资料成图中的应用[J].工程地球物理学报, 2019,(01):56-59.
[2]凌士兵, 林刘敏, 郑潮宇.SURFER编程在电视气象节目中的图形绘制应用[J].东南传播, 2019,(10):165-166.
[3]杨鹏, 曹江山, 岳阳.Surfer和ArcView结合在气象绘图中的应用[J].河北遥感, 2018,(2):15-16.
[4]于斌, 陈希, 李妍,等.Suffer Automation技术在气象业务软件中的应用研究[J].微型机与应用, 2018, 31(011):11-13.