APP下载

重磁三维可视化反演系统的设计与实现

2012-12-21陈建国肖敦辉梁玉辉

地质学刊 2012年3期
关键词:图元缓冲区物性

陈建国,肖敦辉,梁玉辉

(1.中国地质大学地质过程与矿产资源国家重点实验室,湖北 武汉 430074;2.中国地质大学(武汉)资源学院,湖北 武汉 430074)

重磁三维可视化反演系统的设计与实现

陈建国1,2,肖敦辉1,2,梁玉辉1,2

(1.中国地质大学地质过程与矿产资源国家重点实验室,湖北 武汉 430074;2.中国地质大学(武汉)资源学院,湖北 武汉 430074)

重磁三维可视化反演解释系统一直是国内外重磁勘探领域的研究重点之一。介绍了基于Visual C++与OpenGL环境研发的重磁三维可视化反演系统,详细阐述了系统的设计思想与实现的关键技术,包括可视化技术、面向对象技术、图形拾取技术、碰撞检测技术及反演约束技术等。系统具有人机交互几何反演与最优化物性自动反演两种功能,可满足目标异常、区域模拟和盆地建模。

重磁反演;三维可视化;OpenGL;人机交互;自动物性反演;新疆

0 引言

在矿产资源勘查及区域地质构造调查工作中,重磁勘探是十分有效和应用广泛的物探方法之一。近年来,随着覆盖区、深部矿、隐伏矿找矿工作的开展,重磁勘探更显示出其重要性,也正朝着高密度、高精度的方向发展。因此,对其资料的解释也提出了新的要求,需要进行三维重磁反演,以此来深化认识地下地质-地球物理特征。

反演是重磁资料定量处理与解释中的重要环节,其目的在于通过地面或航空等实测数据,利用某种手段推算出地下的密度(磁化率)分布规律,从而达到判定目标地质体的目的(管志宁等,2002;侯重初等,1990).由于重磁场的体积效应、有限观测数据的不准确性及反演问题的欠定性等因素,反演结果往往存在多解性。为了获得一个符合实际情况的解,需要在反演过程中添加一些约束条件或先验地质信息,对解模型进行限制;对于反演模型可用场源目标体的形状或遍历地下半空间的物性值大小(密度或者磁化率)来表示,这就产生了两种完全不同的反演方法:几何反演和物性反演(陈召曦等,2012)。几何反演是在地下半空间场源体给定物性参数大小的基础上,利用地面观测异常来拟合几何体(如多边形或多面体)形状大小,通过几何体的形状大小来模拟目标体的分布规律;物性反演是将观测区域地下半空间离散化成规则的网格单元,通过反演方法确定各离散单元的物性值,由物性的分布确定场源的实际分布情况。

重磁三维可视化反演解释系统一直是国内外重磁勘探领域的研究重点之一。除了大量学者研究算法理论外,也有许多单位或学者开展了反演解释系统的软件研发(班丽,2009;陈建国,1991;李军,2005;田黔宁等,2001;肖敦辉,2008;姚长利等,2002a,2002b;Camacho et al,2002;Chen et al,2008;Jessel,2001;Chakravarthia et al,2007)。国外有代表性的重磁反演软件有澳大利亚Encom Technology的ModelVision以及Northwest Geophysical Associates(NGA)的GM-SYS 3D建模与GM-SYS剖面建模模块;ModelVision用一系列多边形截面的柱体、球体、椭球体、圆柱体来模拟三维物性体,提供人机交互正演拟合及自动反演(AutoMag/QuickMag)功能;GMSYS 3D与GM-SYS是Oasis montaj的扩展模块。GM-SYS剖面建模使用一系列均质的水平多边形柱体来拟合复杂地质体,用人机交互正演拟合的方法来反演解释。GM-SYS 3D建模使用一系列网格状层面模型来拟合复杂地质体,每一层面表示上下不同物性体(密度或磁性体)的界面,两个层面之间表达为均一或规则变化的密度或磁性体,当上下层面有重合部分时表达为有限延伸的地质体,它本质上也是人机交互的正演拟合方法,即计算模型的正演异常值,比较正演异常与实测异常的差异,根据差异情况修改模型,直到满足要求为止;此外,它还提供约束条件反演的功能;国内也研发了一些重磁反演软件,如中国地质大学(北京)姚长利教授开发的Mask软件等。

