APP下载

基于Open CASCADE 和普通克里金插值的透明矿井水文地质建模软件开发

2020-06-08靳德武程建远赵春虎

煤矿安全 2020年5期
关键词:插值水文地质断层

李 鹏,靳德武,程建远,赵春虎

(1.西安科技大学 地质与环境学院,陕西 西安710054;2.中煤科工集团西安研究院有限公司,陕西 西安710077)

“玻璃水文地质”作为“玻璃地球”的一部分,采用可视化技术进行矿井水文地质的三维多尺度建模,直观展示水文地质体、水文地质现象和水文地质过程[1-2],为煤矿水害防治提供技术支撑。三维地质建模是实现数字矿山建设的前提和核心基础[3],三维地质模拟通常是通过分析、解释、推理、插值和外推来构建地质模型。现有的三维矿井建模软件有引进国外公司的Surpac、DMine、Micromine 和国内公司的3Dmine 等[4-5],现有软件主要侧重在采矿工程的规划等功能,虽然能够建立三维实体模型,但是模型精度不足,一般不支持单独修改三维实体模型中的局部细节。因此将建模几何内核Open CASCADE[6]和基于地质统计学的普通克里金插值算法从底层相结合,利用Open CASCADE 的三维图形渲染、可视化交互、编辑等功能和普通克里金的地质统计学插值功能[7-8],以Visual Studio 为开发工具,以C++和Python 为开发语言,将SQLite 作为数据库设计并开发了Hydrogeo3D 矿井水文地质建模软件。

1 软件实现

1.1 软件架构

Hydrogeo3D 软件的体系结构分为3 层,最上层是水文地质建模软件的图形用户界面框架,直接与用户交互。该部分集成了可视化功能,在软件界面上显示用户交互操作、模型可视化。同时,该层还完成了用户与软件之间的数据交互。

中间层是建模软件的核心,包括5 个部分。第1部分是实现水文地质模型的基本元素的点、线、面、体的构建的建模部分;第2 部分是可视化部分,实现了可视化环境中对模型的操作;第3 部分是数据交换部分;第4 部分是模型处理和计算,实现了模型实体之间的交集和求和运算,该部分提供了建立模型后的间隙、重叠修复操作;第5 部分是普通克里金算法的Python 实现,与建模部分直接调用融合。该软件采用数据交换接口,实现了与其它CAD 软件的数据交换,保证了数据的共享。

最底层为Open CASCADE 几何图形核心部分,通过这一部分实现了点、线、面、体的显示和交互操作,以及纹理、光照、图元填充、渲染等图形操作和放大、缩小、旋转等动态操作。

1.2 软件功能模块

Hydrogeo3D 软件功能模块划分如图 1。Hydrogeo3D 软件实现的功能分为通用功能模块和矿井水文地质模块。三维建模通用功能模块包括二维图形模块、三维图形模块、网络设置模块、数据读写模块、格式转换模块、CAD 文件读取模块和Python 脚本编辑模块;矿井水文地质模块包括钻孔数据库、钻孔建模模块和水文地质建模模块。

二维图形模块实现二维对象点、线、多边形等的绘制功能,并实现了编辑工具。另外提供工具来定义工作平面、网格和捕捉系统,用于精确控制几何图形的位置。

三维图形模块实现了三维几何体的快速构建、布尔操作、历史修改和参数设置功能。三维几何基本体是构建复杂模型的基础,复杂模型可以是顶点、边、线、面、实体或其他形状的组合。

图1 Hydrogeo3D 软件功能模块划分Fig.1 Software function module of Hydrogeo3D

网格设置模块主要设计处理三角形网格。网格是一种特殊的三维对象,由顶点和边连接的三角形面组成。Hydrogeo3D 可用于导入网格格式的三维数据、分析数据、检测错误并最终将其转换为实体。

