收藏 分享(赏)

基于surfer.doc

上传人:cjc2202537 文档编号:212392 上传时间:2018-03-24 格式:DOC 页数:10 大小:99.50KB
下载 相关 举报
基于surfer.doc_第1页
第1页 / 共10页
基于surfer.doc_第2页
第2页 / 共10页
基于surfer.doc_第3页
第3页 / 共10页
基于surfer.doc_第4页
第4页 / 共10页
基于surfer.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、基于 Surfer2006 年第 7 期计算机系统应用基于 SurferAutomation 对象技术的等值线自动绘图方法研究与应用ResearchandApplicationofAutomaticDrawingIsolineBasedonSurferAutomationTechnology贾宏元赵光平孙银川纪晓玲沈跃琴(宁夏气象防灾减灾重点实验室,(中国气象局兰州干旱气象研究所(宁夏气象台 750002)(宁夏气象防灾减灾重点实验室,(宁夏气象台 750002)宁夏气象台 750002)730020,宁夏气象台 750002)宁夏气象台 750002)摘要:介绍了基于 Automation

2、对象技术的程序控制 Suffer 自动绘图的方法,并在Delphi 环境下引入 Suffer 对象,成功实现了客户和服务器程序的无缝链接,为开发等值线绘图软件提供了一种简捷,高效的途径.关键词:Automation 等值线 Suffer 自动绘图 Delphi1 引言Sur 是美国 GoldenSoftware 公司研制开发的基于 Windows 操作系统的二维和三维科技绘图软件,其不仅提供了丰富的网格化和插值方法,还具有强大的绘制等值线等矢量图能力,如果能将其无缝地链入客户应用程序,将会为我们提供一种简便,快速的开发专业绘图软件途径,具有非常强的实用性.为此,作者研究了 Sur8 的 Aut

3、omation 技术,实现在后台运行 Surf.er 服务器程序,完全摆脱了 Suffer 的主程序界面,通过Delphi 编程在客户应用程序中实现了等值线图快速自动绘制功能.2ActiveXAutomation 及其对象模型2.1ActiveXAutomation 技术ActiveXAutomation 是 Microso 竹公司提出的一种技术方法,用于公共的 Windows 开发平台下应用程序之间的交互,该技术允许通过外显的对象由一个 Windows 应用程序(客户控制端)控制另一个 Windows 应用程序(服务器端), 即被调用的程序外显自身的对象体系结构,供调用者引用.从 Suffe

4、r7.0 版开始,Suffer提供了对 Automation 技术的支持,为通过高级语言程序控制 Suffer 自动绘图提供了编程接口.用户通过使用这项技术,可在自己开发的客户应用程序中,方便地引入 Suffer 的 Automation 对象,通过对象编程,在客户程序中轻松地实现 Suffer 强大的图形绘制功能.目前最新版本是 2002 年 2 月发布的 Suffer8.0.2.2sur 对象模型Suffer 以层次结构组织对象,并提供了近 60 种不同种类的 ActiveXAutomation 对象供外部应用程序调用,它们几乎覆盖了 Surfer 的所有功能.限于篇幅,本文只简单介绍几个

5、常用的 Suffer 对象主要的属性和方法.Application 对象:Suffer 对象模型的最顶层是 Application 对象,即 Suffer 本身,其他对象均为 Application 对象的子对象,都要直接或间接通过 Application基金项目:宁夏回族自治区科技攻关计划项目“宁夏暴雨型地质灾害风险预报研究“ 资助AppliedTechnique 应用技术 21计算机系统应用 2006 年第 7 期对象来获得,对象的获得需一层一级地进行.在 Del?phi 中创建 Application 对象的方法是:SurferApp:=CreateoleObied(Surfer.App

6、lication):若 Sur 已启动,可通过SurferApp:=GetAdiveOleObied(Sufer.Application)来获取 Application 对象.创建 Application 对象以后就可以使用这个对象所包含的各种方法和属性来实现对 Surfer 的调用.访问次级的对象,需要 Application 对象提供的 2 个重要的集合 Documents 和 Windows 来实现.DocumentsColledion 对象:是一个基类对象,不能直接使用.可以通过已定义的 SurferApp 对象获得:如代码 Documents=:SurferApp.Documents

7、:从其可派生出具体的 Document 对象,如 PlotDoc?ument,WksDocument 等.获得 DocumentsColledion对象后,通过此对象“Add“方法(Method)我们即可获得更深一层的对象.如可以通过以下代码增加一个Plotdocument 对象:Plot=:Documents.Add(srfDocPlot):该对象包括 DrawBlipse,DrawLine,DrawText,Print,Save,SaveAs 等方法 .Shapes 对象:绘图元素对象的基类.Sur 中的绘图元素很多,如坐标轴,等值线,色标,网格线,底图,文本等.3Sur 相关的边界文件格

