首页 百科知识 基于钻孔数据的三维地质体建模方法

基于钻孔数据的三维地质体建模方法

时间:2022-02-01 百科知识 版权反馈
【摘要】:正是由于钻孔数据在地质建模中的重要地位,基于钻孔的三维地质体建模方法也是基本的建模方法之一。这些成果对基于钻孔的三维地质建模方法起到了较好的推动作用。Stratum Series表示一系列钻孔所在区域的标准连续地层信息,每个地层的信息用Stratum Info表示。所有的基于钻孔的建模方法都是基于这个数据结构模型进行的。
基于钻孔数据的三维地质体建模方法_地学三维可视化

钻孔作为地质资料的第一手资料,能够记录大量地质实体单元的原始信息,是研究地下地质体(如固体矿体、油气藏、地下煤层、地下岩体等)结构与构造的最基本的资料;也是构建真三维地质体不可或缺的原始数据。正是由于钻孔数据在地质建模中的重要地位,基于钻孔的三维地质体建模方法也是基本的建模方法之一。

图4-24 剖面推理方法实现的三维地质体建模实例

1.基于钻孔的地质建模方法研究进展

目前,在三维地质建模方面已经出现了一些比较完善的三维地质建模软件,国外的如GOCAD、MVS、Micro Station、Surpac等;国内的如Quanty View、Geo Mo 3D、Titan 3DM等提供了较强大的三维建模与分析工具,实现了多种数据的三维综合建模、显示和分析。这些软件中针对钻孔建模的特殊性,大多提供了专门针对钻孔数据的三维地质建模工具,这些建模工具的实现都是以静态交互建模为基础的。

20世纪90年代中后期,中国地质大学吴冲龙等在进行油气盆地模拟研究过程中提出了建立构造 地层格架三维可视化数值模拟理论。根据建模所采用的数据信息来源不同,主要有三种途径:基于地质平面图建立构造 地层格架、基于地质剖面图建立构造 地层格架、基于钻孔数据建立构造 地层格架。针对基于钻孔数据建立构造 地层格架的建模方法,吴冲龙、柳庆武等对此进行了专门研究,并在Quanty View软件中进行了静态交互实现和自动建模方面的初步探讨。

中国科学院岩土所王笑海在基于三维拓扑格网结构的GIS地层模型研究中介绍了利用钻孔资料建立三维岩土工程地基模型的方法。该模型根据地层的特点,将地层信息归纳为四种,即点状目标、线状目标、面状目标和体状目标,分别用结点、线、面片、体四种元素来进行几何描述。其特点是:存储量小,检索查询操作简单,易于与其他数据格式的对象集成,较好地解决了地基岩土结构的三维表达问题。

受到钻孔数据特点启发,2002年至2005年期间,中国矿业大学的吴立新、齐安文、刘少华等先后提出了三棱柱(Tri Prism,TP)模型、类三棱柱(Analogical Tri Prism,ATP)模型、广义三棱柱(GTP)模型、似三棱柱(Similar Tri Prism,STP)模型;并针对这些模型进行了相应的建模方法研究。

在2003年左右,美国Brigham Young大学EMR实验室Alan M.Lemon和Norman L. Lones也共同探讨了基于钻孔数据,采用用户自定义钻孔剖面图来建立三维实体模型的建模方法。Alan和Norman提出的HORIZONS建模方法先根据用户指定钻孔生成钻孔剖面图,再根据剖面图进行三维插值,应归属基于地质剖面图的技术范畴。这一过程涉及到相当大的人机交互工作量,也需要操作人员具备地质科学专业知识。因此,HORIZONS建模方法也属于静态交互建模范畴。

可见,基于钻孔的三维地质建模一直是三维地质建模的重要方法。众多专家学者对此进行了深入的研究,但这些研究主要集中在基于钻孔的静态交互建模方法探讨上。2008年何珍文提出了基于钻孔的动态建模方法,2013年翁正平又提出了基于钻孔所建立模型的动态更新算法。这些成果对基于钻孔的三维地质建模方法起到了较好的推动作用。

2.地质钻孔数据结构与可视化表达

地质钻孔根据打钻目的以及所属专业的不同可以分为第四纪钻孔、基岩钻孔、水文钻孔、环境监测钻孔、工程钻孔、油气田钻孔、大陆超深钻孔等。从打钻的深度来看,前面五种钻孔属于浅层钻孔,后面两种属于深层钻孔。这些钻孔由于打钻的目的不同,一般记录的数据项也会有所不同。如图4-25、图4-26所示的是在城市地质信息系统中采用的基岩和第四系的钻孔数据模型的E R图。

图4-25 基岩地质钻孔与化验数据关系图

图4-26 第四纪地质钻孔与化验数据关系图

由于不同种类的钻孔数据模型不同,必然导致各种钻孔的数据结构有所不同;钻孔数据的作用很多,但单就基于钻孔数据进行三维地质建模,钻孔的很多不同类型的测试信息往往是可以不加入地层建模的(属性参数建模可能会用到)。因此,我们对钻孔的数据结构进行了统一,将钻孔数据划分为三个层次,即孔段、钻孔和钻孔群;分别用Bore Segment、Borehole和Boreset表示,如图4-27所示。本章中将这三个对象和另外两个辅助地层对象构成的模型称为Bore-Model钻孔模型。

