基于MAPGIS平台工程地质剖面图自动生成系统的设计及实现.pdf
基于MA PGIS平台工程地质剖面图 Ξ 自动生成系统的设计及实现 熊德清1,王 军2,曹屹东1 1. 成都理工大学地质灾害防治与地质环境保护国家重点实验室,四川 成都 610059; 2.中地数码公司,湖北 武汉 430000 摘 要地质剖面图是表达地质信息的专题图件。随着计算机在地质学中的广泛应用,相应地也出 现了不少相关的成图软件,这对计算机辅助工程地质制图起到了极大的推动作用,地质工作者就如何利 用计算机高效快速地绘制钻孔地质剖面也进行了很多尝试,如使用一些商业绘图软件或编制了一些软 件,但往往不尽人意。因此,本文结合现代GIS技术,以M icrosoft V isual C 6. 0为开发工具 ,C 为开 发语言,以我国自主知识产权的MA PGIS 6. 5为二次开发平台,研究在GIS工具软件的支持下,如何自 动生成工程地质钻孔剖面图。 关键词工程地质;剖面图;自动生成;MA PGIS 1 引言 工程地质钻孔地层剖面图是地质工程中最基础 的图件,也是最重要的图件之一,但手工绘图耗费大 量的人力、 物力和财力,既不灵活,效率又低。因此, 对于工程地质工作者来说,计算机辅助生成工程地 质剖面图已成为迫切的需要,系统运行稳定、 结果可 靠、 图形与属性直观可视化更是地质工作者追求的 目标。本次研究在充分利用了MA PGIS强大的数据 采集、 数据管理、 数据查询、 数据输入和输出、 空间分 析以及图形编辑功能的基础上,阐述了自动绘制工 程地质钻孔地层剖面图的原理,开发出了工程地质 钻孔地层剖面图自动成图模块,使系统在不失去 MA PGIS既有功能的前提下,实现地质图形与地质 数据的良好结合,做到图形与属性的互查[1]。并且, MA PGIS的图形格式可以满足不同的图形格式输 出的需要,具有一定的实用价值,也为今后开展相关 工作提供良好的借鉴作用。 2 系统整体设计 2. 1 系统数据需求分析与数据结构的设计 数据库结构设计的好坏将直接对系统的效率以 及实现的效果产生影响,好的数据库结构设计会减 少数据库的存储量,数据的完整性和一致性较高,系 统具有较快的响应速度,简化基于此数据库的应用 程序的实现。 能否成功地绘制出工程地质钻孔剖面图,直接 与钻孔数据的收集完全与否、 管理合理与否息息相 关,因此将工程地质基础资料进行综合、 整理为有效 提供绘图所需原始数据是自动剖面图生成的基 础[2]。 对于钻孔平面布置图来说,只有知道钻孔孔口 的地理坐标或者相对坐标,才可以将钻孔在图上准 确定位,才可能绘出钻孔平面布置图。 在实际的应用 过程中,应该可以在平面布置图上选择任意方向、 任 意数量的钻孔作出地层剖面图。 因此,对于每一个钻 孔来说,必须了解它的详细信息,如孔口标高、 分层 厚度或每一分层的层底标高,用这些信息来严格控 制岩层在纵向的厚度,反映出钻孔的实际情况;每一 分层的地层岩性是进行剖面图图案花纹填充的依 据,设计时,可以利用这一特性,采用MA PGIS的图 案库编辑功能,事先设计好与岩性信息相对应的填 充花纹图案,根据地层岩性调用对应的图案花纹对 岩性进行填充。 标准地层的建立可以采用如下方法 用户在地质数据编录后,在室内整理资料时根据工 程地质地层划分方法可以确定钻孔的实际分层;用 户根据区域地质情况和分层标准以及不同工程建立 一个详细的标准剖面,将该标准剖面每一个分层在 系统中人为的认定为一个标志层,将标志层作为剖 面图中地层剖面线连线时的判层依据。通过对钻孔 数据内容的简单需求分析,可以设计如下的数据项 ①工程概况信息工程名称、 工程编号、 勘察单 位、 工程地址、 工程负责、 总工程师等; ②钻孔基本信息钻孔类型、 钻孔编号、 孔口标 高、 孔口横坐标、 孔口纵坐标、 钻孔深度、 开孔日期、 终孔日期、 初见水位、 稳定水位等; ③钻孔分层信息钻孔编号、 地层代号、 地层层 序、 标志层序号、 地层埋深、 地层厚度、 地层岩性、 岩 性描述等; ④标准剖面信息所属工程、 标志层序号、 标志 层代码、 标志层注记符号、 地层年代、 备注等; ⑤岩石编码信息岩石编码存放岩性所对应的 MA PGIS图案编辑库中的图案号、 岩石名称。 在以上的数据分析以后,钻孔数据库的结构就 82内蒙古石油化工 2009年第4期 Ξ收稿日期 2008- 08- 15 作者简介熊德清1984 , 男,成都理工大学地质灾害防治与地质环境保护国家重点实验室。 可以设计如下 1钻孔整体数据结构 typedef struct HoleBaseStru_ struct { Long lHoleI D; 钻孔编号 charszHoleCode [ L EN _BOREHOL E _ CODE ]; 钻孔名称 double dPosX; 孔口坐标X double dPosY; 孔口坐标Y double dHeight; 孔口标高m double dA ltitude; 地面海拔标高 double dDepth; 钻孔深度 int iL ayTotal; 钻孔地层分层数 HoleBaseL ayStru3pL ayA ttr; 钻孔各层结 构 Long lFlag; 保留标志 }HoleBaseStru,3L PHOL EBA SESTRU; 2钻孔分层数据结构 typedef struct HoleBaseL ayStru_ struct { Long lV erNo; 分层版本号 CharszL evelCode[ L EN_STRA T_ L EV EL ]; 地层分级编码 Char szL ayN ame[STRA T _ NAM EL EN ]; 地层名称 Char szL ayCode[STRA T_ CODEL EN ]; 地 层编号 Int iL ay; 分层序号。必填。 Double dTop; 层顶深度。必填。 Double dBottom; 层底深度。必填。 Long lFlag; 保留标志 剖面图连接时使用的数据 Char bU sed; 该层是否已经连接过。 Short iA tt; 该层属性 - 1未知; 0正常层; 1夹层; 2 尖灭层。可以不填。 Int iCorrectL ay; 该层的对应层 - 1未知 0该层的对应层 序号。可以不填。 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ①如果该层是正常层iA tt 0,则该层的对 应层是另一个钻孔中的对应层; ②如果该层是夹层iA tt 1,则该层的对应 层是本钻孔中与之连通的层默认是本层 ; ③如果该层是尖灭层iA tt 2,则该层的对 应层另一个钻孔中的正常层暂时设置为 - 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Short nBdryL evel; 分界点级别 Short nR iver; 古河道标志 D_ 3DOT xyz; 钻孔分层所在的坐标 D_ 3DOT L inkPos; 钻孔分层连接点的坐标 D _ 3DOT PinchPos; 钻孔分层尖灭点的坐 标 Short nExtrapFlag; 外推标志 Long lA rcI D [2]; 弧段I D }HoleBaseL ayStru,3L PHOL EBA SE2 LA YSTRU ; 2. 2 钻孔数据获取和显示模块 钻孔平面布置图主要是由一系列文字和子图组 成的,计算机自动生成相对比较简单。在MA PGIS 中,文字和子图都被看成是点图元[3],因此,钻孔平 面布置图的绘制也就是对点工作区的操作[5]。绘制 钻孔平面布置图的过程,实际上就是从数据库中读 取钻孔基本信息数据,并在点工作区中写入数据,再 将数据库表中对应钻孔的属性数据写入钻孔点文件 中一个点记录的属性结构中过程,也就是利用钻孔 数据绘制钻孔点图形然后为生成的点图形赋属性的 过程[4],流程图如下图1 图1 钻孔平面布置图生成流程 部分代码示例如下以ACCESS数据库为例 在这个过程中,对数据库设置成只读访问,用户 92 2009年第4期 熊德清等 基于MAPGIS平台工程地质剖面图自动生成系统的设计及实现 不能修改数据,从而保证了数据库不被破坏,保持了 数据的一致性。 钻孔平面布置图的钻孔图形样式、 比 例尺、 钻孔点信息结构由用户指定,生成的钻孔平面 布置图可以保存为MA PGIS点文件[5]。 2. 3 钻孔交互选择工具模块和地层剖面绘制模块 钻孔交互工具的设计主要考虑的是操作的直 观、 便捷。 本设计采用的是直接在钻孔平面布置图上 绘制剖面线,通过指定一定的缓冲区半径,来选择相 应范围内的钻孔。交互工具类的实现可由MA PGIS 的基本交互工具类派生[6]。交互工具的具体操作流 程如下 ①点击工具栏上的生成剖面图按钮; ②在钻孔平面布置图上拖动鼠标绘制剖面线; ③点击右键完成剖面线的绘制,弹出如下参数 设置对话框,如下图2; 图2 钻孔剖面图生成参数设置 ④在参数设置后,点击 “完成” 开始绘制剖面图。 在钻孔交互工具选择钻孔后,点击完成即来到 地层剖面绘制模块。 在此模块中,关键是如何进行剖 面线的连接。 在连接剖面线时,要根据多个钻孔的地 层分层信息来决定剖面线如何连接。连接的总体原 则是 “先连大层再连小层” 。 两个钻孔的地层比较时, 如果是相同地层,只需要把相同地层的顶底板直 接连接即构成地层剖面线;如果钻孔地层不对应,则 要根据定义的地层尖灭规则计算尖灭点的位置,将 尖灭点与尖灭层的顶底板相连构成地层剖面线; 对于长的钻孔底部的地层没有其他钻孔与之对应, 对这些地层进行平推,外推距离为1cm图上距离。 无论是哪一种情况,它的基本思路都是这样的 首先选择参与绘制地层剖面的钻孔并取得钻孔基本 信息,确定出钻孔在平面上的相对位置,然后计算各 层剖面线各点坐标,利用MA PGIS线工作区对象的 添加线方法可以作出地层剖面线。因为每个地层最 终都要用对应的图例来填充,所以地层界线选择用 弧段来绘制,然后根据钻孔分层信息,给每一地层赋 上地层属性。完成这一工作后,利用MA PGIS的弧 段造区功能将地层作为区实体来处理,再把剖面图 所需的附属信息如每一地层的层底标高、 埋深以及 整图的图名、 比例尺等添加到图上,这样就构成了 完整的工程地质剖面图。 3 关键部分的设计 3. 1 剖面图绘制的数据信息获取 在钻孔交互工具模块中,选择钻孔后点击鼠标 右键弹出设置剖面图信息的对话框,在用户设置好 相关信息点击完成后进入剖面图绘制。程序会将用 户的设置信息保存到一个SECTSETT I N G变量中 供绘图时调用, SECTSETT I N G的具体结构如下 typedef struct SECTSETT I N GSTRUCT { double Scalex, dScaley; 横向X比例,纵向 y比例 BOOL bD igitalScale; 是否需要数值比例尺 BOOL bL ineScale; 是否需要线条比例尺 BOOL bFill M ode; 区域填充模式 0部分填 充 1全部填充 BOOL bHeight; 标高 0无; 1有 BOOL bDepth; 埋深 0无; 1有 BOOL bW ardsA rrow; 总体方位标注 0无; 1有 double dBoundW idth1; 地层线线宽 double dBoundW idth2; double dBoundW idth3; double dBoundW idth4; double dBoundW idth5; }SECTSETT I N G; 在定义好钻孔的数据结构后,获取钻孔信息就 只需要连接数据库,遍历所有钻孔即可根据钻孔I D 将所有钻孔的数据查询出来,用伪代码表示如下 3. 2 剖面图工作区创建和自动绘制 在使用MA PGIS对栅格图形进行矢量化前,需 要对原栅格图像进行分层[4]。 借用此思路,在绘制剖 面图之前通过对剖面图进行分析,可将剖面图分解 03内蒙古石油化工 2009年第4期 为钻孔轨迹线文件、 剖面轮廓线文件、 剖面轮廓区 域、 特殊地质属性描述点、 特殊地质属性描述线、 特 殊地质属性描述区、 注记与图例点、 注记与图例线、 注记与图例区等九个文件。可以直接调用MA PGIS 的函数创建相应的工作区、 文件并设置好相应的属 性结构字段,准备下一步数据的写入 〔7〕 。 程序实现的 伪代码表示如下 在生成剖面图时每次提取两个钻孔数据来参与 绘图,两个钻孔的地层相互比较,按照定义的连接规 则对应或尖灭。首先绘制钻孔的表示线以及相关标 注,然后依次读取钻孔分层信息与前一个钻孔的分 层信息比较,进行数据预处理、 地层对应后剖面图的 基本结构就出来了。然后再标注一些更加详细的信 息如剖面图图名、 比例尺、 图例、 方位角、 主要地物名 称、 高程标尺以及底部距离线等信息[8]。 4 结论 411 操作方式简单。所有操作都在W indow s操作 系统中进行,只要通过鼠标轻轻点击就可以得到所 需的结果,大大降低了地质工作人员的劳动强度; 412 开发的剖面图自动生成模块,除了完成对规则 的地层界线连接外,还对夹层、 尖灭层、 古河道等进 行了较好处理,对计算机自动成图领域具有一定的 借鉴意义; 413 基于MA PGIS的二次开发方式,即充分利用 了MA PGIS工具软件现有功能,又有针对性的开发 了工程地质的剖面自动生成模块,并且操作界面友 好,不需要复杂的参数设置即可得到专业的、 美观的 剖面图件,基本满足了专业需求; 414 结果图件以MA PGIS的文件格式点、 线、 区 文件保存,可以在MA PGIS系统软件中进行修改、 编辑,生成的图形可以满足不同用户的要求; 415 工程地质剖面图自动生成功能模块以M i2 crosoft V isual C 6. 0作为工具开发,最终以动态 链接库Dynam ic- L ink L ibrary形式封装,模块的 可移植性良好。 [参考文献] [1] 高铁军.地下管线地理信息系统中任意剖面图 的实现.测绘工程[J ], 2000, 93 37~40. [2] 曹瑜,胡光道1 地理信息系统在国内外应用现 状,计算机与现代化[J ], 1999, 613 1~4. [3] 楚王辉,黄地龙,黄杲,等.地质剖面图在计算 机中的自动绘制,电脑与信息技术[J ], 2001, 06 42~45. [4] 解华明,陈守余,等.基于MA PGIS的钻孔柱 状图绘制软件的编制.物探化探计算技术 [J ], 2004; 261 85~90. [5] 陈练武. MA PGIS在地质图件绘制中的应用. 西安科技学院学报[J ], 2002, 221 36~38. [6] 韩俊卿.地质剖面自动生成方法研究[D ].山 西太原理工大学, 2005. [7] 张渭军,王文科,孔金玲,翁晓鹏.基于Ge2 oM ap的钻孔柱状剖面图的自动绘制.人民黄 河[J ], 2002, 2706 58~30. [8] 包世泰,余应刚,夏斌,蒋鹏,黄海峰. GIS技术 在工程地质制图中的应用.工程勘察[J ], 2005, 2 1~4. Abstract Geological cross- section is the topic map of expressing geological ination. W ith more and more computer used in geologicalwork, a lot of relevant software has been developed, which promote the advancement of computer- assisted engineering geology profiles. M any geologists have searched meth2 ods to draw profiles rapidly and efficiently such as using commercial graphical software or programm ing software by them selves. But the results did not satisfy.In this thesis, the attempted object is to study how to automatically generate engineering geology profiles based on MA PGIS secondary exploitation plat2 which has self intellectual property rights by using C Plus Plus and M icrosoft V isual C 6. 0.The thesis introducesMA PGIS 6. 5 secondary exploitation plat and specifies the design of the software sys2 tem and applied s of key components. Key words Engineering Geology; Profiles; A utomatical Generation; MA PGIS 13 2009年第4期 熊德清等 基于MAPGIS平台工程地质剖面图自动生成系统的设计及实现