基于MAPGIS的钻孔柱状图绘制软件的编制.pdf
第26卷 第1期 2004年2月 物探化探计算技术 Vol126 No. 1 Feb.2004 COM PU T I N G TECHN I QU ES FOR GEOPHYSICAL AND GEOCHEM ICAL EXPLORA T I ON 收稿日期2003- 09- 02 文章编号10011749200401008506 基于MA PGIS的钻孔柱状图绘制软件的编制 解华明,陈守余 中国地质大学 数学地质与遥感地质研究所,湖北 武汉 430074 摘 要绘制钻孔地质柱状图是地质工作中的一项重要工作。 在计算机没有普及时,主要是通过 手工绘制完成的。 随着计算机在地质学中的广泛应用,地质工作者就如何利用计算机高效快速地 绘制钻孔地质柱状图进行了很多尝试,如使用一些商业绘图软件或编制了一些软件,但往往不尽 人意。基于MA PGIS开发一个钻孔柱状图绘制软件,可以方便地读取数据库中的数据进行柱状 图绘制,生成图形为MA PGIS文件格式,可以在MA P IS中修改及打印。 这里介绍了MA PGIS二 次开发平台,并阐述了软件系统设计思路和关键技术的实现方法。 关键词钻孔柱状图; MA PGIS;钻孔数据库 中图分类号TP392 文献标识码 A THE PROGRAMM INGOF DRI LL INGLOGDRAW ING SYSTEM BASED ONMAPGIS X IE Hua2m ing, CHEN Shou2yu Institute of m athem atic geology and rem ote sense geology, China U niversity of Geosciences,W uhan 430074,China Abstract It is an i mportant job to draw drilling histogram in geologicalwork, which had been done by hand when the computer wasn’t w idely used. W ith the computer used in geoligical work more and more, many geologists have searched s to draw drilling histogram rapidly and efficiently such as using commercial graphical software or programm ing software them selves . Butmost of those can not be used expediently. The authorsprogram a software ofDrilling H istogram Draw ing System , which can create drilling histogram easily and expediently.The histogram can be saved by MA PGIS file ation, so that the file can be opened, edited and printed in MA PGIS system.The article introduces programm ing based on MA PGIS Interface, and specifies the design of the software. Key words drilling log; MA PGIS; drilling database 0 引 言 在我国,钻孔柱状图的绘制在八十年代以前主要是靠手工绘制完成的,不仅需要大量的人力物力,而 且成图慢、 效率低,很难满足实际生产的需要。 后来随着计算机的逐渐普及,如何利用计算机进行钻孔柱状 图的快速绘制引起了地学工作者的关注,出现了一些钻井柱状图绘制软件。但是,其中大部分软件由于其 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 功能不完善、 不易使用等问题而没被普及。同时,在国外也出现了可以绘制钻孔柱状图的商业软件。 但是,这些软件只能完成柱状图的绘制。 随着近年来基于GIS地理信息系统利用数学地质方法进行 矿产预测的应用,需要一种GIS支持的矿区钻孔柱状图绘制系统,其不仅要能绘制钻孔柱状图,而且还能 对矿区钻孔数据进行对比和数据管理,为基于GIS应用数学地质方法对矿区进行矿产预测提供数据准 备。作者基于国产地理信息系统软件平台MA PGIS,开发了一个钻孔柱状图绘制系统,现己能初步实现部 分功能。 1 MA PGIS开发平台 MA PGIS为支持用户进行二次开发,提供了完整的二次开发库,用户可以在MA PGIS平台上开发面 向各自领域的应用系统。目前,二次开发库以A P I函数、M FC扩展类、COM组件、A ctiveX控件四种方式 提供。 这些不同的开发接口提供了从最基本的读取、 保存、 更新和维护,到MA PGIS地图库的建立和漫游, 以及空间分析、 图像处理等一系列功能。开发库被封装在若干动态链接库DLL中。用户可以根据自己所 使用的开发语言和需要,调用不同的方式。 MA PGIS数据管理核心就是对工作区的操作。工作区是MA PGIS提出的一个概念,存放实体的空间 数据、 拓扑数据、 图形数据和属性数据,每个工作区都对应于一个MA PGIS数据文件。MA PGIS开发函数 库提供对工作区实施操作的一系列函数,如将工作区内容存盘,从盘上将数据装入工作区,对工作区中内 容进行添加、 修改、 删除、 检索等。 对硬盘数据的存取及虚拟内存管理等复杂繁琐的工作无需应用程序编写 者去关心,而是由MA PGIS工作区管理模块自动完成。MA PGIS将工作区分为点、 线、 区、 网、 表等五种类 型,它们的差别主要表现在所包含空间实体的类型不同。 表l 各工作区中可以包含的实体类型 Tab. 1 Types and entities ofMA PGIS workspace 工作区类型实体类型 点工作区 . W T 文件点PN T 线工作区 . WL 文件线L I N、 结点NOD 区工作区 . W P 文件线L I N、 结点NOD、 区REG 网工作区 . WN 文件线L I N、 结点NOD、 网N ET 表工作区 . WB 文件无空间实体,仅有表格记录 空间实体是MA PGIS数据操作的基本单位。在一个工作区中,一类实体可有多达 2G 的个体,每个个 体都有唯一的序号,称为实体号点号、 线号、 区号、 网号或统称记录号。 对实体数据的操作,主要依据实体 号。每个实体在工作区中都存储有对应的空间数据,拓扑数据、 图形参数及属性记录。 开发基于MA PGIS钻孔柱状图绘制软件有很多优点和方便之处,它可以得到强大的MA PGIS系统 支持,节约了开发时间并降低了开发成本。 如不用编写文档存取,直接利用MA PGIS的数据管理和数据组 织方式仍可实现文件的保存和读取。文件也可以在MA PGIS中打开,所以可以应用MA PGIS的功能,不 用编写花纹生成系统,直接利用MA PGIS生成项目花纹和岩石花纹。 2 开发工具的选择和面向对象编程 以V isual C 作为开发工具,采用面向对象技术,进行可视化编程。这样不但可以充分利用C 语言 的灵活性,且具有代码执行效率高等优点,而且还可以在VC 中灵活地调用MA PGIS中各个层面的二 次开发方法,尤其是VC 可以调用MA PGIS所提供的扩展M FC类CGisV iew , CGisEidtV iew, CPrjEditV iew。MA PGIS的扩展M FC类是MA PGIS A P I的集成,功能强大,可以实现MA PGIS在二次 开发中绝大部分方法,但它屏蔽了基于MA PGIS A P I之上开发应用程序的许多复杂性,同时在应用程序 中仍可使用MA PGIS A P I实现对底层的功能进行补充。 68物探化探计算技术26卷 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 面向对象技术是指把对象作为最基本的元素来分析问题、 解决问题。 其基本出发点是尽可能按照人类 认识世界的方法和思维方式来分析和解决问题。它从所处理的数据入手,以数据为中心而不是以服务功 能为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 3 系统设计 利用数据库接口读取标准的固体矿产钻孔关系数据库表中的数据,生成带属性的MA PGIS点文件 即钻孔点文件。在点文件中以一个点表示一个钻孔,并将钻孔以圆点显示在点工作区即地图中,点的 位置由钻孔坐标确定。 这样就可以方便地在地图中观察、 管理钻孔点,选择需要的钻井点以生成柱状图。 钻 孔柱状图是用MA PGIS提供的函数,读取用户所选点的属性记录产生相应的点、 线、 面文件而生成的。保 存该柱状图时,会被分别保存为MA PGIS的点、 线、 面文件,并可以保存为工程文件。 当用户选择了在工作 区中的几个任意钻孔点并要求生成地层层位对比图时,系统生成这几个钻孔的,以花纹表示的地层柱状 图,并让用户用线连接相同的地层。对比图仍然被保存为MA PGIS的点、 线、 面文件,也同样可以保存为 MA PGIS的工程文件。 4 系统关键部分实现方法 411 数据的读取 现在全国大部分的钻孔地质数据都要求以统一的标准关系数据库进行存储。这样做有助于节约存 储成本、 方便查询、 备份容易、 数据不易丢失等优点,成为实际生产中的首选。应用程序如果不支持直接对 这种标准的数据库进行读取,那么应用程序就没有了通用性,即用户直接对海量的钻井数据进行转换格式 也是相当困难的,并且容易出错。所以,应用程序本身必须能够读取这种标准关系数据库中的数据。作者 的程序只能支持对access3. mdb数据库的操作,并假定用户已经严格按固体矿产钻孔数据库存储了钻 孔数据。连接access数据库可通过微软DAOData A ccessObject实现,即为每个要读取数据的表建立一 个继承了CDaoRecordset的对应类,类中有和表中字段一一对应的数据成员,并使其和表中所对应的字段 数据进行交换,这样就可以通过访问类中的数据成员而访问数据库中指定表的数据了。 例如,为钻孔基本信息文件表建立一个对应的C 类,进行数据存取是这样定义的 include class CDrilcoorSet Public CDaoRecordset { public CDrilcoorSetCDaoDatabase3pDatabase NULL ; DECLARE_DYNAM ICCDrilcoorSet CString m_eng_no; CString m_sect_no; 781期解华明等基于MA PGIS的钻孔柱状图绘制软件的编制 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. ⋯⋯⋯⋯ 定义对应字段的变量。由于版面有限,此处省略了一些定义,下同 public virtual CString GetDefaultSQL ; virtual void DoFieldExchangeCDaoFieldExchange3pFX ; } I M PLEM EN T_DYNAM ICCDrilcoorSet,CDaoRecordset CDrilcoorSet CDrilcoorSetCDaoDatabase3pdb CDaoRecordsetpdb { m_eng_ n _T‘‘‘‘ ; m_sect_ n _T‘‘‘‘ ; ⋯⋯⋯⋯ m_nFields 26; 该变量为从CDaoRecordset继承来的,指定表中字段数 对变量进行初始化 } CString CDrilcoorSet GetDefaultSQL { return_T ‘‘[ 钻孔基本信息文件 ]‘‘ ; 指定默认表,如果程序打开该类而没有给出表名时,就打开该默认表 } void CDrilcoorSet DoFieldExchangeCDaoFieldExchange3pFX { pFX- SetFieldTypeCDaoFieldExchange outputColumn ; DFX_TextpFX,_T “[eng _nor]“,m_eng_no ; DFX_TextpFX,_T “[Sect _no ]“,m_sect_no ; ⋯⋯⋯⋯ 进行数据交换 } 值得注意的是, DAO不支持对access2000进行操作,所以用户在使用时必须将access2000数据库转 换为老版本的数据库。数据读取也可以用其它的数据库接口实现,如ODBC, M S ODBC, OLE ADO等。 4. 2 钻孔点文件的生成 钻孔数据在固体矿产钻孔数据库中以十五个表的形式存储,在这些表中,只有 “钻孔基本信息文件” 表 是一个钻孔对应一条记录,其它表中都可能是一个钻孔对应多条记录。而在MA PGIS点文件钻孔点文 件中,一个点只能对应一条记录。为了将每个钻孔点与绘制该钻孔点的柱状图相关数据都保存在与该钻 孔点所对应的那条记录上,作者采用了这样的方法,即先用与 “钻孔基本信息文件” 的字段属性结构相同的 属性结构定义钻孔点记录的属性结构;再在其后添加MA PGIS的扩展字段属性结构表格型属性结 构,存储一个MA PGIS表格文件3. WB文件 , 并在表格文件中存储从数据库表中查询得到的,与钻孔 对应的多条记录。 表格型扩展字段属性结构可以这样添加 CF IELD_HEAD fldEntry; EXT_GEOL为字段名 lstrcpyfldEntry. fieldname, “EXT_GEOL” ; fidEntry. fieldtype TABLE_TYPE; fidEntry. m sk_leng 5; 88物探化探计算技术26卷 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. m_DrilPntA i为钻孔点工作区号 _AppendStruFldm_DrilPntA i, PN T, 1, 生成钻孔点文件显示为钻孔图的过程,实际上就是从数据库中读取钻孔数据,并在点工作区中写入 数据,再将数据库中不同表中属于同一钻孔的数据写入钻孔点文件中一个点记录的过程。在该过程中,可 对数据库进行只读访问,从而保证了数据库不被破坏,钻孔图的比例尺由用户指定。 因MA PGIS的用户坐 标单位为毫米,钻孔坐标为方里网坐标单位m , 所以在钻孔点文件中,钻孔的位置为 方里网坐标1000用户指定比例尺 钻孔点文件可以保存为MA PGIS点文件,生成柱状图时只用打开该文件即可,而不用频繁地打开数 据库,这样可以节约大量运算。而且,该点的文件可以在MA PGIS下面直接修改或读取。 4. 3 钻孔柱状图的生成 先建立点、 线、 面三个工作区,再读取钻孔点文件中用户所选择点的点记录,然后调用MA PGIS的加 点、 加线、 加区函数分别往这三个工作区中添加文字、 线和填充花纹即可,即利用_AppendPnt、_ AppendL in、_AppendReg函数加点、 加线、 加区。保存这三个工作区即可,保存柱状图。 柱状图中的绝大多数文字都可以利用MA PGIS注释类型的点表示,但注释类型点中的文字是不能换 行的,这对于像 “地质面点描述” 这样有很多文字的栏就不适用了。我们可以用版面类型的点来添加 “地质 描述” 栏中文字。在定义了版面高、 宽和文字的大小后,添加版面点时,文字会自动换行。 以花纹表示的地层柱状图可以利用MA PGIS的区填充来实现。 但需将显示模式设置为 “还原显示” 时 填充图案才可以显示出来。 岩石花纹图案可以由MA PGIS系统的输入编辑子系统中 “编辑图案库” 子菜单 功能生成。MA PGIS已经提供了180种图案花纹,但不是岩石图案花纹,用户要建立一套岩石花纹库为生 成柱状图所用。因区填充是用花纹在库中的序号来选择花纹,所以往MA PGIS填空花纹库中添加的岩石 花纹图案的序号须与钻孔数据库中对应的岩石花纹代号一致,或相差一个定值。在程序中,可以通过用户 设置,在数据库的岩石代号值上加、 减一个定值,使其代号与MA PGIS填空花纹库中所对应的花纹代号相 一致。 柱状图的宽为280 mm;花纹柱状图的长由钻孔深度及用户指定的比例尺来确定,一般为 钻孔深m1 000用户指定比例尺 414 钻孔地层层位对比 其程序实现方法与柱状图绘制的实现方法大同小异,也是建立点、 线、 面三个工作区,把所有用户选择 的钻孔,以花纹表示的地层柱状图显示其中;然后,要求用户将同一地层用线连接起来,并允许用户保存。 其中,花纹地层柱状图与钻孔柱状图中的花纹地层柱状图完全相同。地层对比需用户的交互才可以实现, 因为实际地层非常复杂,系统自动判断地层是否相同,相连成的对比图不能保证其正确性。 5 软件应用实例 现以某矿区固体钻孔数据库为例,简要说明该软件的使用效果。该矿区的ACCESS数据库已经按固 体矿产钻孔数据库标准建立,读取ACCESS数据库生成的1 1 000钻孔图如下页图2所示。 通过双击图2中需要生成柱状图的钻孔点等方式,选择钻孔点生成柱状图,生成的柱状图如下页图3 所示。 6 结束语 目前软件尚未完成,处于测试阶段,还有待进一步完善和提高。 由于MA PGIS已经在地质及相关行业 广泛使用,尽管该软件是基于MA PGIS开发,但不会影响它的应用。相反,软件可以短小精悍、 功能强大, 相信不久的将来就会在生产和科研中发挥作用。 981期解华明等基于MA PGIS的钻孔柱状图绘制软件的编制 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 图2 读取固体钻孔数据库后生成的矿区钻孔点示意图比例尺1 1 000 Fig. 2 M ap of diggings’ drilling created by using drilling database Scale 1 1 000 图3 生成的一个钻孔点的柱状图 Fig. 3 A drilling histogram created by the software 参考文献 [1] 吴信才 1 地理信息系统原理与方法[M ]1 北京电子工业出版社 12002. [2] 方志江,曲政 1 通用柱状图绘图软件系统的研究[J ]1 中国矿业大学学报 11999, 281 461 [3] 黄维通 1V isual C 面向对象与可视化程序设计[M ]1 北京清华大学出版社 12000. [4] David J. Kriglinski1 希望图书创作室 1V isual C 技术内幕第五版 [M ]1 北京希望电子出版社. 1999. 作者简介解华明1979- ,中国地质大学武汉数学地质与遥感地质研究所在读硕士研究生,研究方向 为地学信息处理。 09物探化探计算技术26卷 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.