在这个模型中,Bore Segment代表钻孔经过的一个地层,key:string表示这个孔段或地层的字符串标识,一般记录的是地层的年代符号或分层符号;start:Vertex和end:Vertex记录的是孔段或地层的上界面和下界面位置;color:Color记录的是地层的显示颜色;values:Value List记录的是与地层相关的属性信息。Borehole代表一个完整的钻孔,由从上而下的多个孔段或地层组成。其中key:string用于在一定的钻孔集合中唯一的标识钻孔;position:Vertex记录了钻孔的孔口坐标;values:Value List记录的是与钻孔相关的属性信息。Boreset对象表示钻孔几何,由多个钻孔组成,每个钻孔具有唯一的标识key:string。

Stratum Info和Stratum Series是两个辅助类。Stratum Series表示一系列钻孔所在区域的标准连续地层信息,每个地层的信息用Stratum Info表示。每个Bore Segment中的key:string必须与一个Stratum Info的code:string对应。一个标准地层序列与一个Boreset钻孔集合相对应。对于不同种类的钻孔,在三维地质建模过程中都首先将其处理成Bore Model钻孔模型。所有的基于钻孔的建模方法都是基于这个数据结构模型进行的。

图4-27 Bore Model对象模型

地质钻孔一般是以数据库的形式存放的,在实际工作中,钻孔编录往往采用Excel或Access等小型电子表格或数据库软件进行存储管理;而专门的钻孔数据库一般采用SQL Server或Oracle等中大型数据库软件进行存储管理。由于数据库存放的都是关系型数据,用户无法直观地看到钻孔的空间布局。因此,对于钻孔的表示一般有三种图形表达方式。

第一种是以钻孔柱状图的形式进行表达。如图4-28的钻孔柱状图。第二种方式是三维的线画表示方式,如图4-29所示。第三种就是三维立体表现方式,这种表现方式不仅考虑了钻孔的空间位置,还考虑了钻孔的孔径,如图4-30所示。

3.基于钻孔的连续地层匹配动态建模方法

从前面的叙述中可以看出,目前关于基于钻孔的静态交互式建模方法已经比较成熟了,众多的三维地质建模软件也都提供了基于钻孔的交互式建模工具。本节将主要就特定条件下的基于钻孔的自动建模方法进行讨论。这里的特定条件指的是我们假定钻孔区域的地层没有出现过地层倒转情况,但可以出现尖灭或地层缺失情况。在这种前提条件下,本节提出了基于钻孔的连续地层动态建模方法。该算法主要可以分为钻孔数据的获取与处理,建立研究区域的连续地层序列,地层层面模型的建立和三维地质体的构建四个主要步骤。

图4-28 钻孔柱状图表现方式

图4-29 钻孔三维线划表现方式

1)钻孔数据的获取与处理

钻孔数据由于格式不一样,一般要编写相应的钻孔数据读取程序来实现。在本章中,通过Boreset提供了多种钻孔数据格式读取功能。以图4-28所示的基岩地质钻孔为例。其中的“基岩地质钻孔基本信息表”,每条记录即是一个钻孔,其中的“钻孔编号”字段为该表的唯一关键字段,该字段对应于Borehole::key,该表中的每天记录生成一个Borehole对象;其中的“基岩地质钻孔分层属性表”,每条记录代表每个钻孔的某个地层信息或孔段信息,系统用Bore-Segment来存储记录。通过“基岩地质钻孔分层属性表”中的“钻孔编号”字段可以确定每个孔段属于哪个钻孔。对于图4-28所示的钻孔数据库结构,如果仅仅进行简单的三维基岩地质建模,除了“基岩地质钻孔基本信息表”和“基岩地质钻孔分层属性表”外,可以不用提取其他表中的属性信息。

图4-30 钻孔三维岩芯表现方式

当处理完后,将生成一个Boreset对象,其中包含了多个Borehole对象,每个钻孔对象中包含多个Bore Segment对象,Bore Segment的排列规则为上层的地层在前,下层的地层在后。这样就将钻孔数据库中的数据转化成了一个Boreset对象。建模方法的输入参数我们可以传入这个Boreset的引用或指针。对于后续的虚拟钻孔插值算法而言,传入的是一个Boreset,传出的将是一个新的Boreset。当把钻孔数据读取到钻孔集合对象Boreset中后,我们就完成了钻孔数据的准备与处理工作。由于钻孔数量一般比较有限,因此在进行建模之前一般要对钻孔进行插值处理,可以“虚拟钻孔插值算法”来处理这个问题(何珍文,2008)。

2)建立研究区域的连续地层序列

在建立地层层面之前,该算法需要通过人工实现建立研究区域的标准连续地层。表4 1是标准地层代码及色谱表。这个表是针对全球范围的地层序列建立的,是一个标准的连续地层序列。但我们的研究区域往往相对较小,表4-1所列的地层不可能都出现。还有一种情况是为了某种具体研究的需要,研究区域的地层划分比这套标准地层划分更细腻。如表4-2所示,表中列出的为某个研究区域的地层序列;其中对全新世、更新世、上新统、中新统的地层进行了更细粒度的划分。