软件实现了脚本编写功能,在提供人机交互建模的同时,实现了脚本建模,包括几何基本体,如线和圆,以及整个地形形状范围,如顶点、线、面、实体和复合体。对于这些对象中的每一个,都实现了脚本创建方法,对于其中的一些方法,尤其是地形形状,还可以使用布尔联合/差/交集等高级操作。

1.3 关键技术

1.3.1 地层插值

Open CASCADE 提供的数据插值功能主要包括对二维点进行Bezier 曲线或二维B 样条插值,对三维点进行三维Bezier 曲线或B 样条插值。Bezier 曲线是应用于二维图形的曲线,曲线由顶点和控制点组成,通过改变控制点坐标可以改变曲线的形状[9];B 样条是Bezier 曲线的一种一般化,是目前CAD 系统常用的几何表示方法,主要应用于机械设计等领域[10]。以上2 种算法并不适合于矿井水文地质建模,Hydrogeo3D 软件主要应用于矿井水文地质建模,普通克里金插值是基于统计学的插值算法,广泛应用于各类观测的空间插值[11]。普通克里金的计算机实现流程图如图2。

具体实现的步骤为:

1)基于观测数据,计算每2 个点之间的距离与半方差γ。半方差的计算方法为:

2)经过第1)步后将得到一系列的(h1,γ1),(h2,γ2),…,(hn,γn)点对,根据这些点对的分布情况选择合适的半方差函数(主要包括球状模型、指数模型、高斯模型、立方模型[12])进行拟合,得到半方差与距离的函数关系。

图2 程序实现克里金插值流程图Fig.2 Kriging flow chart

3)根据第2)步得到的拟合结果计算所有已知点之间的半方差γij。

4)对于未知点z0,计算它到所有已知点zi,i=1,2,…,n 之间的半方差γi0。

5)求解克里金方程组,得到最优系数λi,i=1,2,…,n。

6)使用求得的λi按是2)对已知点的属性值进行加权求和,以得到未知点z0的估计值

1.3.2 断层建模

断层是一种特殊的地质构造,断层的影响带会构成导水通道,往往是矿井底板突水的易发地点[13],因此断层的建模对于矿井水文地质的建模非常重要。矿井水文地质勘探中断层的描述主要通过CAD图件中的断层线和物探资料中的断层属性参数来获取,针对这个特点,软件设计了断层建模功能。为了简化断层的建模方式设计了具体的建模流程:

1)首先假设断层不存在,利用1.3.1 构建的插值算法对地层数据进行插值,构建地层的整体模型。

2)从CAD 文件导入断层线文件,或者在模型中手动勾画断层线。

3)根据断层的走向、倾向和倾角确定断层面的空间位置,并生成断层面。

4)将断层面与步骤1)构建的整体模型进行布尔运算求出断层面与每一层地层的交线。

5)若断层面将步骤1)中构建的模型直接切割为2 部分,则直接使用断距来调整交线两侧地层的上下位置;若断层面将步骤1)中构建的模型不能完全切割,则将每一个地层的交线上的点作为控制点加入到每个地层的数据,利用1.3.1 构建的插值算法对交线两侧地层数据进行插值,构建地层的整体模型。

1.3.3 曲面模型到实体的转换

地层的曲面模型可以展现地层的走向、地层的高低起伏,为了能够提取地层的剖面更加直观的展现地层的内部情况和层与层之间的序列关系,软件实现了曲面模型到实体模型的转换功能。具体的转换方法分为2 种:

1)将曲面转换为点云图,然后使用泊松曲面重建法将点云构建为实体外壳[14]。这种方法的优点是建模速度快,缺点是实体内部没有数据。

2)以地层上下界面为约束条件,在上下界面内垂向和横向上等距离在空间上插入点,之后按照设定距离以每个点为中心分别构建立方体,最后以立方体填充的形式构建实体地层。

1.4 矿井地质数据库功能

数据库能够方便的对数据进行检索和管理,是一种有效的数据存储和管理工具。在Hydrogeo3D 软件中内嵌了SQLite 数据库,SQLite 是一个C 语言库,它实现了一个小型、快速、自包含、高可靠性、功能齐全的SQL 数据库引擎。用户可利用Hydrogeo3D创建地质数据库,将地质数据导入到数据库中,通过软件将数字形式的勘探资料用三维图形的形态来管理和利用。