8、式Sur 支持大量的边界文件格式,如 GoldenSoftwarer 的白化文件 (.BLN),地图边界文件(.BNA),PlotCal 文件 L(.PLT)等文本文件,另外还支持如形文件(.shp),AUTOCAD 的绘图文件 (.DXF),ARCINFO 的输出格式文件(.EO0),图元文件(.WMF), 增强图元文件(.EMF),位图(.Bmp),压缩位图(.JPG)等许多外部文件.文本文件易于编辑,导入方便,因而应用较广.以下主要对 GoldenSoftwarer 的三种文本边界文件格式加以说明.这 3 种格式的文件都可以保存点,线,面的信息,而 PlotCall 文件更能够保存文本,

9、线型,颜色等信息,非常适合绘制复杂图形.3.1 白化文件格式N,Flag 一数据点(行) 数,标志位22 应用技术 App1iedTechniquex1,YI 一第一个数据x2,Y2 一第二个数据Xn,Yn 一第 n 个数据3.2 地图边界文件格式第一 ID,第二 ID 一数据个数,标志位x1,YI 一第一个数据x2,Y2 一第二个数据Xn,Yn 一第 n 个数据3.3PlotCall 文件格式PlotCall 文件使用绘图命令保存信息,约有 1O 个绘图命令,常用的有下列 5 个:MA:MoveAbsolute,绝对移动命令,将画笔从当前位置移动到指定的位置;PA:PlotAbsolute,

10、绝对绘图命令 ,从当前位置绘图至指定的位置:PS:P10tString,绘制文本字符串命令 ,在指定位置绘制一个指定高度和旋转角的文本;SP:SeledPen,选择画笔,可选 115 号画笔 iSS:SeledSymbolSet,选择字符集.4 空间内插方法等值线绘制优劣的关键点之一是空间内插法的选取,目前较为成熟的插值法有许多种,根据其基本假设可分为几何方法,统计方法,函数方法和物理模型方法等:根据数学本质又可分为局部函数法和逐点内插法2 种.对于空间数据的内插究竟是否存在一种最优的内插法或者说对于某一特定空间变量是否存在某种最优的内插法? 研究认为在不同的时空尺度内 ,每个方法对不同变量估

11、计的误差是不一样的.对于空间数据的内插,一种“包插百量“ 的最优空间内插法是不存在的:对于不同的空间变量,在不同的地域和不同的时空尺度内所谓的“最优“ 内插法是相对的 .在台站分布密集的区域不同空间内插方法之间差异较小,在台站分布稀疏的区域则差异较大 l6】.以下对常用几种空间内插方法及其优劣性作以简介:4.1 反距离加权插值法以数据点与网格点的距离平方倒数作为权值,距离越大权值越小,反之则越大.距离倒数加权法的优2006 年第 7 期计算机系统应用点是算法简单,易于实现.不足是没有考虑数据场在空间的分布,往往会因为采样点的分布不均而使得估值结果产生偏差,也会漏估其最大值,最小值.4.2 最小

12、曲率法就是构造出具有最小曲率的曲面,使其穿过空间场的每一点,并尽可能使曲面变得光滑.最小曲率法主要考虑曲面的光滑性,因此插值的成果容易失真.4.3 三角剖分线性插值法通过将数据点用线相连,在平面中形成许多三角形,并使三角形间互不穿切.这样整个空间场就可以看成由这些小三角平面构成,每个三角形的顶点都由样品点所代替.插值时,将落在小三角平面投影中的网格点用三角平面上的值来代替.这种方法是精确插值,较为忠实原始数据点,插值结果落在最大值与最小值之间.但由于过分依赖原始数据,由此绘出的等值线生硬机械,折线多,不平滑.4.4 克里金插值法是一种求最优,线形,无偏的空间内插方法.在充分考虑观测资料之间的相

13、互关系后,对每一个观测资料赋予一定的权重系数,加权平均得到估计值.该法的最佳适用条件是空间变量存在着空间相关性】.Sur8.0 提供了反距离加权插值法,克里金插值法,自然邻点插值法,最近邻点插值法,多元回归法,线性插值三角网法,局部多项式法,移动平均法,径向基函数法,改进谢别德法,最小曲率法等 12 种数学网格化模型,均配有相关的参数,可根据数据源情况和制图要求,科学地选择数学模型,灵活地进行参数设置,从而得到符合要求的等值线图.5 技术实现与关键代码本实例为作者采用 Delphi 开发的一套气象要素等值线自动分析系统,SufferAutomation 技术应用流程如图 2 所示.主要实现代码

