海量地震三维可视化显示方法
技术领域
本发明涉及一种三维可视化显示方法。特别是涉及一种通过三维可视化方法显示海量地震数据体,在三维环境下将多个工区的海量地震数据在同一个场景中实现的海量地震三维可视化显示方法。
背景技术
虚拟现实技术中三维可视化显示已经被世界上一些大型石油企业广泛地应用到石油工业的各个环节,对石油企业提高勘探开发效率,加强数据采集、分析、处理能力,减少决策失误,降低企业风险起到了重要的作用。但是目前现有的三维可视化软件只能显示小于当前机器内存的地震数据体,然而在油田每个工区的地震数据量可达到几十GB,个别甚至到200GB,显然计算机硬件发展速度已经无法满足大数据量地震体的显示需求。现有软硬件在显示海量地震数据时已经出现瓶颈,一定程度上限制了虚拟现实在勘探开发领域的作用。
Geoframe和Landmark是世界各个石油公司广泛使用的勘探开发软件,用户的解释工作和数据应用在上述两个软件中,则分别以地震工区、解释工区的形式管理各自的地震数据体,且格式互不通用。同时,现有的三维可视化软件所使用的地震数据体必须通过格式转换,或者第三方软件进行数据传输,才能读取Geoframe和Landmark软件管理的地震数据。
行业内现有显示地震数据方法,是通过软件将硬盘上的地震体数据全部加载进内存后再进行处理并显示,然而,目前地震数据体容量高达几十GB甚至上百GB,但是主流工作站(如hp8200)的内存通常不超过10GB,随着地震数据体的不断增大,占用的内存容量越来越多,硬件的现状已无法满足显示大范围数据体的需求。
总之,现有的任何三维可视化软件存在以下不足:
1)在大数据体不进行抽稀的情况下,不能显示超过计算机内存容量的地震数据体;
2)不能直接同时读取Geoframe和Landmark地震数据,需要借助第三方软件导入;
3)在一个环境中不能同时显示多个不同服务器上的地震数据体;
4)除了显示地震相关数据外不能显示其它诸如海底、地表、平台管线等数据。
发明内容
本发明所要解决的技术问题是,提供一种能够克服现有软件存在的上述缺点,通过高速读取地震数据体,在三维环境下实现海量地震三维可视化快速显示的方法。
本发明所采用的技术方案是:一种海量地震三维可视化显示方法,包括以下步骤:
A、依靠服务器端高速磁盘阵列的读取速度,高速读取数据库中地震数据,并通过千兆局域网的高速传输速度,利用现有服务器端提供的数据读取功能实时获取Geoframe和Landmark软件管理的地震数据;
B、通过油田真实地理信息数据构建虚拟的油田场景,所述的虚拟油田场景包括有:由海底地平面的数据构建的场景、由海水区域的数据构建的场景、由钻井平台的数据构建的场景以及三维勘探形势图构成的场景。
C、将根据步骤A读取的数据,在步骤B的场景中对海量数据进行绘制,并对场景中数据进行可视化操作,采用OpenGL提供的纹理绘制方法,充分利用当前主流工作站的显示卡在显示带宽上的优势进行高速绘制。将获取后的地震数据,通过对每个采样点振幅值的计算,根据其振幅值的大小确定其在颜色表中对应的颜色区间,利用取出的色彩数据并将其载入OpenGL的纹理缓存中进行绘制。
所述的利用现有服务器端提供的数据读取功能实时的获取Geoframe和Landmark软件管理的地震数据,是指通过对用户点击鼠标或键盘所做的操作进行判断,确定用户当前正在观察的数据位于海量地震体的哪一条剖面上,再从服务器端实时调取Geoframe和Landmark软件管理的地震数据。
所述的海底地平面的数据,是将采集到的含有x,y坐标以及相对于海平面的水深值,通过surfer软件将这些散点数据进行处理,生成网格数据并存储于二维数组中,可得到绘制所需数据体。
所述的海水区域的构建,是将大范围海水区域按照真实的地理坐标用二维网格进行表示,采用多个不同相位的正弦波进行叠加计算,叠加后的振幅值作为网格中每个采样点在深度方向上的值,通过利用正弦波振幅的周期性改变得到波动的海水效果。
所述的钻井平台的构建,是通过借助专业建模软件进行建模得到三维平台模型,并通过程序按照3ds文件的标准格式读入模型文件,在对应真实钻井平台的实际地理坐标的位置上进行绘制。
所述的三维勘探形势图,是通过利用平面图的二维坐标信息结合地理位置上对应的地下层位的真实深度值,得到绘制所需的三维坐标信息,网格中每相临三点构成一个三角面,通过计算每个点周围三角面的法向量,将各法向量求和可得到每个采样点的向量方向,并配合OpenGL中的光照阴影技术实现晕渲效果,增强其在虚拟实境中的立体感。
对于地震数据体的每个剖面中的数据对应计算机中的二维数组进行存储,所述剖面的绘制采用OpenGL中的二维纹理绘制方法,在保证纹理放大缩小拉伸清晰度的同时大大提高绘制速度。
对于绘制时所需要的多边形数量较多的地震数据以外的其他数据,为降低显卡GPU的负担,采用OpenGL中显示列表技术加速数据的绘制。
还包括有将多个地震工区数据同时显示,在场景中,将多个地震工区以其真实实际坐标位置绘制在场景当中,每一个数据体作为一个单一数据对象,在场景中加载多个对象进行同时显示,通过提供视角切换、移动及任意定位操作,实现在场景中漫游。
还包括有三维拾取,利用OpenGL中的相关绘制拾取计算,对场景中任意数据进行鼠标拾取操作,通过给每个数据进行绘制编号,当鼠标点击时,对场景进行重绘,通过拾取得到的编号计算判断当前选中的对象,并对选中对象进行相关绘制参数设置。
本发明的海量地震三维可视化显示方法,能同时显示诸如海底、地表、平台等各类数据。能够有效显示勘探开发生产过程中的地震数据、井数据、海底情况等各类数据,以摆脱国外软件技术垄断。避免因现有应用软件***升级造成的大量数据转换工作。同时实现在一个场景中显示总数据量达到2TB的海量数据体,并对可对显示数据进行可视化操作。
具体实施方式
下面结合实施例对本发明的海量地震三维可视化显示方法做出详细说明。
本发明的海量地震三维可视化显示方法,其特征在于,包括以下步骤:
A、依靠服务器端高速磁盘阵列的读取速度,高速读取数据库中地震数据,并通过千兆局域网的高速传输速度,利用现有服务器端提供的数据读取功能实时获取Geoframe和Landmark软件管理的地震数据,有效避免将大量无用数据一次性调入内存,有效降低***资源占用,实现在有限的硬件资源条件下加载并处理海量数据。
由于专业人员观察地震体时,在某个时间段内即使在三维环境中也只是同时观察地震体的几个剖面,这些剖面的数据只占用地震体数据的很小一部分,而其它绝大部分数据处于等待使用状态。如果将所有数据都加载进入内存,既增加了加载数据所需的等待时间又占用过多***资源,因此,本发明利用现有服务器端提供的数据读取功能实时的获取Geoframe和Landmark软件管理的地震数据。通过对用户点击鼠标或键盘所做的操作进行判断(如拖动地震体剖面,观察不同区域的数据),确定用户当前正在观察的数据位于地震体哪一条剖面上,从而从服务器端实时获取数据。根据目前油田配置的计算机硬件条件,依靠服务器端高速磁盘阵列的读取速度和高速千兆局域网的传输速度,可以很好的满足实时获取数据在速度上的要求,使实时读取数据的延迟降到可以接受的范围内。同时,由于数据实时获取而非一次性载入,只需占用少量内存空间就可以满足可视化的显示需求,大幅度降低了***资源的占用。通过实时高速的数据获取方法,使得后台大容量高速磁盘阵列代替了原有内存的作用,突破了现有硬件由于显示方法的缺陷所带来的限制,充分利用了油田在硬件资源上的优势。利用该数据读取方法,服务器中TB级的海量地震数据体都可以同时作为显示所需的数据对象,满足了海量数据显示***在数据加载以及处理上的要求。
通过上述方式,载入30G地震体的时间缩短到20秒以下,拥有8G内存,1G显存的工作站可显示总数据量高达2TB的多个地震数据体。
B、通过油田真实地理信息数据构建虚拟的油田场景,所述的虚拟油田场景包括有:由海底地平面的数据构建的场景、由海水区域的数据构建的场景、由钻井平台的数据构建的场景以及三维勘探形势图构成的场景。
目前国内一些油田已经建立三维可视化中心,具有了利用虚拟现实技术进行三维可视化显示的设备。为了给油田专业人员提供更好的宏观判断与决策条件,充分利用虚拟现实设备,本发明在显示石油行业专业数据的同时,通过利用油田真实地理信息数据构建虚拟的油田场景,为可视化***提供更多的宏观决策信息。以渤海油田为例,在场景中绘制海底地平面,虚拟海水,海上钻井平台,海底管道,以及多口探井,同时根据真实数据构建三维版勘探形势图。
对于海底地平面的构成,其数据是采集到的一些含有x,y坐标以及相对于海平面的水深值,可通过surfer软件将这些散点数据进行处理,生成网格数据并存储于二维数组中,可得到绘制所需数据体。
对于虚拟海水,其目的是为了构建波动的海水平面,增强虚拟现实的真实感。将大范围海水区域按照真实的地理坐标用二维网格进行表示,采用多个不同相位的正弦波进行叠加计算,叠加后的振幅值作为网格中每个采样点在深度方向上的值。通过利用正弦波振幅的周期性改变得到波动的海水效果。
对于钻井平台,通过借助如3DSMAX等专业建模软件进行建模,从而得到三维平台模型,并通过程序按照3ds文件的标准格式读入模型文件,在海底地平面和虚拟海水的场景中在对应真实钻井平台实际地理坐标的位置上进行绘制。
对于由真实数据生成的三维勘探形势图,目前油田的勘探形势图为二维平面图,图上标明了相关油田信息和对应的坐标。为了增强其构造单元凸起凹陷的立体效果,本发明通过利用平面图的二维坐标信息结合相关地理位置上对应的地下层位的真实深度值,可得到绘制所需的三维坐标信息。数据同样以网格的形式存于二维数组中,数组中每个元素为采样点的三位坐标值。网格中每相临三点构成一个三角面,通过计算每个点周围三角面的法向量,将各法向量求和可得到每个采样点的向量方向,并配合OpenGL中的光照阴影技术实现晕渲效果,增强其在虚拟实境中的立体感。
C、将根据步骤A读取的数据,在步骤B的场景中对海量数据进行绘制,并对场景中数据进行可视化操作。
对于地震数据的显示,由于数据量较大,为了提高绘制速度,采用OpenGL(专业的3D程序接口)提供的纹理绘制方法,充分利用当前主流工作站的显示卡(如quadro3450)在显示带宽上的优势进行高速绘制。如今随着显存速度的快速提高,带来显示带宽的快速增长,从而使得高速绘制的优势在将来会越来越明显。获取地震数据后,通过对每个采样点振幅值的计算(计算方法参见举例说明),根据其振幅值的大小确定其在颜色表中对应的颜色区间。例如,当前颜色表中有256种颜色,假设整个地震体的振幅最大值为10000,当前采样点的振幅值为4560,利用振幅值与最大振幅值相除(4560/10000=0.456)后的结果乘以色表颜色总数,即256*0.456=116.736,该数据取整可得到当前振幅值对应当前色表第117个区间的颜色。利用取出的色彩数据并将其载入OpenGL的纹理缓存中进行绘制。地震数据体的每个剖面中的数据可以对应计算机中的二维数组进行存储,因此剖面的绘制采用OpenGL中的二维纹理绘制方法,在保证纹理放大缩小拉伸清晰度的同时大大提高绘制速度。对于地震数据以外的其他数据,如虚拟油田场景数据中的海底地平面,三维勘探形势图等数据,由于绘制时所需要的多边形数量较多,为降低显卡GPU的负担,采用OpenGL中显示列表技术加速数据的绘制。为了实现多个工区同时显示,以便于连片进行宏观观察与操作,本发明根据油田的实际坐标范围构建一个大的虚拟场景,在场景中,可以将多个地震工区以其真实实际坐标位置绘制在场景当中,每一个数据体作为一个单一数据对象,在场景中加载多个对象进行同时显示,通过提供方便的视角切换,移动及任意定位操作,实现在场景中漫游。由于显示数据种类多而且数量大,为方便相关操作,还包括有三维拾取,利用OpenGL中的相关绘制拾取计算,可对场景中任意数据进行鼠标拾取操作,通过给每个数据进行绘制编号,当鼠标点击时,对场景进行重绘,通过拾取得到的编号计算判断当前选中的对象,并对选中对象进行相关绘制参数设置,如修改色表,改变显示比例。还包括有三维对象管理,对于在三维环境中显示如此多的数据,通过一个建立一个简易数据管理界面将已加载数据对象一一列出,实现对多个数据类型的添加删除操作,并对数据进行显示参数上设置。
本发明的方法在现有硬件条件下,实现了海量地震数据的显示,其总数据量可达TB级,同时使可视化硬件设备实现了原本不能实现的油田三维虚拟实境显示功能。
实施例
2008年,我们将此方法运用到了我们自行设计的海量地震数据三维显示***中,该***运行在Windows XP 64位版操作***上,硬件采用渤海油田08年购入的hp9400工作站。具体配置为:
Cpu:AMD Opteron 2218
内存:4G
显卡quadro FX5500 1G显存
通过该显示***,可以在3分钟内调入总数据量高达500G的多个地震工区数据,通过不断加载数据,最终可加载2TB的海量数据体。
该***在中海油(有限)天津分公司的三维可视化中心,利用本方法构建的虚拟渤海三维场景,向勘探开发人员展示出了宏观的渤海地理信息,并可利用该***任意浏览整个渤海区域的全部地震数据,实现了很好的应用效果。