尽管目前已有许多重磁二维、三维正反演解释软件,但是大多数软件在交互编辑地质体方面尚不够灵活(需切换到二维环境下编辑),也没有判断地质体重叠的功能。笔者在吸收借鉴前人成果的基础上,结合项目需要,研发了重磁三维可视化反演系统。主要介绍了重磁三维可视化反演系统的系统分析与设计,阐述了其实现的关键技术,并展示了软件实现的效果。

1 系统分析与设计

在重磁资料的解释推断中,各种正演计算方法是广泛使用的。例如在勘探矿区,计算己被钻探查明的已知矿体的异常,将其与实测异常进行对比,并计算其剩余异常,以进一步寻找钻孔旁的遗漏矿体和深部的隐伏盲矿体;又如通过不断地修改矿体的形状和产状,重复做正演计算,将其理论曲线与实测异常曲线进行拟合对比,以求得最佳拟合状态下的矿体形态,起到反演解释的作用等。因此,系统需实现重磁异常正演功能:(1)规则形体,如球体、椭球体、圆柱体、方柱体等(图1a);(2)有限长度的多边形柱体(图1b)。其中,有限长度的多边形柱体及方柱体是应用最广泛的正演模型,用多个有限长度的多边形截面可逼近计算任意形体的地质体;用一系列规则立方体来模拟地质体,即将地下场源区域剖分成规则单元(图1c),通过反演手段确定各单元的物性特征,由此推断地下场源的三维分布。

在反演方法上需实现可视化人机交互拟合反演与自动反演技术,实现三维几何形状反演功能与物性反演功能(马奎特方法)。在可视化显示方面,需三维显示地形、地质体模型以及实测重磁异常与正演拟合的重磁异常,同时实现旋转、缩放、平移多角度观察功能等。在三维地质体的人机交互编辑方面,提供方便的模型增加、删除、修改等功能。

图1 地质体正演模型

根据上述需求分析,笔者设计了功能框图(图2)。其中:(1)数据管理模块:实现地形、重磁数据与模型数据的导入导出组成,解决与其他三维系统的数据接口;(2)数据预处理模块:实现区域场处理、数据截取以及特异值处理等预处理功能;(3)模型建立模块:实现用鼠标或键盘交互式建立、编辑模型的几何参数与物性参数,编辑操作包括模型控制点的添加、删除和移动等操作;(4)重磁异常正反演模块:包括正演重磁异常(包括有限长度多边形模型以及球、柱等规则几何形体等)、利用马奎特方法反演计算物性分布(规则网格模型);(5)三维显示模块:显示地质体模型和重磁异常。对规则网格剖分模型,用晕图、截面图显示,重磁异常以色块、网状或平剖图形式来显示,实现旋转、缩放、平移多角度观察功能。

2 系统实现的关键技术

2.1 三维可视化技术

重磁三维可视化正反演涉及地形显示、地质体建模与显示、重磁异常的显示,涉及光照、纹理映射等很多操作过程。笔者借助OpenGL实现地形、地质体及重磁异常的三维可视化显示,它集成了图形变换、光照、材质、纹理、像素操作、融合、雾等复杂的图形算法,并支持各类开发平台,开发人员可以相对容易地在各种开发环境中绑定OpenGL函数。

图2 三维重磁反演系统的功能框图

2.2 数据结构与面向对象技术

系统采用面向对象技术来实现。如地质体模型包括几何信息、物理信息、拓扑信息以及正演计算。几何信息有模型类型(球、圆柱体等)、中心点坐标、半径、长、宽、高、包围盒的参数等描述模型形状方面的参数;物理信息有密度、磁化强度、磁倾角、磁偏角等;拓扑信息包括各个模型体间的连接关系。系统主要的模型类有:CShape类及其派生类(CSphere、CTiltedCylinder、CVCylinder等)、CPolygon 类、CPoint 3D类、CTriChip类、CPolygonVertex类和CShapeManage类。

CShape类是规则地质体的基类,它定义了规则地质体的公共属性,如ID、密度、名称、包容盒(描述该对象所占的空间大致范围)等,也包括了对象的一些公共操作函数,如对象的图形绘制、获取包围盒函数、形体坐标转换函数等。此类在MFC类CObject类的基础上派生。因此,可以继承CObject类的属性和操作。

CPolygon类是有限长度的任意多边形柱体类,与CShape类一样,同样是继承CObject类。它定义了定点数目,三维空间顶点坐标、物理属性、包围盒等,也定义了些操作函数。如:计算重力异常值,计算磁力异常值,图形绘制,求取包围盒,数据更新等。

