基于GIS的三维地质可视化系统设计与实现
2024-01-31
来源:乌哈旅游
工程地质计算机应用 2011年第4期 总64期 ※编程技术应用实践※ 基于GIS的三维地质可视化系统设计与实现 宋仁波 江南2 (1淮阴师范学院城市与环境学院淮安223300;2南京师范大学地理科学学院南京210046) 【摘要】提出一种基于ArcGIS 3D模块.ArcScene实现地质场景三维可视化方法。其主要原理是:首先利用SRTM 数据源建立地形表面的TIN模型,然后利用ArcScene内嵌的VBA语言功能实现了钻孔数据提取程序,从而实现 了钻孔数据的自动提取、三维显示和图形编辑。此外,基于SceneViewer组件的二次开发建立了三维地质应用程 序子系统原型,最后以南京仙林地质调查的真实数据为例,进行实例验证。结果表明,该系统能取得较好的三维 可视化效果和强大的空间查询能力,不仅在地质领域具有一定的应用价值,而且可推广应用其他地学领域。 【关键词】三维可视化;GIS;地质场景;ArcScene;TIN模型;VBA;城市地质调查 三维地质可视化是GIS研究的重要内容之一,相关领域专家做了大量研究工作,主要目标是通过建立 三维地质模型来直观、形象地展示地下岩层的形态和空间分布 q】。在实际工作中,如何直观、高效地管理 和分析钻孔数据是迫切需要解决的问题,因为它是建立三维地质模型的重要基础[4】。由于传统的二维GIS 本质上是基于抽象符号的系统,难以给人以真实的感受,不能满足人们的需求,迫切需要借助三维GIS系 统解决这一问题L5J。目前,一方面传统的GIS系统,如ArcGIS、Supermap、MapGIS和GeoStar等系统都 具备三维地形及地表三维构筑物的建模能力,但仍缺少三维地质可视化功能;另一方面,常用的三维可视 化开发工具,如Direct3D、Java3D、VRML和OpenGL等进行三维地质模型系统的实现时,都需要从底层 编写代码,工作量大,开发周期长。 实际上,无论是在三维地质场景的建立、对象查询和编辑,还是建模与可视化的各个阶段,都可以根 据需要在现有的GIS系统基础上进行功能扩展来实现。本文研究的主要目的是基于现有GIS软件平台,建 立三维地质可视化系统。利用ArcGIS 3D模块.ArcScene平台建立地形三维模型,通过其内嵌的VBA程序 实现平台的二次开发,快速生成地下空间三维地质场景,为开发集成地形数据、遥感数据和地下空间三维 数据等多源数据的三维地质可视化系统,提供了一条简捷、快速的技术路线。同时,三维地质可视化系统 强大的数据管理和可视化分析功能,将为城市规划、工程施工和风险评估提供有力的技术支持。 2基于ArcScene的三维地质可视化系统设计 根据开发三维地质可视化系统总体目标的需要,该系统设计由两个子系统组成,它们是三维地质场景 子系统和端应用程序子系统。其中,三维地质场景子系统部分包括地形建模和钻孔建模两个子模块,它是整 个三维地质可视化系统的重要基础,主要实现三维地质场景的建立、空间位置和属性信息的编辑等基本功 能;应用程序子系统包括三维显示和空间分析两个子模块,它主要是根据用户的需要,实现三维地质场景 的浏览、查询和空间分析等定制功能,系统的总体设计结构见图1。 22 工程地质计算机应用 2O11年第4期 总64期 图1系统总体设计结构图 3三维地质可视化系统的实现 3.1开发平台及关键技术 ArcGIS 3D分析模块一ArcScene是ArcEngine组件的一部分,它内含3D对象模型、3D几何模型以及 3DViewer对象,支持具有z值的多种3D几何要素,包括点(Point)、线(Line)、面(Polygon)和多面片 (MultiPatch),同时提供了强大的三维可视化和空间分析功能。ArcScene所提供的3D对象都是ArcObjects 的一部分,ArcObjeets是桌面式ArcGIS的核心部分,是基于COM技术的,AreObjects体系对外提供了 大量的接口,其中包括1200多个可以进行定制、扩展和开发GIS应用程序的对象,通过这些对象接口, 支持地图数据的显示、管理、存储等操作【6】。针对ArcObjects 3D的二次开发,具体的开发方法分为两种: 1)基于ArcScene中内嵌的VBA开发;2)基于ArcObjects 3D组件,通过VB、Vc抖等面向对象开发语言 对其进行二次开发。本文在地质场景建立阶段采用第一种方法,在开发应用程序阶段采用第二种方法。 ArcObject组件开发的原理如图2所示。 图2 ArcObject组件开发原理 3.2系统开发技术路线 系统的主要开发实现流程如图3所示。 工程地质计算机应用 2011年第4期 总64期 图3系统开发的工作流程 3-3数据源和数据处理 3_3.1 SRTM数据和处理 SRTM高程数据在地学领域已经广泛应用。采用的比较多的是SRTM3.2高程数据,其垂直分辨率为 90m,空间分辨为lkm,可以满足大部分地形建模及可视化的要求[’]。SRTM高程数据可以免费从 http://srtm.csi.cgiar.org/SELECTION/inputCoord_asp下载。根据城市地质调查区域的地理位置,选择覆盖南京仙林地 区的SRTM高程数据,建立三维地形模型。 这里需要注意的是,由于下载得到的SRTM数据范围要远大于研究区域的范围,需要利用GIS工具对 其进行裁剪才能够使用。 3.3.2钻孔数据和处理 现有的地下勘探手段主要包括地质钻孔、工程钻孔、浅震和高密度电法,通常这些方法获取的资料都 转换成钻孔数据。由于获取的钻孔数据分散存储于不同的Excel文件中,首先需要对钻孔数据进行数据转 换,并对其数据结构重新进行设计,然后将数据统一存储于DBF数据表文件中,最后利用ArcCa ̄log建 立空间数据库实现对钻孔表数据的管理和维护,钻孔的数据结构和部分数据如图4所示。 Name f押e Size Dec 曲钻孔缡号 Character 18 0 9-a顶层坐标 Numeric 9 1 9.●底层坐标 Numeric 10 1 9.●匣睦 Numeric 11 1 曲地层岩性 Character 35 0 曲地层颜色 Character 20 0 ab地层代码 Character 12 0 9.。高程 Numeric 11 0 g1日顶层高程 Numeric 10 0 g__底层高程 Numerci 10 0 9.11×投影坐标 Numerci 13 5 g.1暇睡啊●■■——■—————_ a)钻孔表的数据结构 b)部分钻孔数据内容 图4钻孔的数据结构和部分数据 3.4三维地质场景的建立 3.4.1三维地形的建立 建立三维地形模型的主要操作步骤依次是: 1)首先利用Global Mapper工具,根据经纬度范围裁剪出研究区域的STRM数据的栅格数据,并以 GeoTIFF格式存储; 2)然后利用ArcMap的Coversion Tools工具将上一步生成的栅格数据转换为点数据,并存储为GRID 格式; 3)在ArcScene平台下,基于上一步生成的GRID数据,利用3D Analyst的Create TIN工具创建立地 24 工程地质计算机应用 2011年第4期 总64期 形的TIN模型,形成其三维图像显示。 3.4.2三维钻孔对象的绘制 利用3D线描述钻孔数据的空间位置,然后在渲染阶段,根据钻孔的岩性将其3D符号化成一系列不同 颜色的圆柱体来表达三维钻孔对象,具体实现主要通过两步骤实现:1)首先根据钻孔数据表中每个钻孔记 录的岩性属性值,建立3D符号列表;2)根据3D符号列表,符号化绘制的每一钻孔的3D线对象,实现 钻孔模型的三维显示。 此外,为提高绘制钻孔数据的自动化程度,利用ArcScene内嵌的VBA程序开发钻孔数据提取功能模 块,从而实现三维钻孔数据的批量读取和三维显示,其主界面如图5所示。 图5钻孔数据提取和三维显示界面 3.5应用程序子系统原型实现 3.5.1通用功能的实现 基于SceneViewer1.0组件,利用VB6.0对其进行二次开发,实现应用程序子系统的通用功能,主要包 括地质场景数据的加载、三维显示和漫游功能,系统的主界面如图6所示。 图6三维地质应用程序子系统原型界面 25 工程地质计算机应用 2011年第4期 总64期 3.5.2空间查询功能的实现 空间查询功能是三维地质应用程序的重要组成部分,该功能实现对钻孔三维模型的查询,通过鼠标点 击钻孔对象查询其编号、高程、厚度和岩性等信息。开发中主要用到了ISceneGraph接口的Locate函数、 IScene接口的SelectByShape函数和FeatureSelection函数,并通过Identify空间查询子程序实现。其中,Locate 函数和SelectByShape作用是查询钻孔三维模型,FeatureSelection的作用是返回钻孔模型的属性信息, Identiy空间查询子程序的主要代码如下所示:f 26 Dim pPoint As IPoint Dim pOwner As stdole.IUnknown Dim pObject As stdole.IUnknown Dim pVector As IVector3D DimZAs Double Dim env As ISelectionEnvironment Dim pSelection As ISelection Dim pEnumFeature As IEnumFeature Dim pEnumPorperty As IEnumProperty Dim pFeature As IFeature Dim pFields As IFields Dim pField As IField Dim Findex As Long Dim Fieldname As String Set env=New SelectionEnvironment pSceneGraph.Locate pSceneViewer,X,y,esriScenePickGeography,True,pPoint,pOwner,pObject Set pVector=pCamera.GetldentifyVector(pPoint) Z pVector.ZComponent pPoint.z=Z pScene.SelectByShape pPoint,env,True Set pSelection=pScene.FeatureSelection Set pEnumFeature=pSelection Set pFeature=pEnumFeature.Next IfNot pFeature Is Nothing Then Set pFields=pFeature.Fields Fieldname=”FID” Fieldname=”WellID” —FieldI1ame=”Geo” Findex=pFields.FindField(Fieldname、 Infoform.Text1.Text=CStr(pFeature.Value(Findex)) Infoform.Text1.Text=pFeature.Value(Findex1 Infoform.Text1.Text=Fieldname 工程地质计算机应用 2011年第4期 总64期 Infoform.Show 4结语 利用ArcGIS 3D模块为开发集成地形数据、遥感数据和地下空间三维数据等多源数据的三维地质可视 化系统,提供了一条简捷、快速的技术路线。本文采用了ArcGIS 3D模块.ArcScene模块建立三维地质场 景,取得了满意的效果;同时,利用ArcScene提供的SceneViewer控件开发了三维地质应用程序子系统原 型,为建立真三维地质模型系统奠定了良好的基础。此外,系统重要的三维建模功能有待后续开发,使系 统能够为地下空间研究提供直观、高效的技术手段。 参考文献 [1】MALLET J L.Geo-modeling[M].New York,USA:Oxford University Press,2002. [2】伍强,徐华.三维地质建模与可视化方法研究[J].中国科学D辑:地球科学,2004,34(1):54~60. [3]王宝军,施斌,宋震.基于GIS与虚拟现实的三维地质建模方法[J].岩石力学与工程学报,2008,27(2):3564--3566. [4]James D.McCarthy,Phil A.Graniero.A GIS—based borehole data management and 3D visualization system[J].Computers& Geosciences,2006, 32(1):1699-1708. 【5】肖乐斌,钟耳顺,刘纪远.三维GIS的基本问题探讨[J】.中国图像图形学报,2001,6(9):843~848. [6张啸雷,6] 王冬.基于ArcScene的三维GIS实现的研究【J】.城市勘测,2010,4,27~28. 【7】陈俊勇.对SRTM3和GTOP030地形数据质量的评估[J】.武汉大学学报(信息科学版),2005,30(11):941~943 27