Hydrogeo3D 的地质数据库主要由以下3 种类型的表组成,Hydrogeo3D 为这些表提供了基本的默认字段。钻孔定位表存储了钻孔的开孔位置及开孔坐标,钻孔的最大深度和钻孔的轨迹类型。轨迹类型表明钻孔轨迹的性质,主要为直线或者曲线类型。测斜表存储钻孔的测斜数据,数据主要用来计算钻孔的轨迹,基本的存储字段包括:工程号、测量深度、倾角和方位角。岩性记录表存储钻孔的岩性信息,主要用来存储打钻过程中岩心识别阶段的信息,字段主要为工程号、开始深度(岩样起始深度)、终止深度(岩样结束深度)、岩性、厚度、备注等。

2 软件界面

2.1 软件操作界面

软件操作界面分为4 个区域:上部为菜单栏和工具栏,中间部分的左侧为文件导航栏和属性栏,中间部分的右侧为图形工作区,下部为信息栏和Python 控制台。

菜单栏主要的菜单为文件、编辑、视图、工具、宏、窗口和帮助。工具栏默认为文件工具栏和视图工具栏。文件工具栏设置了常用的新建、打开、保存、剪切、复原操作等常用工具;视图工具栏设置了显示位置、正视图、侧视图、顶视图等常用显示工具。文件导航栏主要包括文件浏览器和属性浏览器。文件浏览器以树状方式显示模型的组成及其包含的各种文件;属性浏览器显示选中模型的各种属性,包括颜色、透明度、光照模式、位置等信息。图形显示区主要用于查看和编辑三维图形数据。显示模式分为三维模式和二维模式,三维模式下可以对模型进行放大、缩小、旋转等操作;二维模式下实现了父模型以及所有子模型的选择、编辑等操作。信息栏主要用于显示当前运行的操作产生的后台数据,如通过普通克里金插值产生的插值数据的信息等。Python 控制台显示当前执行的图形构建命令,在命令栏里输入Python 命令,然后点击Enter 键,之后会实现快捷方式所对应的操作。

2.2 地质插值界面

形成的地质插值界面为了三角网格能够清晰的显示,设置三角网格间隙较大。Hydrogeo3D 软件与其他三维矿山建模软件的不同在于,其通过平台的自主开发实现了曲面内部所有三角网格表面和构成网格曲线的编辑功能。曲面上的黄色三角网格为生成的曲面的一个子网格,选择后可进行名称、透明度、颜色等属性的编辑。由于实现了局部网格的编辑功能,因此可以对地质模型进行精细刻画。

3 结 语

1)提出了利用Open CASCADE 几何内核与地质统计学普通克里金算法相结合建立矿井三维水文地质建模软件的方法,并开发了矿井水文地质三维建模软件Hydrogeo3D,实现了三维矿井水文地质建模功能。

2)针对Open CASCADE 几何内核属于CAD 建模内核,对于地质建模能力不足的问题,利用Python语言实现了普通克里金算法并将其嵌入矿井水文地质三维建模软件Hydrogeo3D,实现了三维网格的局部网格、线条编辑的功能,该功能是本软件与其他类似商用软件等的最大区别,可以为水文地质精细化建模提供了技术手段。

猜你喜欢

插值水文地质断层
如何跨越假分数的思维断层
嘛甸油田喇北西块一区断层修正研究
X油田断裂系统演化及低序级断层刻画研究
基于抽水试验计算水文地质参数的分析与确定
基于GPRS实现自动化水文地质抽水试验
基于转移概率的三维水文地质结构划分
基于Sinc插值与相关谱的纵横波速度比扫描方法
基于pade逼近的重心有理混合插值新方法
水文地质在工程地质勘察中的有效应用
混合重叠网格插值方法的改进及应用