CPolygonVertex类主要用于多边形编辑顶点时,绘制、移动、删除顶点时用的类。由CPoint 3D类定义定点,以及一些选中标示、绘制、坐标变换等操作。

CShapeManage类为模型管理类,此类的设计考虑到了以后模型扩充后的操作及管理,是整个系统等核心类。定义了模型的存储策略、添加、删除等操作。

2.3 地质体模型交互过程中的拾取技术

人机交互模型编辑总是涉及到模型结点的捕获、编辑。在三维场景中通过坐标方式来要确定用户所选择的究竟是哪一个图元以及哪个结点是相对困难的。笔者借助OpenGL的选择和反馈机制,结合类的派生、继承之间的关系,来实现三维场景中屏幕图形元素的选择功能。其实现步骤如下。

2.3.1 设置选择缓冲区 根据OpenGL的选择机制的要求,首先要使用glSelectBuffer函数为OpenGL设置信息选择缓冲区。通过这个缓冲区可以获得有关被选中图元的信息,从而决定给定图元集合中哪些图元被选中。

2.3.2 进入选择模式 在通常情况下,OpenGL工作在渲染模式(缺省模式),在这种模式下,一切绘图操作通过各种变换直接显示到屏幕上;若需使用OpenGL的选择机制,则必须进入选择模式,此时,实际的绘图操作并不渲染到屏幕上(即不进行光栅化),而是收集到某个后台缓冲区,供OpenGL判断、返回给定条件下的选择信息。因此,在设置了选择缓冲区之后,必须用glRenderMode(GL_SELECT)函数设置当前模式为选择模式。

2.3.3 初始化命名堆栈 命名堆栈用来存放一系列整数,每个整数作为某个图元的标识;每当需要“绘制”(并非绘制到屏幕)下一个图元供OpenGL判断其是否被选中之前,首先要将此图元的标识(整数)压入命名堆栈,经计算判断之后,若此图元被选中,则命名堆栈中此图元的标识便会返回到选择缓冲区中,通过提取选择缓冲区中的命名堆栈的内容,便可得到有关哪个图元被选中的信息。在使用命名堆栈之前,首先要使用glInitNames函数对其进行初始化(置空)。

2.3.4 设置合适的投影变换和模型视图矩阵 若要使OpenGL能够正确地判断哪个图元被选中,就要设置合适的投影变换矩阵和模型视图矩阵,使得在选择模式下的绘制代码能够与渲染模式下的相吻合,因此这里设置的投影变换矩阵和模型视图矩阵应该与在渲染模式下的相一致。与在渲染模式下唯一不同的是,在此要设置另外一个矩阵(拾取矩阵),要让OpenGL来判断是哪个图元被选中,则必须向它提供一个位置信息(通常是鼠标的位置),这个位置信息由拾取矩阵来表达,使用函数glu-PickMatrix设置拾取矩阵。

2.3.5 为每个图元分配合适的名称 当前述各项内容都正确设置好之后,便可以将集合中每个图元依次进行绘制,供OpenGL计算相关的选择信息。在绘制每个图元之前,首先要使用glPushName函数将此图元的标识(整数)压入命名堆栈,然后开始绘制;若几个图元使用了相同的标识,则Open-GL将这几个图元作为一个整体进行计算,如具有相同标识的图元中的某一个或几个被选中,则其标识会返回到选择缓冲区中,如具有相同标识的图元中任何一个都未被选中,则此标识不返回到选择缓冲区中。当某个图元绘制完成之后,为了节省命名堆栈的空间,应使用glPopName函数将其标识从命名堆栈中弹出。

2.3.6 切换回渲染模式 当所有待选择图元绘制完毕后,便可以让OpenGL进行计算,并将相关信息写入选择缓冲区了,这需要再次调用glRender-Mode函数,它将返回点中记录的数目;若点中记录的数目大于0,那么选择缓冲区中就已经包含了相关的选择信息。

2.3.7 分析选择缓冲区中数据,确定被选中图元若glRenderMode返回值大于0,说明有图元被选中了。每个图元选中记录中的标识数应为1,标识序列中只包含1个标识,即被选中的图元的标识。

2.4 碰撞检测技术

在交互构造地质体的过程中,原则上不允许出现地质体模型间发生重叠或相交。笔者采用碰撞检测算法来避免此现象的发生。

