Matlab调用Surfer自动化实现电法等值线图的批量绘制

电脑杂谈  发布时间:2019-10-20 18:03:31  来源:网络整理

线描画范画_画根轨迹线中阻尼比线是什么_surfer怎么画等值线

第 32卷第 1期物探化探计算技术2010年 1月文章编号: 10011749( 2010) 010094 05M atlab调用 Surfer自动化实现电法 等值线图的批量绘制王 鹏, 梁 爽, 李文刚710054) ( 煤炭科学研究总院 摘 西安研究院, 陕西 西安要: 使用手工操作 Surfer绘制大量电法等值线图, 因存在重复劳动、 效率低等特点, 需要研发自动成图工具代替枯燥的手工劳动。 Surfer软件自 7 0及之后版本, 增加了自动化功能, 支持 . Surfer的二次开发。M atlab支持 Act iv eX 接口编程, 能成为客户端访问、 控制其他支持 COM 组件 的 W in dow s应用程序。这里引入 M atlab的 GU I图形用户接口技术编制用户界面, 在主程序里调 用 Surfer自动化对象成为服务器, 使之受控于 M atlab, 实现了电法等值线图自动化, 批量处理软 件的开发。 关键词: MATLAB GU I Surfer自动化; 等值线图 ; 中图分类号: T P 311 文献标识码: A 生成等值线图和地貌立体图等。从 Surfer 7开始,0 前言在地球物理勘探工作中, 必然涉及长期的图件 绘制工作, 随着计算机 技术以及应用 的演进和普 及, 各种商业化绘图工具快速面市, 计算机制图已 在地质工作中受到广泛应用。

利用计算机绘制地 质图件, 可以大大减轻工作量, 提高工作强度。同 时, 利用计算机可以对原始数据进行筛选、 处理, 便 于数据的修改, 而且使绘出的图件更准确、 减少出 现人为的偏见。在很多的商业化绘图工具中, 美国 GOLDEN软件公司的 Surfer软件, 以其便捷、 直观、 快捷、 安装简洁、 对平台要求低等优点受到广大用 户的追捧, 成为普及度最高的绘图工具之一[ 1~ 5]软件提高了手动 化科技 ( Autom ation ), 支持 surfer 的二次开发。目前, 最新的版本是 2002 年发布的 Surfer 8 。在 Surfer8中提供了包含克里格法、 距离 倒数加权法、 径向基函数等多种插值方式, 并配以 丰富的参数选项, 以满足不同类型特征的数据的要 求。 在制图过程中, 需要确认数据文件传输模式、 数据位置、 网格化方法、 网格化参数、 等值线间隔、 填充、 颜色等, 以及输出文件的文件名和输出位置 等参数。这些参数均必须手工一一设定, 对于单条 或大量的成图任务尚能应付, 若成图数量众多, 则 需长期的点击、 输入等重复劳动。这样手工成图就 需要花费大量的工作时间, 这虽然束缚了人力, 而 且或许产生误操作。

因此, 对研究怎样控制 Surfer软件, 使之能按 照预先给定的参数, 实项目: 煤炭科学研究总院西安研究院自筹资金项目捐助 ( 2008XAYQN 004) 收稿日期: 2009- 07- 09 改回日期 : 2009- 07- 211期 为重要。王鹏等: M at la b调用 Surfer自动化实现电法等值线图的批量绘制 的 Autom ation技术[ 6~ 12]95。1Surfer自动化技术从 Surfer 7开始, 软件提高了自动化技术 ( Au2 M atlab语言的 GU I和 A ctiveX 技术GU I是 G raph ica l U ser Interface 的 缩写, 代表 MATLAB 的图形用户接口技术。用户接口是指用 户和计算机之间, 或者用户和计算机程序之间进行 通信的地点和推动交互的方式。

surfer怎么画等值线_画根轨迹线中阻尼比线是什么_线描画范画

总的来说, 它是计 算机和客户之间交互信息的方式。图形客户接口 是一个整合了比如窗口、 图标、 按钮、 菜单和文本等 图形对象的用户接口, 选中或者激活这种对象, 通 常会导致某个动作或差异出现。最常见的激活方 法是用鼠标或其他定点设备, 来控制键盘上指针或 光标的移动, 并借助按下键盘按钮, 通知应用程序 选中一个对象, 或要执行其他的操作。使用 MAT LAB的 GU I技术, 能推动工具用户界面的研发[ 13 ]tom ation), 支持 surfer的 二次开发。这就是说, 我 们能使用 Surfer的 Script脚本语言系统, 通过程序 代码, 实现对 Surfer软件的控制。 Scripter平台由 Surfer 软件自身 携带, 在安装 Surfer后, 即 能调 用该平 台进 行编 程。其 语 法与 VB语言类似, 在 安装 后的 Surfer 目录 ( ~ Golden Softw are \Surfer8 \Samp les) 中, 有为演示 Surfer自动 化功能的代码示例, 执 行这种代码, 会发现 Surfer 自启动, 然后迅速手动成图的例子。 要深入 Surfer自动化编程, 必须先知道 Surfer 软件的对象、 事件和方式。

Surfer将其图形及各组 件定义为对象, 对象拥有各类技巧和属性。方法是 可以在对象上执行, 或由对象执行的操作, 属性是 一系列决定对象状况的变量, 事件是因为对象的状 态被改变而造成的通知指示, 通常会 触发这些操 作。 Surfer 8 0 提 供 了 多种 不 同 种 类 的 A ctiveX . Autom ation对象, 它们几乎包括了 Surfer 8 0的所 . 有功能。在安装 Surfer 8 0之后, 开发人员就可以 . 在编译器中构建、 调用它 所提供的 Autom ation 对 象, 用以实现相应的数据可视化功能。 Surfer采用层次化 的方法来组织其自动化对 象, 其中应用程序对象 ( App lication Ob ject) 处于最 高层, 所有其它对象都是直接或间接通过应用程序 对象派生而来, 各级对象的获得必须逐级进行, 在 Surfer软件的自动化帮助里, 有对象层次 关系图。 常用的自动化对象有: Applicatio n A exs、 、 Docum ent 、 M apF ra e P lotD ocum ent Shapes W ksDocum ent 等。

m 、 、 在所有的 Surfer自动化对象中, App lication对象是 最基本的, 它位于这些层次结构的最根部, 代表了 Surfer应用程序实例。 Shapes Collection 是所有绘 图对象的集合。每一个自动化对象都有其自己的 属性和技巧, 如: Aex s Co llect io n就 有 App lic ation 、 Count和 Parent 三种属性和 Item 一种方法。属性 描述的是对象的状况, 方法是对象的执行功能。在 外部程序中, 借助于给属性赋予不同的参数值和利 用对象的方式来执行各类操作, 就可以实现 Surfer。ActiveX 是 M icroso ft 提 出 的 一 组 基 于 COM ( C omponent Ob ject M ode, 部件对象模 型 ) 的技术 l 集, 它与准确的编程语言无关。其初衷是在 W in dow s系统的统一管控下, 协调不同的应用程序, 准 许很多应用程序之间互相交谈、 相互控制。它借助 在二个程序间安排对话, 达到一个程序控制另一个 程序的目的。其过程为: 首先一个应用程序决定引 发 Act iv eX Autom ation操作, 这个应用程序自动成 为客户端 ( C lien t) , 被它调用的应用程序成为服务 器 ( Server)。

画根轨迹线中阻尼比线是什么_线描画范画_surfer怎么画等值线

服务器收到对话请求后, 决定暴露哪 些对象给客户端。在给定时刻, 由客户端决定实际 使用这些对象, 然后 Act iv eX Autom a tio n命令被传 给服务器, 由服务器对命令做出反应。客户端可以 持续地发出命令, 服务器忠实地执行每一条命令, 最后由服务器提出终止对话[ 13]。 Act iv eXMATLAB 支 持 二种 A ctiv eX 技 术:控制容器; ! Act iv eX Au tom ation A ctiveX 控制容 。 器可以将不同的 A ct iv eX 控件集成在一个应用中, 而 Act iv eX是一种允许一个应用程序 ( 客户端 ) 去 控制另一个应用程序 ( 服务器端 ) 的协议。因此, 它允许 MATLAB 控制其他 A ctiveX组件, 或者被其 它 Act iv eX控件所控制。在本课题中, MATLAB 是 客户端, 而 Surfer是服务器端, 通过 Autom at ion, 客 户端执行 Surfer命令并与其进行数据交换, 以超过 调用、 控制 Surfer的目的。96物探化探计算技术32卷若修改为 srf indow statem in i ized 则是使窗口 w m ,3 代码实现使用 MATLAB 语言的 GU I技术可推动工具界 面。

MATLAB提供了诸 多 GU I对 象, 这些 对象是 用户界面的组成主体。制作界面的方式在其他书 籍、 文献中多有介绍, 此处不作过多叙述。其中的 难点是参数传递和数组对象的标志, 参数传递问题 是由控件对象的 callb ack执行方式导致, 因为当控 件事件被触发时, 其 ca llb ack代码在存储中独立空 间执行, 不能直接获得主程序中的变量值, 最好的 解决方法是使用对象的 userdata 属性来实现数据 共 享, 即将 需 要传 递 的数 据 设置 为 某个 对象 的 userdata 然 后 在 callback 代 码 里 获 取 该 对 象 的 , userdata 。拥有 userda ta属性的对象有屏幕、figure 、 axes lin e等。此时便引发了另一个问题, 即对象的 、 标识, 一般以对象的 tag 属性对其进行标志, 比如 对某条曲线, 在主程序里给其设定某个 tag 这样在 , callb ack里, 就可使用 findob j函数查找具有该 tag 属性的对象, 从而获得该对象句柄了[ 14 、15 ]最小, 设置为 srfw in dow stateno r al表示窗口为默认 m 大小。

Surfer的默认路 径为其安装路 径, 因 此, 当涉 及到文件的写入、 存放时, 若文件不存在于该默认 路径, 则在文件前, 需添加完整模式, 或直接将文件 路径修改为默认模式, 代码如下: set( sr, ?DefaultF ileP ath # , F ileP ath) ; % F ile f P ath为默认模式; 图形窗口屏幕默认为即时刷新, 即画笔及时刷 新图形的修改, 将其设定为不刷新的代码如下: set( sr, ? ScreenUpdat ing# , 0 ); % 设置为 1 即 f , 表示实时刷新; 禁止升级屏幕, 可以使你的脚本非常迅速地执 行。在执行一系列导致屏幕刷新的操作的之后, 关 闭屏幕升级可以大大提高自动化性能。 至此, 已完成 Surfer的初始设定, 下一步使用 srf的 Gr idData方法推动数据的网格化 Exc lu sionF ilter , Dup ethod xDupT o, yDupT o, NumCo ls N u M , l l , mRow s, x in x ax, yM in, yM ax, M , M A lgorith m, ShowRepor, SearchEnable SearchNu t , m Sectors, SearchRad1 , SearchRad2 SearchAng le Search inData SearchDat , , M , aPerSec, SearchM axEmpty, F aultF ileNam e, Break t F ileN am e An isotropyRatio An isotropyAng le IDPow , , , er I Smooth ing, K rigT ype K rigDriftT ype K rigStd , D , , DevGrid K rigV ario gram, MCM axResidua, MCM axIte , l ratio ns M C InternalT ension M CBoundaryT ensio n MC , , , Relaxa tio nF actor ShepSm oothF actor ShepQuadratic , , N e iors, Shep e ig htin gNe ig hbors W , ShepRange1 , ShepRange2 Regr axXO rder R egr axYOrder Re , M , M , gr axT ota l rder RBBasisT ype RBRSquared Out M O , , , Grid Ou tFm , Search axData, KrigStdD evFor a, , t M m t Data etric LocalP olyO rder L oca lPo lyP ow er T rian M , , , g leF ileN a e) ; m 其中 invoke表示调用 srf的 GridData方法; Data F ile 表示待网格化的数据文件名; xCo l yCo 、zCol 、 l 表示网格化的数据列; 其余分别代表网格化的各类 参数, 具体意义可参考 Surfer自动化帮助。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-127023-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 卢艳
      卢艳

      而日本每年添置数艘先进战舰

    • 李佩佩
      李佩佩

      建国前后一穷二白美日苏也没打赢中国

    • 吴花枝
      吴花枝

      十年动乱时受的教育

    热点图片
    拼命载入中...