基于层面数据的三维地质建模方法主要以DEM、地层散点或地层层面数据为基础来构建三维地质体。地质体由DEM、地层和地质构造等元素构成。地质构造(如褶皱、节理、断层和劈理等)在空向中的基本形态可以通过特征描述和空间展布两种基本方式表达;特征描述是用产状、规模等构造的基本要素以数字方式表达出来,而空间展布是将各种复杂的地质构造抽象为空间的点、线、面等几何元素的集合以可视方式展现出来。这些表示方法为空间几何形态的描述和数学分析提供了支持。基于层面数据的三维地质体建模是几何模型的构建,主要包括以下几个方面。
1.地表地形面的创建
三维地形是三维地质建模基础,在每个工程勘察设计阶段工作启动后,首先由测量专业人员提供符合当前阶段精度要求的地形数据。如果地形数据是以三维线条的形式提交各专业,就需要数字高程模型(DEM)插值算法来实现三维地形面建模。与建模相关的地形数据包括计曲线、首曲线、水系、公路等,地形线条数据经过必要的处理后导入三维地质系统。等值线数据一般是以Auto CAD的DWG格式提供给下序专业。具体算法:先将参与地形建模的数据离散成一系列的散点,根据散点坐标在平面XOY上按Delaunay方法进行三角网剖分,构建一个不规则三角形网(TIN),然后根据DEM各网格点落在相应的三角形内部,按一定的插值计算方法(克里格、多项式、距离幂次反比法等)求出其高程值,最终形成数值高程模型。实际应用中存在的数据缺失问题可以通过优化三维地形生成算法克服。
有了数字地形高程模型后,再用航片或者卫星影像数据生成的正射影像作为纹理贴在DEM上,生成的三维地形效果如图4-5所示。
图4-5 地形表面创建
2.岩层界面的创建
岩层界面是指两个地层单元之间的分隔面,一般具有较稳定的地层产状,建模时如何利用地层的整体产状趋势是重要的考虑因素,这将有利于简化数据插值过程、又好又快地生成岩层界面曲面。
岩层界面是通过地质测绘和孔洞勘探采集的数据来创建的,包括岩层界面的位置信息、产状信息以及特征信息,所有信息在数据维护过程中存储在系统数据库中。可以开发出专门处理具有产状数据的地质结构面生成算法。具体思路:首先将岩层界面揭露点的产状信息扩展为空间一定范围内的多个插值点,这些插值点代表了岩层界面在揭露点附近的局部延展趋势,然后将实际揭露点与插值点一起拟合生成曲面。通过这样的算法生成的岩层界面,不仅通过所有揭露点,而且在局部位置也符合产状趋势,因此不需要太多的人工干预插值即可完成岩层界面建模,如图4-6所示。
图4-6 水电地质模型的岩层界面
但是岩层界面产状相对不太稳定的工程场地也比较常见,比如褶皱地层、倾倒地层、岩脉地层等,这些都属于比较特殊的岩层界面建模,根据需要灵活处理,比如在利用数据库内的少量揭露信息直接生成岩层界面前,通过勘探剖面插值工具对岩层界面进行整体趋势控制,形成岩层界面的空间框架。
3.构造面的创建
构造面与岩层界面同属地质结构面,在空间上延伸都具有较稳定的产状,且都不穿越基岩面而连续伸入覆盖层,因此二者建模方法基本一致。
地质构造在系统内分为断层、挤压带、裂隙、层间错动带、层内错动带,都是在地质点、钻孔、平硐、探井等构造揭露位置采集数据。构造面在工程区分布的数量多时,确定构造面的空间连接和交切关系将非常复杂,需要借助特征分析、剖面分析或者建模分析来判断(图4-7)。
剖面分析是利用软件系统的勘探剖面工具将构造的揭露点位置和产状信息通过剖面图方式来表达,以便查看地质构造在剖面上的合理连接、延伸和交切情况,甚至交互修改。
建模分析是三维系统所独有的形式,是将初步确定的构造揭露点尝试连接生成空间曲面,在三维状态中去分析构造面的连接合理性,以及如何延伸和交切处理。建模分析还可以对没有确定构造连接关系的孤立的构造揭露点进行分析,通过生成单个揭露点的小构造面,然后与其他已确定连接关系的大构造面进行比较,分析小构造面与大构造面归并的可能性。
构造面利用各自的揭露数据单生成得到空间曲面,需要再根据地质情况将构造面进行延伸、修边、剪切等处理,尤其是控制性结构面与被处理构造面之间的关系需要交代清楚。同样可以赋予各构造面的拓扑属性编码,以便后续构成体模型和剪切分析。
图4-7 构造面特征分析
1)断层模型
包含断层的复杂地质体的三维数学描述与模拟目前仍处于研究探索阶段,至今还没有一个完善的系统实现。其原因主要是由于断层在空间展布的几何形态的高度复杂性、不确定性以及数据获取的艰难性。从目前国内外关于三维地质建模方法的研究现状来看,其主要技术路线是首先根据钻孔岩芯数据或地震剖面解释而形成的剖面数据以及区域地质调查获得的有关数据,基于二维或三维剖面形成合理的断层面;然后建立地质体的网格模型,实现三维计算机模拟。但是,这些方法要求丰富的样本数据作为建模的依据;而且,基本上只能处理表示单值面的正断层,对于存在多值面的逆断层,仍然缺乏有效的处理方法;另外,也没有提供对采样数据区以外区域的断层延展性进行预测的手段。
针对上述问题,武强和徐华提出了一个新的三维断层建模的数学模型(武强、徐华,2005),根据断层的属性以及断层采样数据的数量与质量,仅需要两个断点以及断层面的倾角和倾向为参数,就可以推演断层面的空间几何形态;在属性发生变化的层面上进一步获取数据之后,可以用多个平面的组合逼近这个复杂的曲面,达到用数学语言来精确地描述刻画断层面在空间展布的异常复杂的几何形态,实现了在不同数据来源情况下的三维断层建模。
2)褶皱几何模型
事实上,尽管现有的自动映射系统能够成功地建立简单的地质界面模型,但是它们无法构建复杂的曲面以及复杂的地质对象体,如逆冲、逆断层、褶皱和倒转褶皱等。地质界面发生弯曲现象称之为褶皱,可以依据剖面和地质图数据来模拟褶皱的几何形态。一般情况下,褶皱模拟可以分为两种。
(1)褶皱,即不含多值面的褶皱。其几何模型的建立可以通过对形成褶皱的空间离散点进行启动Delaunay剖分,将离散点用线段连接起来,拟合出一个曲面来模拟褶皱。
(2)倒转褶皱,即包含多值面的褶皱。倒转褶皱的模拟相对复杂一些,具体描述如下。
如图4-8(a)所示,从地质图及相关资料可以得到褶皱在地质图上的褶皱界线及产状,为了能够准确表达褶皱的空间形态,不使信息丢失,可以根据褶皱的不同产状设置一系列褶皱的轮廓线,如n条褶皱轮廓线Ei(i=1,…,n),其中Ei={pj|1≤j≤m,m∈N},即每条轮廊线由有限个三维欧氏空间上的有序点组成。为了保证这些点能够反映背斜或向斜的两翼形状,应该尽量选取特征点,如枢纽点和转折端部位的点等。在对轮廓线进行剖分的时候,为了使褶皱形状不失真,必须加入一些辅助的约束边,如图4-8(b)中的约束边C,使其在网格模型中可见,建立好每条Ei以及约束边之后,将Ei与Ei-1、Ei+1分别进行连接,构建倒转褶皱的TIN模型[图4-8(c)]。为了得到一个光滑的曲面,还对每个曲面片继续进行细分处理以拟合一个更加准确的倒转褶皱地质界面。
图4-8 倒转褶皱几何模型的建立过程
图4-9显示的是根据上述空间几何模型设计方法建立的一个复杂地质体的实例。表达了复杂地质体的某个岩层的三维模型,准确描述了包括一个倒转褶皱以及倒转褶皱的右翼被一条逆断层和一条正断层切割的复杂地质体的空间分布特征。
4.透镜体的创建
地质透镜体可以指那些需要在空间上用于内外分隔差异化岩石的封闭分界面,例如风化透镜体、岩性透镜体等。透镜体建模的一般思路是根据某个钻孔上透镜体的厚度,按一定的原则在各方向上外推一定的距离后尖灭,这样不能反映透镜体的各向异性。在本书中根据透镜体的形状和揭露资料的情况,可以将其建模方法分为三种,分别是单线建模、双线建模和多线建模。
图4-9 三维复杂地质体实例
1)单线建模
单线建模方法用于已知的透镜体附着在另一个地质曲面上的情况。通过空间地质剖面得到透镜体的一条剖面线,如图4-10(a)所示,该剖面线沿着参照曲面旋转一周得到透镜体的一个表面,表面的边界与参照面贴合[图4-10(b)],那么表面与参照面之间的空间形成透镜体。
图4-10 透镜体单线建模
2)双线建模
双线建模方法用于透镜体在某个空间剖面上已知上边界和下边界的情况,例如钻孔揭露风化透镜体时就需要用到这种建模方法。首先,通过勘探剖面工具绘制透镜体的三维双线边界[图4-11(a)],然后选择双线建模工具直接拟合得到透镜体封闭面[图4-11(b)]。
3)多线建模
多线建模方法用于透镜体在多个空间剖面上都有上下两个边界线,例如钻孔在横纵两个勘探线剖面上都有交待透镜体的边界延展情况,因此建模时需要利用两对或两对以上的多条线建模。首先,通过勘探剖面工具绘制透镜体在多个剖面上的边界线[图4-12(a)],然后选择多线建模工具将这些边界线渐变拟合成一个透镜体封闭面[图4-12(b)]。
图4-11 透镜体双线建模
图4-12 透镜体多线建模
5.地层单元的创建与表达
根据B Rep(边界代替法)建模理论,代表地层单元的“体”是由多个具有相同属性定义的近封闭的围合面构成,将两个地层单元分隔的是地层界面。因此,地层界面除了有自身的地质编号,还拥有两个地层单元的属性编号,如图4-13所示。
对于一个地层模型来说,地层单元是由地层单元分界面[图4-13(b)中的属性定义为“JM1,J2h1,J2h2”的面]和地层单元外侧面[图4-13(b)中的属性定义为“J2h1”和“J2h2”的面]构成,地层单元外侧面是用建成的边界去裁剪各地层面得到的。
地层单元属性定义作为地层建模的一个关键过程,需根据工程需要来确定地层模型的单元划分和详细程度,在地质意义上划分为亚层或小层的地层单元在建模时可能简化为一个大层就可以,而在某些重要的建筑物部位即使地质上已经划分到小层也可能要再细化为岩性层来建模。地层单元属性定义要注意的是,某个地层单元作为大层就不能与其包含的亚层或小层同时出现在模型中,否则会造成地层单元建模在空间上的拓扑关系紊乱,也就是地层建模必须对每一个地层单元明确建模的详细程度。
图4-13 地层单元建模
6.地质实体的表达
地质实体表达主要采用B-Rep的方法建立具有拓扑关系的地质模型,模型的地层单元由多个专门定义属性的地层界面围合。B-Rep模型在进行数据存储、可视化、模型分析和二维出图等方面都具有优势,但是在一些特殊的应用上也有缺点,比如多重堆积的深厚覆盖层建模,因其空间拓扑关系非常复杂,围合面数量多且细小难以管理,为了管理方便将模型建成实体单元。
地质实体可以创建满足阶段工程分析要求的最小地层或岩性层,二者都是利用地层(或岩性)界面直接分割基岩实体模型得到,还可以用于创建边坡块体。实体模型能够方便地进行交、并、减操作,如图4-14所示,可进行洞室开挖或基础开挖模拟。复杂的实体模型带有一个或多个空腔,可以表示岩体里的溶洞或脉体所占的空间。
图4-14 地质实体与地下厂房的布尔运算
二、基于剖面数据的三维地质体建模方法
基于剖面的三维建模方法是一种使用广泛的、通用的三维重建方法,这种建模方法最先在医学领域使用并得到快速发展,后来迅速扩展到军事、建筑、航空、地质等其他领域。该建模方法在医学领域的虚拟人技术中广泛使用,其通过电脑断层扫描(CAT)或者核磁共振(MRI)等技术,可以获得一系列相互平行的人体切片图像,通过提取对象的边界,基于轮廓线算法,生成三维人体模型。
在地质领域,剖面图是最基本的地震解译和钻孔分析的成果表达方式之一,随着三维技术的发展,人们意识到这种基于切面的三维建模方法同样适用于地质应用。1975年至1976年间,Kepple、Tipper以及其他研究人员将这种建模方法引入三维地质建模领域。从此以后,大量的基于剖面的三维地质建模方法和技术被提出来。国外的Meyres、Herbert、Jones、Schumaker、Muller和Lederbuch等先后都在基于剖面的三维建模方法上进行了卓有成效的研究。其中,Meyres将基于剖面的建模方法归结为四个子问题:对应问题、构网问题、分支问题和光滑问题。对应问题解决相邻剖面之间的轮廓线匹配问题。构网问题主要解决轮廓线之间的三角形构网问题,主要考虑满足某个或某几个相互兼容的准则,如最大体积法、最小面积法、最小角度法等。分支问题是解决同一对象在不同剖面上的组成部分的个数不同的问题。光滑问题主要解决将初始生成的三角网进行插值,从而得到更加光滑的三角网。
在国内,中国地质大学、中国矿业大学、北京大学、中国科学院等科研单位先后较早进行了三维地质建模方面的研究与开发工作。1995年至2006年之间,中国地质大学国土资源信息系统研究所的吴冲龙、毛小平、田宜平、翁正平、柳庆武、何珍文等先后提出了基于剖面图的数字盆地构造 地层格架建模方法,基于平面图的数字盆地构造 地层格架建模方法,基于钻孔的数字盆地构造 地层格架建模方法以及基于钻孔和剖面的动态建模方法。2002年至2005年期间,吴立新、齐安文、刘少华等先后提出了三棱柱(Tri-Prism,TP)模型,类三棱柱(Analogi-cal Tri-Prism,ATP),广义三棱柱(GTP)模型,似三棱柱(Similar Tri-Prism,STP)模型;但基于这些模型的算法大部分只是适合于钻孔数据。2006年,潘懋等提出了基于含拓扑剖面的三维地质建模方法,但没有在动态建模方面进行深入研究。
在动态建模方面,基于剖面建立的三维地质模型的不能动态重建问题一直困扰着该领域的专家学者。从20世纪90年代末期开始,人们意识到对于简单空间实体或者规则空间实体,可以通过单纯的剖分算法来实现动态构模。但对于基于剖面的复杂地质体建模,由于需要大量的人工交互,其中包含过多地质知识及人工智能推理过程,不可能通过剖分等简单算法来实现动态建模。因此,人们对三维地质体动态建模方法的研究逐渐从纯粹的空间构模的数据结构与算法研究转变为开始重视建模过程中的地质知识表达、推理与应用研究。1998年, Chiaruttini C等研究了空间与时态推理在地质建模中的应用问题,其模型采用表面模型(Subsurface Model),主要讨论了模型的时空约束规则及其诊断问题;Perrin M首次提出了地质语法(Geological Syntax),并对地质一致性(Geological Consistency)进行了探讨。1999年, Roberto等讨论了地质解释过程中的人工智能推理算法。2002年,Schoniger等提出了不确定性下的地质推理分析,并将其应用于地下水体重构研究。2005年,Minor等研究了基于用例推理的地质构造建模方法;Perrin在SEM(Shared Earth Model)基础上提出了适用于油气盆地重建的基于知识驱动的建模方法,采用的模型依然是面模型。2006年,Zheng Liang和Li Deren等提出了基于事件驱动的时空数据模型,没有进行模型重构方面的研究。2008年,何珍文对于基于非共面剖面拓扑推理的三维地质体重建方法进行了系统研究,并提出了相应的基于剖面数据的三维地质体动态建模方法。上述研究成果在很大程度上推进了空间推理在地质体建模中的应用研究,同时也为基于剖面的地质体动态建模的实现奠定了基础。
从上面的分析可以看出,不管是哪种基于剖面数据的三维地质体建模方法,都是通过地质剖面直接的拓扑关系和剖面之间的连接关系建立起来,这个过程就是三维地质体成体的过程。
1.地质剖面数据结构与拓扑关系表达
剖面是地质体建模的主要数据来源之一。在以往的文献中,用于地质体建模的剖面大多是共面的序列剖面,并且在建模过程中大多使用剖面上的轮廓线进行地质体表面生成。但是在实际过程中,很多剖面并不是共面剖面。由此,我们首先必须讨论适合于共面和非共面两种剖面的数据结构及其表达问题。
非共面曲面的拓扑关系我们用Topo Point、Topo Polyline、Topo Polygon和Topo Surface四个类来表示。我们这里提出的非共面地质剖面,去除其一定的地质含义外,从几何的角度来看,地质剖面就是一种非共面曲面。为了方便地质剖面的一些地质特性的表达和存储,我们从曲面拓扑关系对象模型派生出了相应的四个对象类,即Sect Node、Sect Arc、Sect Face和Sec-tion,如图4-15所示。结点(Sect Node)是一种特殊的三维几何点,它是弧段的起始点或终止点。弧段(Sect Arc)是一条由几何点顺序连接而成的三维有向线段,它和其他弧段只能相交于结点处。面(Sect Face)是由一系列弧段(Sect Arc)首尾连接形成的,在地质剖面上的封闭区域。结点(Sect Node)、弧段(Sect Arc)、面(Sect Face)的集合构成了一个非共面地质剖面,系统中用Section表示。由于Section是从Topo Surface继承而来,因此,其几何对象为Geom Sur-face。由于在三维地质建模过程中地质剖面一般都是一个或几个序列剖面,因此还设计了Sect Series对象来管理用于地质体建模的非共面地质剖面序列。关于基于剖面的建模方法将直接在该对象上实现。对于三维的非共面地质剖面上2.5D拓扑关系的生成,也可以通过剖面投影,如图4-16所示,采用“基于投影的三维空间曲面拓扑关系自动生成算法”(何珍文, 2008)来实现剖面上的拓扑关系。
基于剖面数据的三维地质体建模方法中最重要就是建立剖面之间的要素连接和拓扑关系,也即是三维地质体的成体过程。常见的剖面间成体有两种方式,一种是基于剖面编码的方式,一种是基于剖面推理的方式。
2.基于剖面编码的三维地质体建模思路
基于剖面编码的三维地质建模方法可以从三个方面来了解。
1)单体、线条(边)编码形式及方法
单体即相邻剖面间同期发育且具有相同沉积特征及相同构造控制背景,尤其空间位置上具有成因一致性的空间几何形体。这里所指的单体是一种狭义的单体定义。就广义而言,单体可以无限制地延伸,直至消失尖灭。为了便于建模输入处理,我们最终选择狭义单体作为建模输入的最基本单元,并且要求将其范围严格地定义在相邻剖面间。这样就使得线性插值只在剖面间进行,进而可以避免在X方向剪切时,剪切剖面出现面交叉、填充区属性无法判断等情况。根据以上定义及要求,在对单体进行编码时,我们采用四类码(地层代码、沉积相约定代码、沉积相编码、测线编码)逐层逐个进行界定,如图4-17所示。
图4-15 非共面剖面的数据结构模型
图4-16 剖面与剖面投影
属性编码是建立地层之间、断层之间以及地层与沉积相之间拓扑关系的重要步骤。必须遵循某些原则才能构成和谐的三维沉积盆地。
图4-17 单体编码示意图
(1)单体的编号必须以D开头,如D0、D1-0、D1-1。
(2)同一套地层之间单体的编号D后面的大号必须相同,如D1-0和D1-1都属D1。
(3)单体编号的大号后面“”的层次不限,可以有很多分支。
(4)单体的边的编号大原则,单体顶边为B1,底边为B2,左边为B3,右边为B4。
(5)如果四个周边每个边不是由一段组成,而是好多段,则编号可用“-”分支,如D0B3-1、D0B3-2、D1-1B3-22、D1-1B3-23等。
(6)边的编号用半角“,”分开,注意是半角而不是全角。如D0B3-2,D1-0B3-22,T断层。
(7)边的编号带地层信息,如D0B2,D1-1B1,T4中的T4就是地层信息。
(8)单体的边要求一一对应,即剖面1上的D0单体的边要与剖面2上的D0单体的边一一对应,编号一致,但是某剖面上的一条边可以重复使用,即如果将某边的属性设成另外剖面上的两条边的属性,则此边将与这两边分别插值。这一般用于单体的尖灭上,即某个单体收敛于一条边,也就是尖灭。
(9)共面原则:比如D0与D1-1两单体有一个共同的面,D0B2与D1-1B1是同一边,因此,此边的属性应该包含两单体的信息,即D0B2,D1-1B1,T4。要求用“,”分开。这样系统插完D0后,检查发现此面为D0和D1-1共用,就不再为D1-1重新插此面了。
(10)地层一致原则:剖面1与剖面2上边的对应要求在地层意义上一致,即不能让属T4界面的边和属T5界面的边对应插值,这在地质概念上是错误的。
基于上述原则,单体编码一般形式为:dxi-y-z-mn;xi为地层代码(i=1,2,…,7);y为沉积相约定代码;z为第i地层内沉积相编码;m、n为紧邻的两条测线编码。
单体编码通常以相界面(Tc)和反射界面为单体控制边界。除此之外,断层(TF)及基底边界(TG)当然也是单体边界。单体编码采用分段式编码方法,分为单段编码、多段编码。多段编码可以认为是单段编码的多次重复过程,这就决定了除模拟主体两端的剖面之外,其他剖面内所有非尖灭、合并单体均具有双重编号。
当沉积相较为复杂,同一套地层中同类型的相分开、合并的现象多次出现,为了避免编号重复,同时也是为了保证已有的编号在平面上的连续性,有必要对个别分叉的沉积相的编号进行拓展。
线条编码的一般形式为:dxi-y-z-mnbj-k;dxi-y-z-mn为线条所在单体的编号;j=1,2,3,4(1表示单体上部的边,2表示单体下部的边,3表示单体左部的边,4表示单体右部的边);k表示某边(上、下、左、右)的线条分段数。
2)相邻剖面间单体编码
相邻剖面间单体编码时,要着眼整体分析,至少要三条剖面联合考虑,结合不同沉积期沉积相的平面展布格架判断有关相单元的尖灭、合并情况;同时结合不同反射层构造平面图,确定有关断层的走向及剖面间断层的对应关系,力争最大限度地反映沉积、构造在三维空间的展布发育情况。
3)几种特殊地质实体模型的单体及线条编码处理技术
隆起地质模型是一种典型的盆地内部形态,在利用线性插值方法对其进行三维岩体建模时,必须作特殊处理。首先是在分段处理的原则下,确定单体的合并与尖灭的对应关系,使其既符合线性插值要求,同时又具备地质含义,为了便于描述,以下按紧邻的相邻两条剖面的分段剖析法进行化解处理。
沉积相尖灭包括两类:其一是水平方向的尖灭,处理方法类似隆起建模输入;另一类是由于断层引起的。由于断层是当然的单体边界,使得沉积相单体在跨断层时,时常出现相邻剖面间同一类单体出现在断层两侧或一侧,于是导致“断层式”沉积相尖灭。如果隆起或沉积相水平尖灭称为水平“楔子”的话,“断层式”尖灭我们可形象地称其为“垂向楔子”。图4-18为“断层式”沉积相尖灭建模输入处理方法示意。对于这类“垂向楔子”,在处理过程中一定要注意以下几点:①“垂向楔子”仅参与其所在单体的编码过程,尽管它所在的剖面可能并非起始剖面,但是楔子的含义就已经决定了其只能参与其所在单体一侧的编码。②“垂向楔子”的顶、底边(当出现楔子上下叠置时,楔子顶、底可能就不止一条边)必须进行拷贝覆盖,以免X方向剪切时出现大的空隙。
除了上面两种特殊情况外,有时还需要进行单体结构不相似的处理、断层编码及其消失处理等,如图4-19用剖面编码建模的实例。由于这种编码方式手动工作量大,编码规则繁琐,并且要考虑较多的特殊情况处理,目前这种建模方法已经较少使用,但可以为剖面推理建模提供推理思路和推理知识规则,从而减少建模工作量。
3.基于剖面推理的三维地质体建模方法
由于基于非共面剖面拓扑推理的三维地质体动态重构方法可以适用于共面的简单情况,因此,这里介绍的基于剖面推理的三维地质体建模方法讨论的基础是非共面剖面。可以归结为五个方面的问题。
图4-18 “断层式”沉积相单体尖灭建模输入方法示意图
图4-19 利用11条剖面经过编码对应插值生成的某坳陷三维构造地层格架
(1)曲面拓扑构建问题,是指构建非共面地质剖面上的2.5D拓扑关系。这个拓扑关系是下一步进行拓扑推理的基础。
(2)拓扑关系推理问题,是指根据剖面Section1和剖面Section2的拓扑关系集,推理出Section1中的拓扑多边形(Sect Face)与Section2中的拓扑多边形(Sect Face)的对应关系。
(3)虚拟剖面插值问题,是指当剖面Section1和剖面Section2之间出现拓扑集合不一致时,需要在剖面Section1和剖面Section2之间插入一个虚拟剖面来定位拓扑关系集合出现变化的临界位置,实现拓扑关系变化的平稳过渡。
(4)面体拓扑构建问题(成体问题),是指通过拓扑推理找到两个剖面上拓扑多边形(Sect-Face)对应关系后,实现两个多边形之间的链接和构面,完成面体拓扑关系的构建,也即成体问题。
(5)体内剖分与简化问题,是指建立三维地质体的表面集合后,对三维地质体以表面面片集合为约束条件,对三维地质体空间进行网格剖分,并对过密网格进行调整简化的过程。
这五个问题中,第(1)个问题是下一步推理的基础,第(2)、(3)、(4)个问题则是“动态重构算法”的主要建模过程,第(5)个问题也是一个相对独立的具体算法问题。这里我们重点讨论后(2)、(3)、(4)个关键问题,即拓扑关系推理与建模问题。
1)空间拓扑关系推理概述
空间推理(Spatial Reasoning)是人工智能学科处理常识性空间知识的一种方法,是指利用空间理论和人工智能技术对空间对象进行建模、描述和表示,并据此对空间对象间的空间关系进行定性或定量分析和处理的过程。空间推理的研究起源于20世纪70年代初,最初是以量空间为研究对象的,近年来成为了知识表示中的一个重要研究领域。
许多著名的学者在这个领域进行了探索研究,如美国匹兹堡大学的Chang教授研究了基于符号投影的空间关系表达与推理;美国国家地理信息与分析中心Maine大学的Egenhofer教授研究了空间拓扑关系的表达与推理;英国利兹大学计算机学院主任Cohn教授和Bennett博士研究了基于逻辑的定性空间关系推理;Cohn教授领导的定性空间推理研究组开展了一系列基于区域连接演算(Region Connection Calculus)理论的定性空间关系推理研究;中国国家基础地理信息中心的陈军教授进行了基于Voronio图的GIS空间推理研究,等等。研究成果主要体现在空间推理本体论研究、空间推理基本方法研究、空间关系的定性表达以及空间关系推理四个方面。
拓扑关系推理是空间推理(Spatial Reasoning)中最重要的研究内容之一。以往的拓扑关系推理方面的研究大多集中在二维空间拓扑关系的推理理论与方法上,对于三维拓扑关系的表达与推理研究很少。在以往的基于钻孔的交互式静态三维地质建模过程中,包含过多地质知识及人工智能推理过程,需要大量的人工交互理解,并做出相关地层界线连接等规则判断。由于没有较好的方法使得计算机能在建模过程中替代地质人员做出类似正确的判断,这在很大程度上阻碍了基于剖面的三维动态建模方法的实现。这里基于非共面剖面上2.5D拓扑关系的推理来实现计算机对剖面之间对应问题的自动求解。
2)地质剖面拓扑推理约定
在本节中,地质剖面拓扑关系推理采用产生式系统(Production System)。产生式系统是历史悠久且使用最多的知识表示系统,早已在自动机理论、形式文法和程序语言中得到广泛的应用。产生式系统用来描述若干不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对的概念。在产生式系统中,论域的知识分为两部分:用事实表示静态知识,如事物、事件和它们之间的关系;用规则表示推理过程和行为。由于这类系统的知识库主要用于存储规则,因此又把此类系统称为基于规则的系统(Rule based System)。这里不打算对产生式系统进行过多的叙述,关于产生式系统的相关基础知识请参见王士同主编的《人工智能教程》或其他相关参考文献。
为了使表达简洁清楚,我们首先给出以下定义。
定义1:用于判断拓扑多边形A和B是否属于同一类型的唯一属性,我们称之为关键类型属性(Key Type Property)。在地质剖面中的拓扑多边形的关键类型属性为地层岩性。如果多边形A的地层岩性为Q,则表示为Key Type Property(A,Q)。
定义2:拓扑多边形A的所有邻接多边形的关键类型属性(Key Type Property)构成的集合,我们称之为A的邻接关键类型属性集(Jiont KTPSet)。
定义3:如果剖面SA上的多边形A与其相邻剖面SB上的多边形B属于同一地质单体,则称剖面上多边形A与B相互匹配。表示为Matching(A,B)。
定义4:如果剖面SA、SB互为相邻剖面,在剖面SA上存在多边形A,记为Existing(SA, A);而在剖面SB上不存在与A相匹配的多边形,Inexisting(SB,A);则我们称A在SB上尖灭,表示为Annihilating(SA,A,SB)。
定义5:如果剖面SA,SB互为相邻剖面,在剖面SA上存在多边形A,且A的关键类型属性为Q;而在剖面SB上存在两个多边形B1,B2的关键类型属性都为Q的多边形;则我们称A在SB上分叉,表示为Bifurcating(A,B1,B2)。
注意:定义5只是定义了1对2的分叉情况,其他分叉情况比较复杂,但可以由1对2的基本情况进行推导,在这里不进行此方面的讨论。
定义6:在剖面之间拓扑关系推理过程中一个基本的概念或准则如下。
如果剖面S1上的拓扑多边形A和剖面S2上的拓扑多边形B满足下列条件。
(1)A、B具有相同的地层属性,表示为:
Key Type Property(A,Q).//多边形A的关键类型属性为Q
Key Type Property(B,P).//多边形B的关键类型属性为P
Equal(P,Q). //关键类型属性值P与Q相等
(2)A、B拥有相同的拓扑节点(Sect Node)数,表示为:
Sect Node Number(A,NP).//多边形A的拓扑节点数为NP
Sect Node Number(B,NQ).//多边形B的拓扑节点数为NQ
Equal(NP,NQ). //节点个数NP与NQ相等
(3)A、B拥有相同的拓扑弧段(Sect Arc)数,表示为:
Sect Arc Number(A,AP).//多边形A的拓扑弧段数为AP
Sect Arc Number(B,AQ).//多边形B的拓扑弧段数为AQ
Equal(AP,AQ). //弧段个数AP与AQ相等
(4)A、B具有相同的邻接关键类型属性集,表示为:
Jiont KTPSet(A,SQ).//多边形A的关键类型属性集为SQ
Jiont KTPSet(B,SP).//多边形B的关键类型属性集为SP
Equal(SP,SQ). //关键类型属性值集SP与SQ相等
则B是A在相邻剖面的延托,在建模过程中将实现A、B的互联和构网,表示为Matching (A,B)。将这条规则用Prolog语句表示如下。
Matching(A,B):Key Type Property(A,Q),Key Type Property(B,P),Equal(P,Q),
Sect Node Number(A,NP),Sect Node Number(B,NQ),Equal(NP,NQ),
Sect Arc Number(A,AP),Sect Arc Number(B,AQ),Equal(AP,AQ),
Jiont KTPSet(A,SQ),Jiont KTPSet(B,SP),Equal(SP,SQ).
从产生式系统的角度来看,Key Type Property、Sect Node Number、Sect Arc Number、Jiont-KTPSet、Equal、Matching都是事实描述函数。我们可以在事实库中将剖面中所有多边形的所有事实列出来,然后进行推理计算。这样我们就将剖面对比问题转换成了拓扑推理问题。下面我们分四种情况对算法进行讨论。
1)无拓扑变化情况下的拓扑推理与建模
如图4-20所示,这种情况是一种最普遍也是最简单的序列剖面,两个剖面之间的拓扑关系集合没有发生任何改变。为此,我们建立如下部分事实库和规则库,然后查询多边形对应问题。
图4-20 剖面拓扑关系知识表达示例图
///事实库
Key Type Property(Section1_B,P).
Sect Node Number(Section1_B,NP).
Sect Arc Number(Section1_B,AP).
Jiont KTPSet(Section1_B,SP).
Key Type Property(Section2_A,Q).
Sect Node Number(Section2_A,NQ).
Sect Arc Number(Section2_A,AQ).
Jiont KTPSet(Section2_A,SQ).
Equal(P,Q).
Equal(NP,NQ).
Equal(AP,AQ).
Equal(SP,SQ).
////////规则库
Matching(A,B):Key Type Property(A,Q),Key Type Property(B,P),Equal(P,Q),
Sect Node Number(A,NP),Sect Node Number(B,NQ),Equal(NP,NQ),
Sect Arc Number(A,AP),Sect Arc Number(B,AQ),Equal(AP,AQ),
Jiont KTPSet(A,SQ),Jiont KTPSet(B,SP),Equal(SP,SQ).
//////问询
?:Matching(Section1_A,Section2_A).//Section1_A与Section2_A是否有对应多边形?
通过上面这段代码,相同实现了不同剖面上的两个多边形的对应关系推理与查询。在动态重构算法中,最关键的就是实现剖面自动对比,上面的推理方法实现了两个剖面间任意两个多边形的对应关系判断和查询功能,也解决了在地层无拓扑变化情况下的剖面自动对比问题。
当找到多边形的对应关系后,剩下的问题就是要通过两个多边形构建封闭的地质体表面。由于对应的多边形A、B具有相同的拓扑节点数和相同的拓扑弧段数,因此,我们不难将弧段的对应关系找出来,进行弧段对弧段的成面,进而封闭成体表面。在此基础上,再以体表面为约束条件对地质体内空间进行网格剖分。
2)地层尖灭情况下的拓扑推理与建模
由于断层、侵入体等地质活动,会导致一些地层出现尖灭现象,即某一地层在当前剖面上出现,而在下一个剖面上没有出现。如图4-21所示,剖面Section1上的地层B在剖面Section2上没有出现。在这种情况下,尖灭地层的某些多边形无法自动找到匹配的多边形。这样我们就需要在剖面Section1和Section2之间插入一条虚拟剖面Section1 2,其上应该存在一个无限小的多边形B与Section1上的B相对应。根据给出的尖灭点的位置不同,虚拟剖面Section1 2的插入位置也不同。关于虚拟剖面插值问题,我们在第五章进行讨论。
在人工交互建模过程中,人一眼就能看出地层的尖灭情况,但是计算机不能。因为,人做出的判断是经过大脑对人眼看到的信息进行了智能推理得出的。因此,为了让计算机能识别出地层尖灭情况,必须建立地层尖灭的推理模型。
关于地层在相邻剖面之间的尖灭判定规则是:如果地层A在剖面SA上出现,而在剖面SB上消失,则可以判定在剖面SA和SB之间,地层A发生了尖灭。有了上述基本规则后,我们就能通过人工智能推理判断地层的尖灭情况。以如图4-21所示的情况为例,下面伪Prolog代码给出了地层B的尖灭推理实现。
//事实库
Existing(Section1,A).
Existing(Section1,B).
Existing(Section1,C).
Existing(Section2,A).
Existing(Section2,C).
Inexisting(Section2,B).
//规则库
Annihilating(SA,Q,SB):Existing(SA,Q),Inexisting(SB,Q).
//问询
图4-21 剖面上地层尖灭示例图
?:Annihilating(Section1,B,Section2).//Section1上的B是否在Section2上尖灭?在存在地层尖灭的情况下,除了需要追加地层尖灭的判定推理外,其他的过程与无拓扑变化情况下的推理建模过程一样,但定义6中的准则条件必须去掉②、③、④条。在此不再累述。
3)地层分叉情况下的拓扑推理与建模
在实际的地质环境中,地质体除了会发生尖灭外,还有一种相反的情况,就是出现地质体分叉情况。如图4-22,图中剖面Section1显示了一个矿体轮廓与围岩轮廓的分布情况,而在Section2剖面上矿体分成了两个独立的轮廓。这样,Section1上的矿体多边形无法再与Section2上的矿体多边形匹配了。在这种情况下,系统必须在剖面Section1和剖面Section2之间插入一条临界状态的虚拟剖面,如图4-22的Section1 2剖面,主要讨论如何推理判断两个剖面间出现的地层分叉情况。
如图4-22,我们把Section1上的矿体多边形记为A,将Section2上的矿体多边形记为B1,B2;矿体的类型属性记为Q,则矿体A分叉情况的判定推理实现如下。
//事实库
Existing(Section1,A).
Existing(Section2,B1).
Existing(Section2,B2).
Key Type Property(A,Q).
Key Type Property(B1,Q).
图4-22 剖面上地层分叉示例图
Key Type Property(B2,Q).
//规则库
Bifurcating(PA,PB1,PB2):Key Type Property(PA,M),
Key Type Property(PB1,N),
Key Type Property(PB2,T),
Equal(M,N),
Equal(N,T).
//问询
?:Bifurcating(A,B1,B2).//Section2上的B1,B2是否是Section1上A的分叉?
在存在地层分叉的情况下,除了需要追加上述地层分叉的判定推理外,其他的过程与无拓扑变化情况下的推理建模过程一样,但定义6中的准则条件必须去掉(2)、(3)、(4)条。在此不再累述。应该提出的是,这里只定义了1对2的分叉情况,其他分叉情况比较复杂,但可以由1对2的基本情况进行推导,在此不进行深入的讨论。
4)含断层情况下的拓扑推理与建模
由于断层、褶皱等构造运动的影响,会导致地层接触关系发生较大变化。特别是当地层在断层作用下产生错断、滑移,而导致断层的弧段组成以及弧段的左右多边形属性变化时,3)中的拓扑推理建模的多边形匹配方式会失败,这时需要增加虚拟剖面来辅助建模。如图4-23的剖面Section2所示,这个剖面就是一个虚拟剖面,它代表了由于地层沿断层面滑移过程的一个临界状态。
在Section1中有三套地层,由于断层作用,这三套地层变成了九个地质单体,即B1、B2、B3,它们的岩性均为B;A1、A2、A3,它们的岩性均为A;C1、C2、C3,它们的岩性均为C;存在两个断层:F1和F2,断层F1由五个弧段构成,其中粗线显示的是一条比较特殊的弧段,我们记为Arc_F1_A,表示它是F1的组成弧段,并且其左右多边形的关键类型属性都是A;同理它还有两个同样的弧段:Arc_F1_B和Arc_F1_C;我们将这种位于断层线上,并且左右多边形的关键类型属性相同的弧段称为“同性弧段”;同时将弧段两边的多边形具有的关键类型属性称为“同性弧段属性”。
图4-23 剖面上断层滑移示例图
当两个含断层的剖面之间满足下列条件时,我们认为剖面之间拓扑关系没有发生本质变化,可以采用3)的方法进行推理建模:
(1)两个剖面上对应断层所包含的“同性弧段”的数目相同。
(2)两个剖面上对应断层所包含的“同性弧段”的“同性弧段属性”构成的集合相等。
上述规则我们用于判断含断层的相邻剖面之间是否发生拓扑关系变化,进而判断是否需要进行虚拟剖面插值,为了判断方便,我们可以采用上述规则的等价命题来表述如下:
(1)两个剖面上对应断层所包含的“同性弧段”的数目不相同。
(2)两个剖面上对应断层所包含的“同性弧段”的“同性弧段属性”构成的集合不相等。
上述两条中满足任何一条,则可以判定两个相邻剖面发生拓扑关系变化,需要进行虚拟剖面插值处理。
用Prolog伪代码实现的判定推理过程如下(只针对地层A和断层F1):
//事实库
Existing(Section1,S1_F1).
Existing(Section1,S1_A1).
Existing(Section1,S1_A2).
Existing(Section1,S1_A3).
Key Type Property(S1_A1,A).
Key Type Property(S1_A2,A).
Key Type Property(S1_A3,A).
Existing(Section2,S2_F1).
Existing(Section2,S2_A1).
Existing(Section2,S2_A2).
Existing(Section2,S2_A3).
Key Type Property(S2_A1,A).
Key Type Property(S2_A2,A).
Key Type Property(S2_A3,A).
Fault Arc Number(S2_F1,P).//表示组成断层S2_F2的同性弧段数是P
Fault Arc Number(S1_F1,Q).//表示组成断层S1_F2的同性弧段数是Q
Fault Arc Prop Set(S2_F1,SP).//表示组成断层S2_F2的同性弧段的属性集合是SP
Fault Arc Prop Set(S1_F1,SQ).//表示组成断层S2_F2的同性弧段的属性集合是SQ
//规则库
Fault Topo Equal(Section1,Section2):
Existing(Section1,S1_F1),Existing(Section1,S2_F1),
Fault Arc Number(S2_F1,P),Fault Arc Number(S2_F2,Q),
Fault Arc Prop Set(S2_F1,SP),Fault Arc Prop Set(S2_F2,SQ),
Equal(P,Q),Equal(SP,SQ).
//问询
?:Fault Topo Equal(Section1,Section2).//Section2和Section1是否含有断层并拓扑发生变化?
上面伪代码实现了Section2和Section1是否含有断层并拓扑发生变化的判断推理,在存在断层,并且由于断层导致地层滑移而产生拓扑关系变化时,除了需要进行断层及拓扑变化判定推理外,其他的过程与无拓扑变化情况下的推理建模过程一样。但定义6中的准则条件必须修改一下,那就是所有位于断层线上的弧段不得计入定义6中的弧段操作。图4-24是用剖面推理方法实现的三维地质体建模的实例。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。