两个几何模型间的静态碰撞检测算法大致可分为两类:空间分解法和层次包围盒方法。前者是将整个虚拟空间划分成相等体积的小的单元格,只对占据了同一单元格或相邻单元格的几何对象进行相交测试。层次包围盒方法的核心思想是用体积略大而几何特性简单的包围盒来近似地描述复杂的几何对象,从而只需对包围盒重叠的对象进行进一步的相交测试。此外,通过构造树状层次结构可以越来越逼近对象的几何模型,直到几乎完全获得对象的几何特性。比较典型的包围盒类型有沿坐标轴的包围盒AABB、包围球、方向包围盒OBB、固定方向凸包等。这两类算法都使用了层次结构模型,其目标都是尽可能地减少需进行相交测试的几何对象对的数目。空间分解法通常适用于稀疏的环境中分布比较均匀的几何对象间的碰撞检测,层次包围盒方法则应用得更为广泛,适用复杂环境中的碰撞检测。

笔者采用了AABB算法。此算法可以将三维空间里的对象相交问题转化到二维或一维空间来处理。通过降低维度来提高处理问题的效率。这里将三维空间的包围盒的重叠测试问题转化到一维空间来进行。两个包围盒有重叠当且仅当它们在3个坐标轴上的投影区段都有重叠。具体步骤如下:(1)求出每个实体的包围盒;(2)求包围盒在每个坐标平面的投影(3个);(3)判断每个投影平面上两个实体的投影是否相交。(4)在鼠标移动过程中,逐一判断此移动的地质体与其他的地质体的关系。

2.5 反演约束技术

重磁异常三维物性反演是基于反演理论、在最小二乘意义下使目标函数达到极小的线性或非线性反演。在引入足够约束条件的情况下,能够给出接近于实际地质情况的物性分布和几何形态,即使得反演目标函数最小化(陈召曦等,2012)。因此,反演约束因子的选择是至关重要的。典型而有效的约束因子有:深度加权因子、粗糙度因子、物性范围及位置约束、稀疏约束因子等(陈召曦等,2012)。深度加权因子的作用是避免反演结果的密度或者磁化率分布趋向于地表附近,可以引入合适的加权函数,使得反演的密度或磁化率分布在合理的位置。物性范围及位置约束是已知地质情况,在反演过程中对物性大小进行约束,使得地下半空间物性值在一定范围变化(即当反演出来的参数值超过先验的取值范围时,强迫它接受约束的极限值),或者反演目标位置进行约束。

3 系统实现与示例

笔者采用Visual C++与OpenGL环境开发实现了重磁三维可视化反演系统。软件系统界面(图3)采用了视图切分窗口技术,共有4个子窗口组成:(1)重磁异常三维显示窗口,可用不同方式同时显示实测与正演计算的重磁异常值;(2)模型编辑与管理窗口,可以用光照方式直观显示规则形体与多边形柱体,用晕图方式显示规则网格剖分的物性反演结果;(3)实测重磁异常平面显示窗口;(4)正演重磁异常或拟合误差显示窗口。

图3 重磁三维可视化反演系统界面

系统提供了鼠标与对话框编辑两种方式的模型编辑功能,图4展示了多边形柱体结点编辑的两种方式。

图4 多边形柱体结点编辑方式

笔者用该系统对东天山彩霞山铅锌矿的重力异常进行了人机交互的正演拟合。图5是彩霞山铅锌矿已探明4号矿体的正演拟合结果,从中可以看出尚有部分异常没有拟合,因此推测可能还存在隐伏矿体。

图5 彩霞山铅锌矿4号矿体重力异常拟合

4 结论

该文用Visual C++与 OpenGL环境开发实现了重磁三维可视化反演系统,通过拖动鼠标、旋转视图,从不同视图方位清晰地观察地质体,克服二维软件只能看到地质体剖面,不能从各个角度观看地质体的缺点。系统提供了人机交互的正演拟合式反演与马奎特物性自动反演两种方式,其中人机交互的正演拟合能够实现在起伏地形下任意形状均匀物性分布模型的反演解释,同时在模型编辑中引入了碰撞检测功能,避免了模型的重叠与交叉,具有较高的实用性。尽管如此,系统还存在许多需要改进的地方,如马奎特物性反演中的空间优化技术、快速反演技术等,几何形态的自动反演功能也尚待扩充。

班丽.2009.相关约束重磁三维定量反演方法研究[D].北京:中国石油大学.

