标题 | 基于Qt与OpenInventor的储层三维可视化系统构建 |
范文 | 董欣 郑凯东 王家华 摘要:该文通过将地震数据模型转换为图形信息,构造出储层数据集的空间分布形态。将开发工具Qt和OpenInventor结合起来,在VS 2008开发环境下实现了三维地质模型可视化系统的构建。所实现的储层可视化模型对了解储层地质数据的分布规律具有较大意义。 关键词:Qt开发平台;OpenInventor图形开发包;可视化 中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2017)31-0260-02 地震数据三维可视化通过对三维地震数据中感兴趣的特征数据进行构造,显示其范围、走向,并使用不同的颜色与不透明度表示多种属性间的关系。可对地震数据进行完整、准确地显示,还可以显示出井中数据和井间的关系。 Qt是跨平台的C++图形用户界面应用程序框架,面向对象且易于扩展,可在大多数操作系统下运行[1]。OpenInventor(以下简称OIV)是目前使用最为广泛的面向对象的绘图软件开发包。OIV在OpenGL的基础上发展而来,通过“搭积木”的方式快速、高效地构造出复杂的三维场景,方便地实现数据模型的可视化[2]。OIV提供了多种文件接口的方法,如地震数据SGEY、LDM格式文件等。 本文以地震数据为例,通过建立可视化系统框架,生成储层三维可视化场景。 1 地震数据可视化流程 可视化系统框架结构主要由数据处理、网格计算、数学算法、显示等模块组成。根据对储层可视化系统的需求分析,将该软件系统划分为数据输入输出模块、数据规格化模块、地质统计学算法模块、用户图形界面与三维显示模块、系统管理模块和主程序模块。各个模块间具有相互联系的依赖性,必须按照一定的顺序才能实现各自的功能。地震数据可视化流程图如图1所示。 2 系统设计与实现 2.1 数据预处理 数据预处理将测井数据或原始地震数据从一个不规则的数据体构造为一个规则化的网格数据体,然后在网格模型的坐标轴水平X和Y方向定义网格单元的大小,通过插值算法对原本没有数据的网格点进行赋值。真实的储层是凹凸不平或弯曲的层状模型,需要进行变异函数分析或其他统计分析。将层状模型转换成箱形的模型区域,对分析和統计地质变量至关重要[3]。在储层建模的过程中,对地质数据首先要进行坐标变换。 不考虑剥蚀只考虑压实和构造作用的影响,坐标变换为(直井情形)。x,y为水平方向的剖面长度。z为两个层中的形成的一个层面。则有如下变换: [x'=x,y'=y,z'=(z-zTop)/(zTop-zBott)] (1) [(X,Y,Z)]为一个直井轨迹中的空间位置,([ZTop,ZBott])为该直井中对应的层面顶底深度,[(X',Y',Z')]为变换后新的坐标。因为[0≤Z'≤1],这种变换被称为层模型的归一化处理。 对地层油气藏进行三维建模,要建立地质剖面图模型。剖面图以某个方向作为剖切路径,将切开的断面绘制成地质剖面图[3]。为实现剖面的可视化,首先进行数据的组织(包括几何顶点,物性参数等),通过已有地质数据建立一个基于某种数学模型的地质模型并与相应目标相结合,然后进行数据插值计算得出该区域范围内各网格点的属性值,通过属性点的赋值实现对模型的绘制[4]。其次,提供对模型的分解和剖切方法,实现由数据驱动的对模型的操作控制。 2.2 可视化映射 本文的可视化纹理映射有三个主要步骤。 第一步生成纹理。使用RGB颜色模型来描述地层属性的分布情况,每个颜色分量的取值为0~255。每一个体数据的RGB值通过使用OIV中的数据范围的SoDataRange类和转换函数SoTransferFunction类来决定。由预设置的转换函数将体数据值转换成相应的颜色和不透明度,形成纹理。采用当前的漫射颜色和透明度来修改切片的表面。 第二步定义映射。建立纹理空间与物体空间及物体空间与计算机屏幕空间的映射关系。 第三步纹理的重采样。纹理空间的纹理单元与被绘制物体离散化后的坐标点并不一一对应,还须进行重采样来计算所需的纹理值。离散的纹理方法较常用。离散法把纹理定义在一个二维数组中,代表纹理空间中行、列间隔固定的一组网格点上的纹理值。网格点之间的其他点的纹理值可通过网格点的插值获得。通过纹理空间与物体空间之间的坐标变换,把纹理映射到物体表面。 通过分类和映射实现最终的可视化结果。分类映射的目的就是在绘制结果中,用不同的颜色和不透明度,直观区分不同类型的物质[5]。 映射的过程需要通过传递函数来完成。映射一般是将数据的颜色表的值与数据范围建立一个映射,这就可以使得数据的每一个数据都以在颜色表中找到与之相对应的颜色值。通过使用转换函数SoTransferFunction类的colorMap参数域进行颜色映射的定义。SoTransferFunction类可根据体数据范围和渲染节点自动建立起体素值和颜色之间的对应关系,就不用再分类体数据及进行手动编写数据与颜色的映射关系,可快速完成地震数据的渲染。 2.3 场景图设计 通过设计场景结构图构建可视化场景结构。使用了一种树状的数据结构来组织空间数据集,该结构采用自上而下的分层结构,建立场景结构图来构建对象各个部分,完成剖面具体实现的场景, OIV将程序所创建的图形都作为三维对象管理,光照模型LightMode、场景照相机Camera、井位well1以及地震切片SliceChild等节点组合为三维场景图(如图2所示)。利用OIV强大的库将三维对象封装后,可对其进行改动颜色,大小、纹理、包围盒等一系列操作,最终实现三维可视化的交互模块[6]。 2.4 储层三维模型实现 首先利用地震波阻抗数据,通过数据预处理分类后,再分析相应的直方图,根据光线经过三维数据场内部所有点,对采样多边形进行纹理重采样,进行纹理映射,颜色与不透明度的变化进行叠加排列合成,将数据点与颜色值对应起来,赋予体数据不同的颜色值和不透明度。最后求解多个采样多边形,给出采样多边形与纹理空间的映射关系,按从后到前的顺序实现图像合成。 用硬件支持的纹理映射技术实现地震数据的三维彩色图像显示。最终显示出经过四口虚拟井位的栅状图(如图3所示),实现数到形的转换。 3 结束语 通过构建基于Ot与OIV的储层三维可视化系统框架,使用Qt设计界面完成数据的输入,增加数据预处理模块和算法实现等部分,加入OIV建立图形对象场景图,通过C++代码进行逻辑处理,将预处理数据加载到LDM中去,利用OIV可视化模块将数据图形化,可以直观显示储层内部构造,并可对剖面结构特征进行分析[7] [8]。利用OIV实现的交互式储层地质可视化模型对勘探预测具有较大意义,方便地质开发人员对地层构造和油藏分布规律进行更深入的分析和探究。 参考文献: [1] 蔡志明,卢传富,李立夏.精通Qt4编程[M].电子工业出版社,2008. [2] 阎锋欣,侯增选,张定华.OpenInventor程序设计入门到精通[M].清华大学出版社,2007. [3] 王家华,于海茂多点地质统计学建模方法研究[J].石油化工应用 ,2012,31(10):72-74. [3] 潘少伟,杨少春,李胡送. 基于开放图形库的储层剖面图的绘制[J].中国石油大学学报:自然科学版,2009,31(1):157-160. [4] 孟鑫,张桦. Open Inventor开发的关键技术与应用[J].天津理工大学学报,2005,21(1):70-72. [5] 陈雨馨. Volume Viz在油气储层可视化中的应用研究[D].西安石油大学,2014. [6] 郑凯东. 基于OpenGL 的三維油藏可视化模型[J]. 电子设计工程,2009,17(5):63-65. [7] Bruce Eckel,Chuck Allision. Thinking in C++Volume Two:Practical Programming. Pearson Education[M].Prentice Hall, 2003. [8] 闫锋欣,侯增选,张定华,等.基于Qt和Open Inventor跨平台虚拟油泥造型系统构建方法的研究与实现[J].计算机科学,2008,35(011):244-247. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。