表4-1 标准地层代码及色谱表

续表4-1

表4-2 某研究区地层对照表

建模算法需要一个类似表4-2的地层序列,并用Stratum Series记录存储。每一个地层代号对应一个Stratum Info,所有的钻遇地层的集合就构成一个钻遇地层序列Stratum Series。这个地层序列就是下一步自动建立地层层面模型的根据之一。然后再对Boreset中的所有孔段Bore Segment的key:string字段进行检查,看看是否都是钻遇地层序列中的地层,如果没有出现,则应该重新调整标准地层序列,并加入没有的地层。此外对于地层序列中出现了而所有的钻孔却没有遇到的地层,应该从地层序列Stratum Series中删除,该功能的C++实现代码如下。

bool Boreset::check(Stratum Series &ss){

bool b=true;

size_t t=0;

size_t k=ss.size();

std::vector<char> flags(k,0);

for(size_t i=0;i<series.size();i++){

for(size_t j=0;j<series[i].size Segments();j++) {

t=ss.find Stratum(series[i].get Segment(j).get Key());

if(t<0){//如果没在地层序列中发现该地层代码,则Boreset与地层序列不匹配,需要进行处理。

b=false;

return b;

else{//如果找到了,则将地层序列中的该地层标记为访问过。

flags[t]=1;

//删除地层序列Stratum Series中的钻孔没有遇到的地层,也即删除所有标记为1的地层。

for(size_t i=0;i<k;i++){

if(flags[i]==1){

flags.erase(flags.begin()+i);

ss.erase Stratum(i);

k--;

i--;

return b;

3)地层层面模型的建立

在建立了参考地层序列后,就可以使用经过插值处理的钻孔集合进行底层层面建模了。主要步骤如下。

遍历钻孔集合Boreset,获取所有的钻孔的孔口坐标,生成坐标点列表vertexlist。

(1)对坐标列表vertexlist进行三角剖分,得到曲面S0,这个曲面代表地表面,并将vertex-list清空。

(2)获取ss:Stratum Series中的第i个地层的代码code;遍历Boreset中的所有钻孔;如果钻孔中含有地层代码为code的孔段Bore Segment,则将该孔段的尾坐标点Bore Segment::end放入vertexlist中,并设置标记数组holes,在holes中的相应位置标记该点不是孔洞点;如果钻孔中不含有地层代码为code的孔段Bore Segment,则查找code的前地层代码prev_code,如果prev_code为空,则持续查找前地层代号,直到prev_code为有效地层代号为止,并将该钻孔中的地层代码为prev_code的孔段的尾坐标加入vertexlist中,并在holes中的相应位置标记该点是孔洞点。

(3)对坐标列表vertexlist进行限定Delaunay三角剖分,其中holes数组标识了列表中的点是否为孔洞,剖分后得到曲面Si,这个曲面代表地层代号为code的地层底表面,并将vertexlist清空,将holes标记数组复原为非孔洞标识状态。

(4)重复(2)、(3)两步,完成所有地层的底面生成,得到曲面序列S,表示为Surfaces_Old={Si|0≤i<ss.size()};其中ss.size()表示标准地层序列中地层的层数。

(5)在建模过程中,为充分利用已有的钻孔信息,我们在对研究区域进行三维地质建模时会把研究区域周边的相邻钻孔也考虑进来。如果属于这种情况,则必须利用研究区域边界对裁剪Surfaces_Old中的所有曲面进行裁剪,得到新的曲面集合Surfaces。如图4-31所示。

图4-31 研究区域边界与地层层面的裁剪

4)三维地质体的构建

建立地层层面后,接下来就要进行地质体的生成以及拓扑关系的建立。主要实现步骤如下。

(1)在Surfaces={Si|0≤i<n,其中n表示标准地层序列中地层的层数}中取曲面Si和Si+1;求出顶和底的边界线条,根据两条边界线条,生成该地层的侧面SPi,并将侧面中的奇异三角形剔除。

(2)修正顶面Si和底面Si+1的拓扑结构,将顶面和底面中重合的地方删除。

(3)将顶面Si、底面Si+1和侧面SPi,分别转化为拓扑曲面(Topo Surface)TSi、TSi+1和TSPi,构造成一个地质体Topo Solid,记为TSi

(4)调整TS与Si、Si+1和SPi之间的拓扑关系。

(5)从i=0开始循环,完成所有的地质体构建,自动建立的含有地层尖灭的三维地质体模型如图4-32所示。

图4-32 自动建立的含地层尖灭的地质体模型

(6)以地质体表面为约束条件,对地质体内部进行限定网格剖分,形成体内部网格;然后对网格进行密度简化和调整。最终形成三维地质体。

图4-33是采用上述建模方法建立的模型与地表模型的集成显示,图4-34是该模型的多洞室剪切后的效果图。该算法适用于不存在地层倒转和重复的研究区域的三维地质建模。如果出现这种情况,则需要采用人工干预的方式进行建模。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