APP下载

基于MapGIS组件技术实现等值线平面图极值点的标注

2013-10-29龚红蕾刘俊长师淑娟张亚东

物探化探计算技术 2013年5期
关键词:等值线图弧段等值线

龚红蕾,刘俊长,师淑娟,张亚东

(河北省地球物理勘查院,河北 廊坊 065000)

0 前言

等值线平面图是物化探成果最主要的一种表达方式,如地球化学图、视极化率等值线平面图、△T等值线平面图等,为更详细地反映物化探参数的含量及其分布特征,这类等值线图件通常需要标注极值。目前在常用的等值线图制作软件中,具有极值标注功能的有地调局发展中心的GeoExpl、新疆金维的GeoIPAS等,但这些软件制图编辑功能相对较弱,使用起来感觉不便。MapGIS具有强大的制图编辑功能[1],其图形文件已成为地矿行业最主要的标准格式[2],但其等值线图没有极值标注功能。为了实现MapGIS等值线图极值点的标注,作者利用其组件技术及特有算法,在VB环境下实现了MapGIS等值线图极值点的自动标注,为广大地质工作者利用MapGIS制作内容齐全的等值线图,提供了一个有效途径。

1 MapGIS组件技术简介

组件技术是一种面向对象的软件开发技术,它把对象及其数据和方法进行了封装,主要包括动态链接库(DLL)和Active控件(OCX)文件。在组件技术框架下,人们开发出功能各异的组件,然后将它们进行适当的组合,实现各种复杂的应用。

为更好地利用MapGIS进行二次开发,武汉中地公司在该套软件中提供了一系列的组件[3],如基础组件 MapGISBasCom1.dll、图形显示组件MapGISDspCom.dll、图层管理组件 MapGISLayerCom.dll等。采用Visual Basic语言利用 Map-GIS组件进行二次开发的方法步骤如下[4-6]。

(1)从Visual Basic的Project(工程)菜单中选择References(引用),References对话框出现后,选中复选框中所需的类型库,如MapGISBasCom1 1.0Type Library。

(2)声明和为对象分配内存空间。如

(3)使用对象的方法、属性。

如:取点工作区中点对象的数目

2 基本算法及主要实现

2.1 基本算法

该算法的基本原理,是所要标注的极值点包含在等值线图上每一个最小闭合区中,为叙述方便我们将最小闭合区称为极值区。求取落在极值区内所有点的极值和点位坐标,根据圈闭极值区的等值线的高程值,判断所要标注极值是极大值还是极小值,按判断结果进行标注。对所有的极值区进行上述处理,从而完成整张图的极值点标注。

具体算法是首先读入原始数据,依据点位坐标形成点工作区PntObj,将观测值与相应的点进行属性挂接。调入观测值的等值线区文件,挑选包含极值的等值线区即上述的极值区,并形成新的工作区MyregObj。将PntObj与MyregObj进行点对区的相交分析,结果存入点工作区KongJianPntO-bj中。该点工作区中每个点的属性将包含所在极值区的ID和观测值,求取KongJianPntObj中ID值相同点的观测值属性的极大值和极小值,并形成极大值和极小值数组,该数组中包含极值区的ID及极值点的坐标。依据极值区的ID提取包含该区的等值线,将等值线的高程值与极值数组中的极值进行比较,判断所要标注极值的属性。如果是极大值,则标注极大值的子图符号和相应的极值注释;否则标注极小值的相关内容。处理完所有的ID值,标注工作即告结束。算法流程见图1。

2.2 主要实现

本算法中的核心算法是挑选极值区到极值区工作区、点对区的相交分析和依据ID提取所圈闭的极值区的等值线的高程值,详细说明如下。

2.2.1 挑选极值区并形成极值区工作区

为挑选极值区,首先应了解极值区的特点。极值区首先是闭合的独立区,其内部不能叠合其它的区。图2显示了等值线图中闭合区的类型,共有四种类型的闭合区,它们均由1圈(单环)弧段圈闭,但第4类型不是需要挑选的极值区,显然由一圈弧段圈闭的闭合区不完全是极值区。从图2看,1类至3类型的闭合区是我们要挑选的极值区。观察圈闭闭合区的弧段数,类型1由一条弧段圈闭,类型2由二条弧段圈闭,类型3由三条弧段圈闭,类型4由四条弧段圈闭。从以上分析可以看出由1条至3条弧段构成的单圈弧闭合区是我们所要的极值区,主要代码如下。

图1 算法流程图Fig.1 Algorithm flow chart

