基于Skyline的地质模型属性识别算法的研究与实现
2015-12-11史少维姚鹏君曹宏涛林巨超
史少维,姚鹏君,曹宏涛,林巨超
(1.北京东方新星石化工程股份有限公司(BNEC),北京100070;2.北京建筑大学测绘与城市空间信息学院,北京100070)
一、前 言
在地下地质相关的工程项目建设过程中,为便于工程管理,需要建立三维模型系统,实现地质模型数据浏览显示的功能是必不可少的,进而要求对特定区域的地质岩性情况进行实时的检测查询,以对工程地质情况进行分析与决策。
目前,随着三维激光扫描技术的发展,已存在利用三维影像及点云数据应用到地质建模及空间识别的领域中;在软件平台方面,QuantyView平台是比较成熟的三维地质建模系统,其利用地质钻孔数据、平面和断面剖图等多源数据进行建模,以及对地质模型进行分析管理等[1]。
本文主要针对地质模型的岩石属性检测的问题,基于空间几何拓扑关系,在Skyline的三维平台中,利用其强大的空间分析算法接口进行二次开发,实现了地质岩石模型空间识别的功能开发。
二、空间几何拓扑关系
空间几何拓扑关系反映了空间目标的逻辑结构,对空间目标查询、分析和空间目标重建具有重要意义。空间几何数据有点、线、面、体4类,它们之间有相离、相等、相接、相交、包含于、包含、交叠、覆盖、被覆盖、进入、穿越和被穿越12种基本空间拓扑关系。其中穿越与被穿越关系在城市GIS、矿山GIS中进行空间曲面分析时运用较为常见,具有重要的意义。
面与面的空间相交穿越关系识别规则为:判断两个面对象是否相交,可以先判断它们的最小包围盒是否相交,如果不相交,则可以直接判断这两个面对象不相交;如果最小包围盒相交,可以通过依次判断面对象与构成另一个面对象的每条线段是否相交得到。其空间面间相交关系如图1所示。
图1 面与面之间相交穿越检测示意图
本文基于空间几何体之间拓扑关系,提出了利用空间面与面相交穿越关系运算来识别目标岩石区域面,进而显示属性信息的方法。
三、Skyline地质模型识别方案
在地下地质工程系统中实现对地下巷道岩石属性的查询模块,当鼠标单击巷道时,能精确显示岩石的属性。通过3ds Max或Skyline builder建立的巷道模型结合运用CorelDRAW等图形软件处理巷道的地质纹理素描图,生成具有逼真效果的地质模型。不过在Skyline中不识别具有地质纹理识别相应模块,而是将三维模型作为一个整体存储显示,因此不能查询不同区域模型表面的岩石属性。
1.总体思路方案
首先,在Skyline中地质模型是作为一个整体的,因此不能查询不同区域的岩石属性。由此设计将不同的地质岩石在模型的基础上进行碎片化,形成岩石曲面体数据图层。
其次,由于实际地质情况的复杂性及区域不规则的特点,鼠标点触时准确选择岩石曲面体变得困难,往往视觉直观选择了目标岩石区域,但是在三维空间中,会出现假选或选空的情况。为了应对这种情况,选择设计空间查询体进行空间几何面的相交来侦测目标岩石曲面体。
最后,基于空间面相交穿越分析,利用Skyline的接口实现岩石属性识别功能的开发。程序上体现为:获取岩性区域目标点,在目标点生成查询体,即以目标点为中心生成一个包含3个相互垂直正方形面的立方面体,再利用查询体与查询目标体曲面层数据进行空间分析计算,判断是否有曲面体被侦测到,返回结果进而显示曲面体的岩石属性值。
根据总体思路方案,基于Skyline的模型识别算法流程设计如图2所示。
图2 模型识别算法流程
2.空间查询体设计
正立方体面(PolygonGeometry)定义为:xyz轴上设置一定的距离间隔生成3个正方形面,每一个正方形面定义为查询面。每个查询面都有以下特征:以鼠标点坐标为中心,分别垂直于x、y、z轴;距离中心间隔相等。间隔设置要结合FeatureLayer中曲面多边形的大小来设置,过大则侦测范围大,则返回的结果数量多且不准确,过小则侦测范围小会出现没有结果返回的情况,一般采用经验法进行测试。测试的结果表明,间隔设置为最小的曲面体的一半左右即可,效果快且准确。空间查询体设计如图3所示。
3.岩石数据图层制造
岩石数据图层(FeatureLayer)(如图4所示)将不同的地质岩石三维模型在3ds Max中切成空间三维几何体集,每一个三维几何曲面代表着一个不同的地质岩石区域,转换数据格式导入到ArcSence中或在Skyline中进行属性编辑。这一步主要是按照对地质模型的勘察报告逐一进行岩性描述编辑,在三维空间多边面的岩性属性字段中进行赋值。在算法实现时,对其岩石属性字段进行结果显示即可。具体步骤如下:
1)根据巷道纹理贴图在3ds Max里进行碎片剪切的工作,将岩石模型的属性图层抽离出来生成空间多边形几何体,添加定义岩石属性字段,导出SHP等格式文件。
图3 查询体结构设计示意图
图4 岩石数据图层示意图
2)导入到ArcSence中结合巷道勘察素描图数据对每一个碎片的岩石属性字段进行描述编辑保存。在进行属性编辑的过程时,将对应勘察岩石报告整理属性到Excel表中,打开SHP图层的属性表进行批量导入。
3)保存成Skyline的格式数据作为一个图层加载到Skyline中。将岩性FL图层以SHP格式准确地添加到FLY数据的信息树中,在具体的操作过程中要注意FeatureLayer高程、精度及字段选择的设置,保证岩石属性图层与原有的地质模型相吻合。这样保证对不同纹理选择目标时准确对应Feature Layer的岩石曲面,进而通过算法空间分析显示相应岩石属性。
选中FeatureLayers中的一个目标面进行岩性属性描述字段进行编辑。图5中显示的立方体表示选中的目标面Polygon,在勘察素描图中的相应区域为:花岗岩C类Q值为1.67。
图5 岩石属性编辑
四、地质模型属性识别的开发实现
依据上述算法流程设计及Skyline接口框架体系,在已有的Skyline地质工程系统中开发地质属性识别功能模块,其具体实现思路步骤如下。
1.加载FLY文件
通过SGWorld65对象中Project接口的Open方法打开服务器指定的FLY工程文件,此FLY文件包含FL岩性图层。具体代码为:
其中"http:∥10.137.202.34/SkylineGlobe/default.fly"为服务器端发布的FLY文件路径。
2.获取目标点
3.生成查询体
空间查询体是由3个以目标点为中心且相互垂直的查询面组成的。其中以生成垂直于x轴的查询面为例,代码如下:
其余垂直于y、z轴的cPolygonGeometryy、cPolygonGeometryz查询面与垂直于x轴查询面的生成步骤相同。以目标点为中心生成的相互垂直的3个查询面组成的外包正方体,就是设计生成的查询体。
4.锁定检测目标体
5.执行相交穿越查询
Skyline中接口 IFeatureLayer中的 ExecuteSpatialQuery()是封装了空间分析算法的函数,其内部实现过程具体包括:在Layer中第一次过滤选出目标点附近的准目标面集,准目标集与查询体面进行空间相交穿越分析,返回目标结果集,如图6所示。
图6 查询体空间相交查询
6.目标岩石面属性显示
查询结果如图7所示。
图7 目标岩石属性显示
在巷道地质模型内部进行点触岩性识别时,当鼠标点触位置生产查询体通过空间相交分析计算侦测到最近的空间曲面体时,弹出目标区域的岩石属性描述;当生成的查询体侦测不到任何空间曲面体时,相应的提示点触范围内没有任何有效岩石曲面体。
五、结束语
本文围绕地质工程系统中模型识别的问题,基于空间拓扑关系提出了在Skyline平台中实现地质模型识别的思路方案,设计空间查询体,制作地质模型岩石属性图层,利用Skyline空间几何运算二次开发接口实现地质模型属性识别功能开发。通过系统运行的效果来看,本文系统能够满足工程实践中的应用需求。
[1]何珍文,吴冲龙,刘刚,等.地质空间认知与多维动态建模结构研究[J].地质科技情报,2012,31(6):46-51.
[2]吴素芝,杨卫军,郭亮.地下空间综合管理信息平台建设的探究[J].测绘通报,2013(8):99-102.
[3]孙晓明.空间拓扑关系计算算法研究[D].南京:南京师范大学,2011.
[4]程朋根.地矿三维空间数据模型及相关算法研究[D].武汉:武汉大学,2005.
[5]吴素芝,杨卫军,郭亮.地下空间综合管理信息平台建设的探究[J].测绘通报,2013(8):99-102.
[6]惠立.基于skyline油田集输油管网数字化与三维可视化应用研究[D].西安:西安石油大学,2011.
[7]钟登华,鲁文研,刘杰,等.基于三维地质模型的地下洞室曲面块体分析[J].岩石力学与工程学报,2011,30(2):3696-3702.
[8]鲍艳.矿山信息系统中巷道的三维矢量数据结构与可视化[D].西安:西安科技大学,2003.
[9]宋世凯.基于Skyline的城市三维地理信息系统的设计与研究[D].石家庄:河北师范大学,2012.
[10]杜世宏,秦其明,王桥.空间关系及其应用[J].地学前缘,2006,13(3):69-80.
[11]曹巍,王争.基于TerrExplorer Pro的三维影像管理系统研究[J].测绘通报,2008(1):50-51.