陈建国.1991.多功能人机联作重磁资料反演系统[J].地球科学,16(3):341-347.

陈召曦,孟小红,郭良辉.2012.重磁数据三维物性反演方法进展[J].地球物理学进展,27(2):503-511.

管志宁,郝天瑶.2002.21世纪重力与磁法勘探的展望[J].地球物理学报,17(2):237 -244.

侯重初,陈军中.1990.重磁异常场及其高阶导数的正演公式与程序[M].北京:地质出版社.

李军.2005.基于Marquardt算法重磁复杂形体三维全局反演研究[D].成都:成都理工大学.

田黔宁,吴文鹂,管志宁.2001.任意形状重磁异常三度体人机联作反演[J].物探化探计算技术,23(2):125-129.

肖敦辉,刘卉,商伟.2007.重力场三维可视化技术的研究与实现[J].软件导刊,(23):64 -66.

肖敦辉.2008.重磁三维可视化反演解释系统研究[D].武汉:中国地质大学.

肖敦辉,董方灵.2009.三维重磁人机交互解释的剖面成体建模方法[J].地理与地理信息科学,25(5):26 -29.

姚长利,郝大珧,管志宁.2002a.重磁反演约束条件及三维物性反演技术策略[J].物探与化探,26(4):253 -257.

姚长利,郑元满.2002b.重磁遗传算法三维反演中动态数组优化方法[J].物探化探计算技术,24(3):240 -245.

曾华霖.1985.重磁资料数据处理程序分析[M].北京:地质出版社.

CAMACHO A G,MONTESINOS F G,VIEIRA R.2002.A 3D gravity inversion tool based on exploration of model possibilities[J].Computers& Geosciences,28(2):191 -204.CHEN BO,CHENG HARRY H.2005.Interpretive OpenGL for computer graphics[J].Computers & Graphics,29(3):331-339.

CHAKRAVARTHI V,SUNDARARJAN N.2007.INV2P5DSB -A code for gravity inversion of 2.5-D sedimentary basins using depth dependent density Salk[J].Computers & Geosciences,33(4):449 -456.

CHEN SHI,ZHANG JIAN,SHI YAOLIN.2008.Gravity inversion using the frequency characteristics of the density distribution[J].Applied Geophysics,5(2):99 -106.

JESSEL M.2001.Three-dimensional geological modeling of potential-field data[J].Computers & Geosciences,27(4):455-465.

Design and realization of visual 3D inversion system for gravity and magnetic anomalies

CHEN Jian-guo1,2,XIAO Dun-hui1,2,LIANG Yu-hui1,2

(1.State Key Laboratory of Geological Processes and Mineral Resources,China University of Geosciences,Wuhan 430074,China;2.Faculty of Earth Resources,China University of Geosciences(Wuhan),Wuhan 430074,China)

Visual 3D inversion system for gravity and magnetic anomalies was one of the study points in the fields of gravity and magnetic explorations both home and abroad.The authors introduced the visual 3D inversion system for gravity and magnetic anomalies developed based on the environments of Visual C++and OpenGL,depicted in details the design thoughts and key technologies for realization of the system,inclusive of visual technology,object oriented technology,graphical picking technology,collision detection technology and inversion constrained technology and so on.The system was characteristic of two functions;they were geometric inversion of human-computer interaction and automatic inversion of optimization physical property.It could be used for targeting anomalies,regional simulation and basin modeling.

Inversion of gravity and magnetic anomalies;3D visualization;Human-computer interaction;Automatic property inversion;Xinjiang

P631.2;TP391

A

1674-3636(2012)03-0250-06

10.3969/j.issn.1674-3636.2012.03.250

2012-06-20;编辑:陆李萍

国家科技支撑计划课题(2006BAB01A01203)(2011BAB06B08-2)、地质调查项目(1212011120986)

陈建国(1964— ),男,教授,博士,博士生导师,主要从事矿产普查与勘探、地球探测与信息技术方向的科研与教学工作,E-mail:jgchen@cug.edu.cn

猜你喜欢

图元缓冲区物性
R1234ze PVTx热物性模拟计算
中韩天气预报语篇的及物性分析
LKP状态方程在天然气热物性参数计算的应用
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
基于网络聚类与自适应概率的数据库缓冲区替换*
低孔低渗储层物性下限确定方法及其适用性
基于Qt绘图系统的图形应用优化研究与实现
关键链技术缓冲区的确定方法研究
初涉缓冲区