图2 闭合区类型示意图Fig.2 Diagram for the closed section types

2.2.2 点对区的空间相交分析[7]

点对区的空间相交分析是地理信息系统的特有功能[8-9],能够把空间上与特定区重合的点从众多的点中分离出来,所提取的点同时具有点和重合区的属性[10],为从不同的极值区内求得观测值的极值提供了方便。

2.2.3 提取所圈闭极值区的等值线的高程值

为确定所要标注的极值区内的极值是极大值还是极小值,需要提取圈闭该极值区的等值线的高程属性值,由该属性值与求得的极值进行比较,从而确定所需标注极值的特性。极值点位于闭合区内,离极值点最近的线就是圈闭极值区的等值线,该等值线必须是由工作区提取的。

3 程序使用及算例

3.1 数据准备

(1)原始数据:原始数据存放在EXCEL工作薄的第一个工作表中,数据格式如下:

第一行为字段名:横坐标,纵坐标,元素1、元素2、…、元素m。

以下各行为相应字段的数据,其中横坐标和纵坐标的单位为与制作等值线图的横坐标和纵坐标的单位一致。

(2)异常区文件:是由MapGIS的空间分析模块形成的等值线区文件,并且在绘制等值线时选择数据范围与原始数据一致。

3.2 程序使用及算例

程序界面如图3所示,如选中“保存粘点文件(含属性)”,程序将提示保存原始数据点文件,该文件已挂接点位及观测值等属性。

(1)点击“开始”按钮,开始计算,见图3。

(2)弹出对话框,提示“打开原始数据工作薄”,打开原始数据EXCEL文件。这里如果打开的是网格化的点位数据,在标注极值时将标注网格化的数据,可灵活选择。

(3)依次提示“开始 XX 元素的计算!”,见图4。点击“确定”,弹出“打开XX元素异常区文件”对话框,打开异常区文件,开始计算。

(4)所有元素计算完成后,退出程序界面。图5是河北省某1∶200 000幅Fe2O3的计算实例。

图5 计算实例Fig.5 Calculation example

4 结论

该程序通过构造MapGIS点数据工作区,利用点与挑选的等值线极值区进行点对区的相交分析,提取出极值区内的数据。应用求取的极值与极值区边线的高程值,进行比较确定所标注极值的性质,进而完成计算。该程序解决了MapGIS绘制等值线图进行极值自动标注的问题,为使MapGIS制作的物化探等值线图更全面地表达观测值的特性提供了方便,如地球化学图通常要求标注极值,有了本程序可更好地发挥MapGIS的作用。

[1]中地软件丛书编委会.MAPGIS地理信息系统参考手册[M].武汉:武汉大学出版社,2002.

[2]刘俊长,龚红蕾,刘军恒,等.基于 MapGIS的彩色平剖图的自动绘制[J].物探与化探,2009,33(5):592-594.

[3]武汉中地信息工程有限公司,北京中地时代软件工程有限公司.MAPGIS组件开发手册[M].武汉:武汉大学出版社,2002.

[4]杨本伦.Visual Basic开发技术大全[M].北京:清华大学出版社,2010.

[5]刘俊长,龚红蕾,陈军威,等.基于MapGIS组件技术实现化探异常参数的计算[J].物探化探计算技术,2012,34(1):112-115.

[6]武汉中地数码科技有限公司,北京中地时代软件工程有限公司.MAPGIS二次开发培训教程(VB)[M].武汉:武汉大学出版社,2004.

[7]刘俊长,龚红蕾,张玉领,等.用MapGIS实现区域化探数据的空间分析[J].物探与化探,2008,32(6):690-692.

[8]郭仁忠.空间分析[M].武汉:武汉测绘科技大学出版社,1997.

[9]王家耀.空间信息系统原理[M].北京:科学出版社,2001.

[10]吴信才.MAPGIS地理信息系统[M].北京:电子工业出版社,2004.

猜你喜欢

等值线图弧段等值线
基于改进弧段切点弦的多椭圆检测
钢丝绳支撑波状挡边带式输送机物料通过支座的轨迹研究
一种基于IDW 的等值线、等值面前端生成方法
基于规则预计格网的开采沉陷等值线生成算法*
交通运输网络的二叉堆索引及路径算法优化
电弧增材制造过程的外形控制优化
基于GeoProbe地球物理平台的软件等值线追踪算法研究与软件开发
如何来解决等值线问题
“等值线”的数学特征及其应用
Surfer软件在气象资料自动成图中的应用研究