除了谷歌和创始人投资的飞行汽车外,全球还有哪些公司在开发此类产品?
06-17
1 简介 通过地震、测井可以获得储层地层测试点的孔隙度、渗透率等物理参数。
但这些数据量巨大,直接进行地质分析存在困难。
为了了解油层的结构和分布,需要在计算机上再现油藏地层模型,并对其进行一些交互操作和初步处理。
系统实现方法为:首先对数据(几何顶点、物性参数值等)进行组织并提取可见表面,并与所需目标相结合,实现模型的绘制。
其次,提供了模型的分解和切分方法,实现数据驱动的模型运行控制。
2 数据处理及参数颜色索引 2.1 系统地质数据 系统读取的原始网格数据示例如下: 第一行数据中的前三个数据分别表示 X、Y、Z 轴方向的网格数。
第4至6个数据分别代表X、Y、Z轴方向的原点坐标,第7至8个数据代表沿X、Y轴方向的网格。
网格间距大小。
第二行数据“2”表示后面是两列数据。
第一列数据(如.)代表深度值,第二列数据(如73.)代表对应点的参数值。
由于网格节点在xoy平面上按规则排列,给定沿x、y方向的网格间距dx、dy,网格数Nx、Ny以及几何坐标系原点坐标x0, y0,z0,则任意网格节点Node的空间坐标和参数为: 式中:i的范围为[O, Nx-1],j的范围为[0, Ny-1]; k 是节点Node(i,j)处深度的序数,其值与深度的排列有关。
dpk,sk 为第 k 点的深度和物性参数。
2.2 处理原始数据 由于原始数据使用大地坐标,为了方便绘图,需要将数据转换为坐标。
将X、Y、Z上的数据范围变换到-1到1之间,只有经过缩放变换后,图形才能显示在视图区域中。
测量时原始数据可能存在误差,因此读取数据后需要检查数据的有效性。
2.3 参数颜色索引 OpenGL的颜色索引模式通过建立颜色索引表(也称为颜色表)来确定绘制对象的颜色。
可以通过在颜色表两端指定基色和尾色,中间插值计算其他颜色,并分别分配相应的索引号来建立颜色表。
对模型进行着色时,将读取的数据点对应的参数值转换为颜色表上的索引号,即可确定该参数的颜色。
由于颜色表上索引号对应的参数是离散的,因此需要对颜色表中参数值对应的位置进行四舍五入才能准确给出其索引号。
假设参数存储在数组parameter中,color_num是颜色表的长度。
将参数转换为颜色索引号p的代码段如下: 对应的索引号 上面创建的颜色可能比较单调,中间一些参数值对应的颜色差异并不大明显的。
一种改进方法是将颜色表分为四段,每段只控制一个颜色分量的变化。
这样,颜色表中颜色变化的种类大大增加,使得中间部分参数值的颜色区分明显,更加直观。
反映了水库的状况。
底色和尾色通常根据油藏描述的实际要求指定,如类蓝色(表示水)和类红色(表示油),分别对应最小值和最大值??物理参数(例如渗透性)。
3 建立三维地质数据模型 3.1 绘制三维地质模型的基本思想 实现三维地质模型绘制的关键步骤是对三维地质模型进行建模数据量。
从读取数据的排列结构分析可以看出,原始网格数据形成了三维地层模型。
除垂直方向(Z方向)上的两个表面有起伏外,其余表面均为与ZOY面或ZOX面平行的平面。
如图1所示。
地层模型的可见面有底面、顶面、左面、右面、正面和背面。
因此,只需绘制这6个面的外侧即可绘制整个6面体。
问题转化为提取这六个表面上的数据并使用OpenGL绘图技术分别绘制每个表面。
3.2 三维地质数据体模型的生成 模型立方体的6个面由许多小的4边多边形组成。
每个面都可以使用 OpenGL 绘制连续 4 边多边形的方法来绘制。
填充颜??色可以使用OpenGL的平滑(SMOOTH)着色方法。
定义顶点颜色后,OpenGL会自动在4边形多边形内插值并绘制颜色渐变。
在着色之前,使用Z缓冲区(Z_buffer)技术通过测试物体的深度来实现消隐。
以底面的创建为例。
考虑一般情况。
设x轴上的网格数为x_lenth。
z 轴上的数据存储在数组 z_data 中。
当前绘制的4面图块的编号是循环变量j。
每个顶点的颜色值是通过将参数值转换为颜色索引值来确定的,并由矢量模式给出。
自动提取底面数据并绘制底面的程序段为: 其中函数getparaindex()返回对应参数的颜色索引值。
底面绘制完成后,以此类推,可以提取其他可见表面数据(顶点及其排列顺序),还可以对其他可见表面进行绘制、隐藏、着色,生成三维油藏地质模型。
4 模型操作 4.1 数据体分层 通过对数据体进行分层,即沿Z轴分解数据体的各层,逐层提取并绘制数据体的可见表面,就可以得到该层的图,以及得到该层之后的数据块的图。
分层数据的绘制可以通过绘制分层后的数据体的顶面图形来实现。
利用VC中的Slider控件传递参数并确定“显示滑动平面”操作的个数,从而可以显示多个滑动平面。
通过旋转等操作,可以清楚地看到滑动面之间的油藏状况,如图2所示。
4.2 切片与切块 通过对数据体进行切片,即对数据体的X轴和Y轴进行切割,得到轮廓或截面图形。
通过Visual C++中的鼠标响应程序获得一系列垂直于X轴和Y轴的切割点的位置,并通过对两侧网格数据点的颜色进行插值得到切割点的颜色的切割点。
需要注意两个问题:①Visual C++中的数据与OpenGL中的数据的转换。
因为通过双击鼠标左键选择切割点,所以在VC中得到响应坐标,需要将其转换为OpenGL中的坐标。
由变换语句glFrustum();我们可以知道OpenGL中窗口的宽度和高度,也可以知道VC中窗口的大小,所以两者之间存在比例关系,然后考虑X轴和Y轴的长度因素axis,可以获取OpenGL中切割点的坐标。
②关于获取切割点的颜色。
当OpenGL中采用平滑模式(GL_SMOOTH)时,给定多边形中每个点的颜色是通过对顶点颜色进行插值得到的。
因此,当在给定的网格点之间选择切割点时,可以通过颜色捕获来获得切割点的颜色。
绘制时需要注意顶点和颜色的对应关系。
利用油田数据绘制的切片图如图3所示。
划片功能与切片功能类似,但得到的不是一个面,而是一个数据体。
该函数的第一步与切片函数类似,都是获取OpenGL中切割点的坐标。

第二步,绘制数据体图形时,不再只绘制一个面,而是绘制数据体的6个面。
因此,该函数与切片、旋转等函数结合使用时,必须注意函数标志位的设置。
问题。
利用油田数据绘制的框图如图4所示。
5 结论 本文提出了一种基于OpenGL建立三维油藏地质数据模型的简单方法。
在根据实际需求创建颜色表,将原始物性参数转换为颜色索引值的基础上,自动提取网络。
然后使用网格数据体的可见表面上的数据使用OpenGL绘图技术来绘制模型。
与传统的三维油藏可视化软件系统相比,本文提出的系统渲染效率更高。
特别是该系统的特点是对模型进行分层、切片、切块等操作。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-17
06-06
06-18
最新文章
PCBA质检员的日常工作内容
美国法院裁定VoIP不属于电信服务,需征税
雷达嵌入式工控主板如何使用?工控主板故障分析
摩托罗拉在西班牙促销Z8手机
中宇买下了一台三星机型,品牌和规模是合作的主要原因
舰载军用加固计算机热设计
谷歌开始对仍由HTC生产的谷歌手机进行内部测试
英国EE分享LTE发展经验教训,面临终端-语音-回传三大挑战