14、如下:(已在 Delphi6.0 和Sur8.0 下调试通过)uses,comobi;/单元引用sufferapp,:olevarianti/OLE 变量声明begintrysufferapp:=GetAdiveOleObjed(Suffer.Application):/获取 Sur 应用程序对象exceptonExceptiondo/Suffer 未启动sufferapp:=CreateOleObjed(suffer.application);/tj 建 Suffer 应用程序对象end;sufferapp.Visible:=faIse:/隐藏 SUr 应用程序主窗 1:3SUfferapp

15、.GridData(DataRle:=maindir+datarainfal1.txt“,xCoI:=2,yCol:=3,zCoI:=4,Algorithm:=2,DupMethod:=2,xMin:=104.29738719,xMax:=107.64861281,yMin:=35.2347837066,yMax:=39.3814162934,ShowReport:=faIse,SearchEnable:=True,OutGrid:=maindir+datarainfal1.grd):/进行 Kriging 网格化插值/参数 DataFile:输入离散点数据文件/Algorithm:网格化方法

16、:参数值=2 表示采用 Kriging方法/DupMethod:消除重复点的方法;参数值=2 表示要消除所有重复点/xMinyMax:网格化区域llShowRepod:是否输出报告llSearchEnable:是否使用所有数据/OutGrid:输出 Grid 格式文件plot:=Sufferapp.documents.add(1);/添加 Plot 文档对象Shapes:=plot.shapes:/获取绘图元素对象集合实例MapFramel:=Shapes.AddContourMap(Grid?FileName:=maindir+datarainfal1.grd);/据 Grid文件建立等值线

17、对象ContourMap:=MapFrame1.Overlays.Item(1):/建立等值线对象实例ContourMap.SmoothContours:=4;/等值线平滑ContourLevels:=ContourMap.Levels;/获取等值线等级对象实例ContourLevels.AutoGenerate(MinLeveI:=0,MaxLeveI:=100,IntervaI:=20);/设置绘图参数ContourLevels.SetLabelFrequency(Fimtlndex:=1,Num?berToSet:=3,NumberToSkip:=1);/设置标注参数App】iedTec

18、hnique 应用技术 23计算机系统应用 2006 年第 7 期ContourLevels.Ioadfile(maindir+datarainfalI.1vI);/装载色标等级文件ContourMap.FillContours:=True/填色ContourMap.ShowColorScale:=True/显示色标ContourMap.ColorScale.IefI:=6.20:/显示色标位置MapFrame2:=Shapes.AddBaseMap(Import-FileName:=maindir+datanxbn.bin):/据 bin 文件建立基面图对象postmap.LabelPos:

19、=4:postmap.Symbo1.Size:=O.05:postmap.LabelFont.Face:=隶书:Textl:=Shapes.AddText(x:=4.0,y:=2.7,Text:=宁夏月降水量图);/增加文本/设置坐标轴(以下代码略).I.图 1SurAutomation 技术应用流程BaseMap:=MapFrame2.Overlays.item(1):/获取基面图对象实例BaseMap.fil1.Pattern:=“Crosshatch:/选择填图模式BaseMap.fil1.forecolor:=clwhite;/对边界以外填色MapFrame3:=Shapes.AddP

20、ostMap(DataFileName:=maindir+,datanxstation.dat,xCol:=2,yCol:113,LabCol:=1,SymCol:=4);/建立张贴图对象postmap:=mapframe3.Overlays.item(1);/获取张贴图对象实例/设置标签,符号,字等位置,大小24 应用技术 AppliedTechniqueI.6 结束语通过实际运行表明,该方法现实可行,能够满足业务化的需求,实现方法简捷,图形优美,线条光滑,同时也为今后开发自动化绘图系统提供了一个可供参考的方向.参考文献?1 杨朝辉,党立华,基于 SurAutomation 技术的三维立体渲

21、染图的绘制J,海洋测绘,2003,23(4):2628.2GoldenSoftware.SurferAu-tomationHelp.Eledricdoc-ument.2002.3 熊文兵,用 SUfer7.O 绘制气象等值线图J,广西气象,2003,24(3):43-45.4 唐建光,赵连锋,郑圻森,数据可视化中的 Delphi 与SUr 接口技术J,计算机应用,2002,22(7):127128.5 冯锦明,赵天保,张英娟,基于台站降水资料对不同空间内插方法的比较J,气候与环境研究,2004,9(2):262.6 范银贵,空间插值方法在绘制降水量等值线中的应用J, 水利水电科技进展,2002,22(3):48.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报