发布网友 发布时间:2022-04-22 07:55
共1个回答
热心网友 时间:2022-06-18 03:35
在前期项目的工作基础上,我们总结了大量的建模经验、教训,并结合地质专业技术人员的专业指导,针对华北平原地区的特点,提出一套建模流程。根据其构建流程,有条不紊地完成建立模型,模型制作的流程:
(1)数据的收集、整理与检查。包括剖面数据的预处理,钻孔数据的预处理,以及剖面数据与钻孔数据的配准等工作。并且通过Mapgis格式的华北地区底图,提取出地表离散点信息。此外,搜集了渤海地区的海底数据。
(2)数据导入到建模系统软件中,进行模型构建。将剖面数据、钻孔数据、地表离散点数据以及渤海海底数据等,导入到工区中,按照一定的建模顺序依次建立各模型元素。
(3)根据导入的数据,理清其对应的关系,依序建立各种地质体。按照上面建模过程中生成的地质元素,建立地质体模型。
(4)检查与校验。检查、校验所建立的三维可视化模型,如果发生错误,重复前面的步骤,进行模型的修改工作。
(一)导入剖面数据
剖面是地质专业人员根据工作要求,依据钻孔信息绘出的地层断面图,需要说明的是,剖面图也许不是地质情况的真实反映,但它包含着技术人员的推理和经验,可以说是地层情况最接近真实的反映。剖面图的存放格式,由于各技术队伍作图采用软件不同,图形存放的文件格式也不尽相同,主要有MAPGIS图形数据格式和AUTOCAD图形数据格式。本系统的数据输入可留出这两种图形文件数据接口。具体地说,若是MAPGIS图形格式,采用把图形数据转换成MAPGIS明码文件文本数据格式,再读入系统进行复原即可。若是AUTOCAD图形数据格式,可把DWG图形文件格式转换成DXF标准图形文件格式,读入系统即可。还可把MAPGIS和AUTOCAD两种图形文件混合输入。例如需在剖面图上添加岩性颜色,即可在MAPGIS中调用剖面,做岩性颜色区文件,再输出MAPGIS明码文件,可很好地解决剖面图剖面数据输入问题。对于三维建模系统来说,这种方式可很好地解决地下各含水层的表达问题。
MAPGIS明码文本文件包括两种文件,即.WAL和.DXF文件,.WAL文件记录了测线的名称、段数和测点坐标等信息,.DXF文件记录了剖面上的点和线等内容信息。通过读入这两种文件和一些变换便可以导入剖面信息,将剖面立在工区中(工区用来在三维地质体中划定一个待研究的区域,它是一个立方体,有一个顶面、一个底面及四个侧面。用户关心的所有地层、断面等都将包含在这个立方体中。)。从.WAL文件中读出剖面线上每个点的位置信息,每两个相邻的点可以确定一个面。图5-93为剖面导入到工区中的情况。
将剖面信息导入后,用户便可以观察剖面上的各种信息,并对进行分析。剖面是生成地层、断层、透镜体等的主要数据源之一,用户要从剖面上拾取地层线、断层线、透镜体线用于在后面生成各种地质元素,并且可以根据地质专家的要求对这些线信息进行增加、修改、删除等编辑操作。
图5—93 剖面导入到工区中
1.拾取断层线
拾取断层线时,首先在树节点上选定一个剖面,选择拾取断层线功能,便可以用鼠标左键在剖面上拾取合适的线用来控制生成断层,拾取完后要指定所拾取折线所属的断层。同样,可以完成在剖面上增加一个断层线的功能,增加断层线时要根据专家的意见,合理增加,以便更好的控制断层的生成。当我们选中一个断层线时,可以对它进行编辑操作。如图5—94。
2.拾取地层线
在拾取地层线时,首先在树节点上先选定一个剖面,然后旋转观察各个剖面上的信息,以便确定哪些线属于同一个地层,确定后再对剖面上的线进行拾取。拾取完成后,要设置每一条线所属的地层,以便后面生成地层时进行识别。同样,可以完成在剖面上增加一个地层线的功能,增加地层线时要根据专家的意见,合理增加,以便合理的控制地层的形态。由于剖面图是在平面上绘制的,这样就会有一定的误差,表现在导入的剖面上,相同的地层线不能吻合,这样就会对生成的地层产生影响,需要进行一定的编辑。系统按照需要提供了这样的功能,首先在树上选中一条地层线节点,并选择编辑地层线功能,便可以完成对地层线的编辑操作。如图5—95。
图5—94 拾取断层线
图5—95 拾取地层线
(二)导入钻孔数据
钻孔数据主要包括钻孔各地层深度、岩性、所属时代等与地质结构相关的内容。钻孔数量有240多个,主要分布在黑河流域平原区。钻孔数据已装订成册记录,为符合建模数据的要求,把钻孔全部录入到地下水资源数据系统Access数据库Gwexplore中。钻孔数据是地质技术人员在野外钻探现场记录并整理的第一手技术资料,它对于模型的生成起直接或间接校正的作用,因此,要对钻井数据进行充分利用。我们实现了对断层钻点、地层钻点以及透镜体钻点的加载和编辑功能。
1.导入钻孔数据
导入钻孔数据时,首先切换到钻孔模型树下,选中“钻孔集”根节点,然后选择将导入的钻孔数据文件,连接数据库。完成了数据库的连接之后,用户可以选择导入所有钻孔或单个钻孔信息,这样就将钻孔信息加载到了工区中。同样,用户也可以选择断开与钻孔数据源的连接。如图5—96。
图5—96 导入钻孔
2.编辑钻孔数据
导入了钻孔信息后,用户可以对钻孔进行一些编辑操作。首先在屏幕上选择一个钻孔,如果该钻孔信息不符合实际情况,点击右键将该钻孔删除。
导入了钻孔数据后,选择一个钻孔,用户便可以在该钻孔上添加钻点信息,并设置该钻点所属地质元素类型,即断层、地层或透镜体,并且制定所属地质元素的名称,如图5-97,创建了一个钻点,并指定该钻点信息属于地层“第四含水层”。创建的钻点将严格控制地质元素的生成。
图5—97 创建一个地层钻点
(三)地表建模
1.地表的生成
生成地表的主要数据是地表离散点数据,地表离散点数据由ARCINFO格式数据转换而来。组成等高线的平面线段与它的高程值一一对应,这样,就有了地表的三维坐标集。系统输入时,读入组成等值线的各个点,即读入各个线段的点,结合线段所对应的高程值,就形成了生成模型所需的离散点,系统使用这些离散点进行插值,生成地表。由于数据较多,这样离散点的密度也大,以MAPGIS明码文件存放的数据容量达到150多兆,如果把这些数据都输入到系统中,插值生成地表面,那么生成地表面的小三角形数量将会相当大,占用过多的计算机资源,对后续模型的构建影响很大。同时,生成地表面时速度慢,效果不理想。因此就需要对这些离散点进行抽稀处理。抽稀的效果是减少等值线上的点的数量,由于等值线上有大量的点存在,按比值抽稀不会对它的精度造成影响。抽稀后,生成模型所需的离散点密度降低,离散点的数量减少,系统生成地表面时速度加快,地表面的平滑度提高。对于地表面的一些坏点,如高程值过高或过低的点,即高程高于地表最高点,或高程低于地表最低点的高程,这些点是由于误差或数据转换时造成的,使用这样的点插值,就会造成地表面的起伏变化剧烈,地表面粗糟不平,影响地表面的光滑度。因此,对于这样的点需要在输入系统时进行剔除处理,即在系统输入模块中,采用门槛值进行*,过高或过低的点剔除,不让其参与建模。
将处理后的离散点数据导入到工区中作为控制点,采用DSI插值技术生成三角网,用这个三角网来描述地表的形态。
2.加载地表信息
(1)地理信息数据。地理信息数据包括河流、铁路、公路、湖泊、城市等点、线、面图元信息,这些信息对于增强三维可视化模型的内涵、增强模型的展示效果具有积极的作用。每项地理信息数据读入后,采用OpenGL技术来实现这些图元在三维模型中的显示状态,同时给出对应的属性信息内容。但建模系统目前不做GIS方面的分析功能,留待后续开发时进行功能增强。
(2)遥感影像图片。地表网格剖分完成以后,系统采用OpenGL的纹理映射技术,将卫星影像贴到地表,这样使整个模型看起来更加真实,效果更好。为减少内存占用量,卫星影像在保证可视化分辨率的前提下,转变为位图图像格式(.bmp)读入。
为了使遥感影像图片与生成的地表网格贴合得很好,位置更准确,系统采用三点坐标定位的方法对图片进行校正。校正的方法是从图片上选取三点,确保这三点不在同一条直线上,将它们分别记作P1、P2和P3,用户要知道这三点的真实坐标值,为此可以选那些具有标识性的地理位置点。我们设图片贴到地表上时这三点的坐标为Old_P1、Old_P2和Old_P3,而输入的真实坐标为New_P1、New_P2和New_P3,依据最小二乘原理可以得到一个变换矩阵M。
用矩阵M对图片的四个顶点进行变换,即可以得到校正后的图片。图5—98是加载了地理信息和遥感影像图片的地表。
图5—98 加载信息后的地表形态
3.网格大小的确定
模型所建的地质体如地表、地层、断层和透镜体等都是由网格相连构成面,面相包而组成体。构成模型的最小单位是小三角形,三角形的数量多少对模型的精度、系统运转的快慢有直接的影响。
一般来说,生成模型的三角形网格过大,则模型面比较粗糙,模型不精细,甚至不能表现面的形态特征,网格过小,则网格的密度大,对这些三角形运算需占用大量的系统资源,使计算机处理的数据量剧增,从而使机器运行速度慢,如果离散点数据量过多或过少,则会使模型面较复杂,不能表现模型面的总体特征。因此,在构建模型时,需要选择合适的网格大小。
经过实践,地表的网格大小选用50~200m的格网间距较好,机器速度和表面光滑度能达到协调统一。一般在模型初建中,选用200m的格网间距,机器速度快,如果需要对建模区域进行分割,如黑河流域模型,则在小盆地模型构建完成后,选用50m格网间距进行地表面生成,使地表面比较精细。
地层和断层由于使用剖面图上的线段进行建模,系统会自动在这些线段上加密离散点,选用100~200m的格网间距,对地层和断层的生成影响不大,精细度也符合要求。透镜体由于其面积小,对精度要求适中,因此网格大小选用50~100m的格网间距即可满足需要。
对于栅格数据,如遥感影像图片,其空间分辨率可根据模型显示的精度调整像素的大小。一般100~300dpi 即可。可根据需要把精细的具有800多兆的遥感影像图片生成BMP、JPG等图形格式,达到保证像素精度和减少内存占用量的需要。
(四)断面建模
1.断面的生成
在断面建模之前,要先导入剖面图和钻孔以及断层线等信息。根据导入的剖面图、断层线和钻孔信息,来生成模型的断层。生成断层有两种方式,即根据剖面上的断层剖面线和根据离散点数据生成。
将剖面导入三维建模软件系统之后,对剖面上的断层线进行分析,选定属于相同断层的剖面断层线,然后进行剖分、插值生成断层。如图5—99所示。
图5—99 根据剖面上的断层线生成断层
通过导入的离散点也可以生成断层,或者在钻孔导入三维建模软件系统之后,通过在孔轨迹上指定断层上的钻点,然后通过剖分、插值生成断层。如图5—100所示。
图5—100 根据离散点生成断层
2.断面的编辑
断层生成之后,根据需要可以编辑断层边界和使用控制点编辑断层,改变断层面的形状,还可以通过修改属性框中的内容来编辑断层的属性等。如图5—101所示。
图5—101 根据离散点生成断层
对地质体中的信息进行修改是重要的功能之一。课题组地质体模型的数据结构中,输入可以是点集合和折线集合,但是折线集合也被示为有序点的集合。所以,对于点的编辑和修改是所有编辑和修改的基础。由于一般图形平台中很难解决计算机图形学中的一个基本问题即“坐标变换”的深度问题,所以只能依赖于生成的三角网格面,实现沿着面和垂直面两个方向的空间点的“位置坐标”编辑,即标量编辑。采用标量编辑,解决了“坐标变换”的深度问题,实现了不依赖于三角网格面的空间点编辑。
此外,还采用了“三维空间矢量点”的编辑功能。“三维空间矢量点”是指工区种的三维点不仅含有“位置坐标”的概念,还赋予每个点一个“方向矢量”。这样,很容易对空间点进行方向上的编辑功能,我们称谓“三维空间矢量点编辑”。本系统中多处采用了这种编辑功能,例如断面上控制点的编辑、地层上控制点的编辑、光源矢量的编辑等。光源矢量的编辑效果如图5-102所示。
图5—102 光源矢量编辑功能
3.定义断面关系
在建模时,对于工区中相交的两个断层,需要确认它们的相交关系,即哪一个是主切面,哪一个是被切面。通过定义它们的关系,实现主断层面剪切辅断层面的功能。在定义主断层面时,一般选择相对较高且长度大于被切断层面在其上的投影面的断层面,这样选择的要求可使系统较快地构建断面网格。
断层主辅关系定义之后,选择“更新断层”功能,生成切割后的断层。图5—103所示为定义断层关系之后重新生成的断层效果。
图5—103 定义断层关系
(五)地层面建模
1.地层面的主要内容
三维地质构造模型中的地层,是由地层中的若干图元和图元集合组成,包括:
(1)地层顶面:是由已知的地层数据离散点拟和出的地质曲面。
(2)地层离散点集合:是地层等值线上的离散点。
(3)地层井点集合:是钻井钻探到的地层顶面上的井分位点。
(4)地层控制点集合:是用户在建模过程中手工可以添加到模型中的点,这些点在地层生成过程中会对地层形态起约束作用,用户可以通过编辑这些点,来改变地层的形态。
(5)地层上的断层线集合:是地层顶面被各个断层切割出的断层线的集合。
(6)地层等值线集合:是按照地层顶面深度在地层顶面上画出的等值线集合。
(7)地层断块:是地层被断层切割撕裂后形成的有顶有底有围边的封闭地质体。
我们建模时就是要根据这些数据来具体构建地层面。地层与地层之间可以相交,这导致地层形态变得复杂。有时某个地层会在与其他地层相交处缺失,从而出现所谓尖灭、侵入体和透镜体的现象。下面我们将具体针对每一种地层现象具体讨论其建模方法。
2.层状地层
层状地层是地层形态中最简单的一种,既没有裂口、也不与其他地层切割,仅是一个单独的曲面。在这种情况下可以使用简单的剖分与插值算法来构造地层面。具体来讲,就是经过简单的三角剖分得到其三角网格,然后从已有离散点数据及剖面中的地层线数据中提取到离散点集合,以此作为依据对三角网格中的每个顶点进行插值,得到具有起伏形态的地层面。这里我们采用的生成连续曲面的方式是通过将平面细化为网格后,将三角网格的顶点插值生成曲面。曲面的光滑和精细程度由网格的密度决定。
根据如上的特点设计了复合法表示曲面的形式,即以矩形网格作为计算曲面,以三角网格作为显示曲面,由两种网格协作,共同表示连续曲面。矩形网格和三角网格表示同一个曲面,矩形网格用于查询计算,表示的曲面比实际曲面要大,因为只作为背景网格不参与显示,不关心曲面的边界。
3.透镜体状地层建模
透镜体的生成有两种方式,即根据导入的物探等值线数据生成透镜体,也可以根据剖面上的透镜体线图元生成透镜体。透镜体顶面生成后,需要编辑透镜体尖灭线改变透镜体的大小,使用控制点调整透镜体形态,可以通过修改属性框来编辑透镜体的属性、提取透镜体表面等值线图等功能。
(1)生成透镜体顶面。生成透镜体首先需要生成透镜体顶面,根据导入的等值线离散点数据进行离散点化处理,然后进行限定剖分和插值或者剖面线图元可以生成透镜体顶面。如图5—104所示为通过在剖面上选择剖面线图元生成透镜体顶面。
(2)定义透镜体尖灭线。透镜体顶面生成之后根据实际的数据信息,可以定义透镜体的大小。通过在顶面上定义透镜体尖灭线来设置透镜体的大小。如图5—105所示:
(3)生成透镜体。透镜体尖灭线定义之后,可以生成透镜体。对生成的透镜体可以通过属性框来设置其属性信息,包括其显示方式、颜色、图元大小等与可视化显示及参数有关的属性项。图5—106所示为生成的透镜体。
(4)透镜体的编辑。系统自动生成的透镜体,有时不可能完全准确地表达实际的形态特征,需要对其上顶面或下底面添加控制点加以调整,通过人为的方式改变控制点的空间位置。重新生成透镜体,让控制点参与透镜体上下面的重新生成,则可以较好地改变透镜体的局部形态。
图5—104 生成透镜体顶面
图5—105 定义透镜体尖灭线
图5—106 生成的透镜体
具体的操作是打开地质模型树窗口内的需要编辑的透镜体上、下面的“控制点集合”节点,然后选择主菜单“透镜体”下的“编辑控制点”功能项,通过鼠标在透镜体面需要调整的位置添加控制点,然后对添加的控制点进行编辑,重新生成透镜体,透镜体的形态即发生更改。
(5)透镜体顶底面等值线的提取。透镜体生成后,可以提取它的顶面和底面的等值线。
操作时,选定要提取等值线的透镜体上面或下面树节点下的“等值线集”项,选择主菜单“透镜体”下的“生成等值线”菜单项,即可提取该面的等值线。等值线的间距、标注高程、间隔、等值线颜色由技术人员在属性框中自己定义。
4.侵入体状地层建模
若两个地层出现侵入体现象,则会在其中一个层面上出现闭合的“洞”,我们的剖分算法可以处理这样的情形。
在地下水地质结构中,存在着很多侵入岩的地质结构,是由于深部岩浆向上运移,侵入围岩而未到达地表所形成的蘑菇状、脉状等形态岩体,对这类地质体,建模时需具体分析,具体对待。但有相同一点,它们都可看作是非层状模型,当作一个小的子地质体,对这个子地质体进行建模,然后读入总模型中,即可实现模型的整体显示。地质体的建模将在下一节具体介绍。
5.地层的编辑
地层面生成后,根据实际需要编辑地层上的控制点来局部改变地层面的形状,还可以通过修改属性框内容来编辑地层面的属性。
地层面生成后,不可能完全准确地表达地层的凸凹起伏状态,需要添加地层控制点加以调整,用人工拖动的方式改变控制点的位置,之后,让控制点参与地层面的重新生成,可以较好地改变地层面的局部形态。如图5—107所示。(a)图中使用了“三维空间矢量点编辑”功能。
图5—107 地层面编辑
6.定义地层间关系
地层面在与断层相交之后,地层在和断层相交的地方要发生移动,形成断裂的地层。断裂地层的生成可以通过自动生成和人工设置两种方式实现。自动生成是三维建模软件系统根据断层两侧的地层离散点空间分布自动计算出两侧的变形量,图5—108即为自动生成的断裂地层:
图5—108 自动生成撕裂的地层
人工设置是通过人为设定断层的断距大小和变形方向生成断裂的地层。图5—109所示为人工设置生成断裂的地层。
图5—109 人工生成断裂的地层
7.生成地层等值线
地层面生成后,三维建模软件系统可绘制用户指定含水层顶面/底面的等值线,此功能可以有效地解决等值线跨越断层的问题,绘制等值线结果可以以用户认可的形式提交给用户。该功能对于工程应用是一项很实用的功能。
对指定的地层选择“生成等值线”功能项,即可提取该地层的等值线。等值线的间距、标注间隔、等值线颜色由技术人员在属性框中自己定义。如图5—110所示。
(六)地质体建模
本算法是在已知地层面和断层面的情况下,采取变形场的方法来构造地质体。根据变形场建模的思想,所有的地质元素都是在逐步断裂的情况下,形变达到当前的形态的,所以地质体的围边也是由初始的形态变形而成的。初始状态的地层与断层面相交形成的围边具有形状简单的特点,一般情况只有四个拐点,初始地层面的围边易于求解,所以可以采用通常的方法求得初始地层的围边,然后将变形场逐级作用于初始围边,就可以得到当前状态下地层体的围边了。生成地层的具体算法如下:
图5—110 地层面等值线提取
(1)首先构建地层初始网格,及地层的初始外围边网格;
(2)按断裂顺序找到当前断裂的断面,直至地层没有新裂口为止;
(3)复制一份断层网格记为A,用地层裁剪断层网格A分为若干地层围边,分层后的断层网格被复制两份,一份是断层左侧地层裂口的内围边,一份是断层右侧地层裂口的内围边;
(4)将该断层的变形场作用到地层上及其围边上,地层的表面网格发生形变,围边网格发生变形;
(5)按步骤(2),(3),(4)作用于地层面即可得到地层的体网格。
虽然在这个过程中地层和断层有求交的操作,但这种操作可以保证是在连续地层面和断面之间的求交,所以稳定性高,初始地层面的易于求交简单。图5—111至5—118为华北平原的地质体模型。
(七)三维可视化方法
1.生成剖面图
我们首先切换到地质模型树下,展开三维模型根节点,选中剖面集节点,也可以在剖面编辑菜单里面选择增加剖面选项,然后在三维图中画出剖面线,点击右键即可完成。我们也可以直接读取现有的剖面文件。
下面我们可以对剖面的属性进行编辑,如对剖面线的坐标的修改。先选中一个剖面,可以选择“剖面编辑”里面的“增加断层线”来建立断层线,我们也可以选取现已有的断层线,可以在属性框里对其属性进行修改。同样也可以在“剖面编辑”的菜单里选择增加地层线或增加透镜体线来建立地层线或透镜体线。图5—119为单面的三维剖面图。
模型还可以生成栅状的剖面形态图,如图5—120。
图5—111 华北平原三维地质模型图(贴有地表卫星图片)
图5—112 华北平原三维地质模型(岩性设置)
图5—113 华北平原三维地质模型图
图5—114 渤海水体模型
图5—115 第一含水层组模型
图5—116 第二含水层组模型
图5—117 第三含水层组模型
图5—118 第四含水层组模型
图5—119 三维地质模型剖切面图
图5—120 栅状剖面图
2.生成剖切面
因为在没有计算机图形学的辅助之前,地质专家和地质工作者,就是通过二维的剖切面图来分析地质构造。现在,有了计算机三维建模,目的在于帮助他们建立三维空间想象能力,从而实现从二维平面图到三维地质体模型的过度。本模型使用的是基于Delaunay三角网格的剖切面(前文有介绍)。
下面主要是对地质体进行单面剖切,组合剖切和挖掘等功能。
图5—121 剖切面的属性框
(1)单面剖切。首先我们选择“可视化”中的“添加单面剖切面”,然后在三维图中用鼠标进行剖面线的绘制,点击右键即可完成。我们先做一个截面,被剖切的地质体根据截面的法向矢量与截面的两侧部分的法向矢量的夹角分为两部分(正侧与负侧)。模型默认显示的一侧是与截面的法向矢量夹角小于90度角(正侧)的。可以在剖切面的属性框里图5—121所示,进行切换剖切面对另一侧进行观察。
如图5—122为一个单面剖切的效果图:
图5—122 单面剖切面效果
(2)组合剖切。首先我们选择“可视化”中的“添加组合剖切面”,然后在三维图中用鼠标进行剖面线的绘制,点击右键即可完成。
组合剖切(多面剖切)是在单面剖切的基础上进行改进。我们先定义一个多截面的集合(本模型最多可以定义六个面)。首先可以根据截面集合中的第一个截面进行单面的剖切,储存下来然后使第一个剖切面失效,再进行第二个截面的剖切,储存下来后使其实效,同样可以依次类推,直到所以截面都剖切完以后,再使前面几个剖切面同时生效,这样就可以生成一个组合剖切面。
当然和单面剖切一样可以在属性框里进行剖切面的切换来观察另一侧。
如图5—123为一个组合剖切应用效果图:
图5—123 组合剖切面效果
3.生成挖掘体
首先我们选择“可视化”中的“添加挖掘体”,然后在三维图中用鼠标进行多边行剖面线的绘制,点击右键即可完成。
挖掘剖切是组合剖切的一个特殊的应用,挖掘本身为一个封闭的多面剖切。
图5—124为一个挖掘应用效果图:
图5—124 棱柱挖掘效果图