一种地震数据的可视化方法与流程

文档序号:17354176发布日期:2019-04-09 21:28阅读:451来源:国知局
一种地震数据的可视化方法与流程

本发明涉及数据可视化技术领域,尤其涉及一种地震数据的可视化方法。



背景技术:

随着油气资源勘探开发程度的逐步深入,勘探目标逐渐由常规的构造油气向非常规、隐蔽、地层和岩性等复杂油气储藏过度,这促使开发新的方法和技术以进一步完善对地下储层的认识和适应新的勘探要求。在这种大背景下,地震勘探作为油气资源勘探的重要手段之一,受到了业界的广泛关注和研究。

数据可视化通过计算机图形和图表等方式,将数据的各个属性从多种角度和维度进行展示,使得人们能够直观深入地认识数据及了解数据之间的差异,发现其中蕴藏的模式和规律。随着计算能力的逐步增强和各类可视化技术的迅猛发展,可视化的展现形式变得愈加丰富,表现形式也在不断变化,例如实时动态数据展示、人机交互应用等,特别是,当前在各种各样的应用系统中实现或者集成数据可视化功能已经成为一种发展趋势。

地震数据的可视化,尤其涉及到大规模的地震数据体的可视化,一直是计算机图形学领域研究中的热点,对地底地质构造,油藏分析等地球物理勘探方面具有重要的作用,在物探研究中,实现地址模型的可视化,对石油勘探,天然气勘探能够起到一定的辅助作用,具有十分重要的现实意义。

然而,由于地质勘探设备精度不断增强,地震数据的大小随着勘探设备精度的增加而增加,通常,一个存储着大范围区域的地质信息的segy格式文件,其大小可达到gb及以上级别,且数据结构复杂具有空间性,在对数据进行处理时,将涉及到大量复杂的数据解析工作。考虑到计算机能力及内存空间不允许无限制的扩大,因此对大规模地震数据处理和可视化时,在数据处理、内外存调度、实时可视化及动态交互上将会面临很大的挑战,而现有技术的数据可视化技术存在数据处理效率低、实时性差等限制,对于大规模数据,这些限制尤其明显。

因此,需要对现有技术进行改进,以提供精度高、计算效率高的大规模地震数据可视化方法。



技术实现要素:

本发明的目的在于克服上述现有技术的缺陷,提供一种地震数据的可视化方法,能够高效地对大规模地震数据进行实时显示。

根据本发明的第一方面,提供了一种地震数据的可视化方法。该方法包括以下步骤:

步骤1:对地震数据体进行空间管理,建立离散点之间的拓扑结构,以将所述地震数据体划分为不同的数据块;

步骤2:基于可视化的分辨率要求确定需要调度的数据块规模以及所调度的数据块在所述拓扑结构中的位置区域;

步骤3:对所调度的数据块进行可视化绘制。

在一个实施例中,利用八叉树原理将所述地震数据体构建为包含多层的八叉树形拓扑结构。

在一个实施例中,步骤2包括以下子步骤:

步骤21:基于要求的可视化分辨率确定需要调度的所述八叉树形拓扑结构的层数;

步骤22:根据所确定的层数,自顶而下从所述八叉树形拓扑结构中调度相应的数据块,以进行可视化绘制。

在一个实施例中,在步骤21中,根据以下子步骤确定需要调度的八叉树形拓扑结构的层数:

步骤211:将所述地震数据体以某一分辨率进行可视化显示的状态作为基准状态;

步骤212:确定将所述地震数据体以要求的分辨率进行可视化显示的状态相对于所述基准状态的放缩倍数;

步骤213:根据预定的放缩倍数与八叉树形拓扑结构的层数的对应关系确定需要调度的八叉树形拓扑结构的层数。

在一个实施例中,在步骤213中,根据放大倍数与八叉树形拓扑结构的层数的对应关系确定需要调度的八叉树形拓扑结构的层数,预定的对应关系为:

当放大倍数小于3时,对应八叉树形拓扑结构的层数为3;

当放大倍数大于等于3小于6时,对应八叉树形拓扑结构的层数为4;

当放大倍数大于等于6小于9时,对应八叉树形拓扑结构的层数为5;

当放大倍数大于等于9时,对应八叉树形拓扑结构的层数为6。

在一个实施例中,步骤22包括以下子步骤:

步骤221:将从所述八叉树形拓扑结构中调度相应的数据块的任务分解为多个子任务;

步骤222:将所述多个子任务分配给多个线程,以协同执行不同数据块的调度,其中,每个线程对应一个子任务。

在一个实施例中,在步骤222中,所述多线程在处理完相应的子任务之后,采用滑窗机制判断数据块之间的相邻关系,以进行数据块拼接,其中,滑窗移动的步长小于滑窗边长以根据前后滑窗重合区域的数据是否相同来判断数据块之间的相邻关系。

在一个实施例中,在步骤3中,利用平衡二叉树作为场景树从所调度的数据块中进一步选择需要加载进场景中的数据,以进行可视化绘制,其中,加载进场景中的数据量与所调度的数据块总量的比例表示为:

其中,x为从t0时刻到t1时刻,场景中的数据变化量,su为数据量增加时t1时刻的数据量,sd为数据量降低时t1时刻的数据量,cu、cd为对应的欧式数据量。

在一个实施例中,在进行可视化绘制时,还包括判断场景树上的节点是否与视线相交,对视线不可及之处进行裁剪,输出并显示视线可及的部分。

与现有技术相比,本发明的优点在于:通过对大规模地震数据进行空间管理,组织为便于检索和加载的分块拓扑结构,提高了实时调度效率;在调度过程,基于可视化的分辨率要求,从拓扑结构中并行加载适量的数据,降低了加载的数据量,进一步提高可视化的速度;在对地震数据进行实时绘制时,通过使用平衡二叉树作为场景树进行并行渲染,降低了修改场景导致的计算复杂度;此外,采用遮挡裁剪技术对视野外的场景进行裁剪,改善了可视化的显示效果。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1示出了根据本发明一个实施例的地震数据可视化方法的流程图;

图2示出了segy数据格式的示意图;

图3(a)示出了根据本发明一个实施例的八叉树的三维结构图;

图3(b)示出了根据本发明一个实施例的八叉树的树结构图;

图4示出了根据本发明一个实施例采用滑窗机制对分块数据进行拼接的示意图;

图5示出了根据本发明一个实施例的基于cuda的场景绘制框架图;

图6(a)至图6(c)示出了根据本发明一个实施例的地震数据的可视化效果图。

具体实施方式

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

根据本发明的一个实施例,提供了一种地震数据的可视化方法,简言之,该方法通过对地震数据进行去噪处理、空间组织、调度管理和优化实时可视化绘制等多个方面来提高可视化效率以及改善显示效果。具体地,参见图1所示,本发明的可视化方法包括以下步骤:

步骤s110、对大规模地震数据体进行去噪处理

地震数据可采用seg-y格式进行存储,通常,seg-y数据由三部分构成,分别是文件头、二进制文件头和实际地震道数据。参见图2所示(仅示出了部分字段),文件头占3200字节,该部分主要存储一些对地震数据体进行描述的信息;二进制文件头一般400字节,主要存储seg-y文件中的一些关键信息,例如:数据格式、采样点数目等;地震道数据包含两部分,即道头信息和采样点数据,其中,道头信息一般存储该地震道对应的相关信息,如坐标信息等,通常情况下,对于seg-y文件中的所有地震道,每条地震道的采样点数相同。

在获得大规模seg-y格式的地震数据体之后,可进行去噪处理,以剔除无效数据。地震数据体是指有多个单片数据构成的数据集,片数据例如是对应地层的不同深度的数据,如,一个片数据可能对应深度为300米或500米等的数据。

在一个实施例中,采用svd(奇异数分解)进行去噪,具体地,包括以下过程:

假设地震数据(地震信号)的道数为m,采样点数为n,单片地震数据是m×n的矩阵a,对a进行以下分解:

其中,u和v的列分别叫做a的左奇异向量和右奇异向量,奇异对角矩阵σm×n的对角线上的值叫做a的奇异值。u的列由aat的单位化的特征向量构成,v的列由aat的单位化的特征向量构成,σm×n的对角元素来源于aat或ata的特征值的平方根,并且是按从大到小的顺序排列。奇异值往往对应着矩阵a中隐含的重要信息。

在上述公式(1)中,u和v都是正交矩阵,并满足以下关系:

其中,矩阵em×m、en×n为酉矩阵,其作用主要是为了构造奇异对角矩阵σm×n,奇异值大小从左上方最大一直排到右下方,可以理解成是为单片地震数据矩阵a构造的酉矩阵,奇异值的分量越大,对地震数据的贡献越大,因此,取一部分较大特征值所对应的分量也能够对地震数据进行重构。例如,采用σ中前10%的数对地震数据进行重构,可以保留地震数据大部分的特征,并过滤掉一些不重要的特征,从而在减少可视化数据量的同时,更加突出地震数据特点。

经过去噪处理之后,可进行重构以获得地震数据体,重构过程属于现有技术,在此不再赘述。

步骤s120、对地震数据体进行空间管理,建立离散点之间的拓扑结构并基于可视化分辨率的要求对拓扑结构中不同区域的数据块进行调度。

在此步骤中,包括对地震数据体进行空间管理以建立离散点之间的拓扑结构、基于可视化的分辨率要求确定从拓扑结构中调度的数据块规模以及采用多线程并行执行数据块调度等三方面的内容。

一、对地震数据体进行空间管理

地震数据体是地层中离散的海量地震波强度数据,这些数据不具备几何拓扑信息,在本发明中,对大规模地震数据体进行空间管理,以建立离散点之间的拓扑关系,

在一个实施例中,对地震数据体在空间管理上采用八叉树进行组织,以将地震数据体构建为树形数据模型,其基本原理是:将地震数据体放置在一个2n*2n*2n的立方体内,立方体与八叉树的根节点相对应,若整个立方体被地震数据体完全充满(全满),那么该八叉树仅有一个节点,即根节点,否则该立方体被进一步剖分为相等的八个子立方体,每个子立方体与根节点的子节点一一对应,对于每个子节点,若对应的子立方体为全空或者全满,则不再进一步剖分,如果子节点为部分填充,则继续细分为八个子节点,依次类推,直到每个子节点达到分解的精度或者子立方体均为全满或全空为止。在本文中,将全空的立方体对应的节点称为白节点,将全满的立方体对应的节点称为黑节点,将部分填充的立方体对应的节点称为灰节点。

参见图3(a)和图3(b)所示,其中图3(a)示意了利用八叉树对空间进行递归划分,每次划分自顶向下沿着x,y,z三个方向将空间分为8个象限,每个象限代表八叉树的一个节点,图3(b)示出了树形拓扑结构,包含三层,第一层对应根节点,第二层有八个子节点,其中仅有一个灰节点,对该灰节点划分之后形成第三层的八个子节点,由于第三层不含有灰节点,因此不再继续划分。

综上,八叉树的拓扑结构是一棵树,树中任一节点的子节点只会是8个或0个,不会有8与0以外的数目。对于大规模地震数据体而言,每次都对数据进行八等分的方法能够有效节约处理时间以及存储成本,并且树形的拓扑结构也能够快速对其子节点存储的数据进行追溯,直至到达根节点,即能够方便快捷的检索到数据块位置,便于操作。相对于四叉树和六叉树,本发明的优选实施例中采用八叉树对于大规模地震数据体的处理更有加有效。

二、基于分辨率确定数据块调度规模

在可视化地震数据体时,随着视点距离的靠近,分辨率增加,例如,对于以八叉树组织的地震体数据,随着视点距离的靠近,八叉树逐渐迭代深度越深,也就是说对数据的采样点增加,使得分辨率增加,达到细节还原的需求。

在一个实施例中,根据对地震数据体可视化的分辨率要求来确定加载的八叉树层数,加载的八叉树层数越大,其存储的数据块越多,可视化后图片分辨率越高。

具体地,可采用以下过程确定分辨率与八叉树层数的对应关系:

s1,以某一分辨率为基准,将该分辨率对应的显示状态设置为基准状态;

s2、确定其它的分辨率所对应的显示状态相对于基准状态的放缩倍数,并根据放缩倍数确定需要调度的八叉树层数。

例如,将放缩范围分为十等份,分别标识为0-9共十个级别,将基准状态设置为对应相对较小的分辨率,根据其它分辨率相对于基准状态的放大倍数来确定八叉树层数,如对应关系表示为:

放大倍数[0,3):3层

放大倍数[3,6):4层

放大倍数[6,9):5层

放大倍数[9,∞):6层

确定了八叉树层数之后,进行可视化时,将对应层数的数据块全部加载到内存中,以被进行后续的实时绘制,如果所需八叉树层数降低,及时卸载多余数据。

需要说明的是,尽管上述以基准状态对应较小的分辨率为例进行说明,仅利用放大倍数对应八叉树的层数,但在实际应用中,基准状态可设置为对应各种分辨率要求,而以放大倍数、缩小倍数,或放大倍数和缩小倍数相结合来对应八叉树的层数。

三、采用多线程并行执行数据块调度

在确定了数据调度规模之后,在实际的数据调度时,为了提高数据处理性能,可采用多线程方式并行执行调度。

在一个实施例中,多线程的具体操作包括以下步骤:

s1,将地震数据块载入的任务分解为多个协同执行的任务,同时根据八叉树结构特点对不同区域的数据块进行并行检索并加载检索得到的数据块;

s2,多个不同的线程加载不同区域的数据块处理之后,对于处理后数据的拼接。

例如,采用滑窗法进行数据拼接,具体操作如下(参见图4,以在二维空间上滑动为例进行说明):

(1)、根据分解后的子任务所包含的数据量确定滑窗尺寸;

例如,如果分解后的子任务包含n*n的数据,则确定滑窗尺寸为n*n

(2)、设定滑窗的移动步长;

将滑窗的移动步长设定为小于滑窗边长,例如,(n-1);

(3)、通过滑窗的移动为多个协同执行的任务载入数据;

通过滑窗的移动为多个协同执行的任务载入数据;

(4)、多线程对数据进行处理;

(5)、判断滑窗之间的数据是否具有相邻关系;

(6)、数据拼接输出并显示。

在此实施例中,滑窗移动的步长与滑窗边长差值为1,在滑窗每次进行移动的过程中,会保留上一滑窗边缘的数据信息,这一前后滑窗重合区域的信息为锁定不同线程处理数据的关联性提供了依据(参见图4)。在拼合过程中,通过对比滑窗边缘区域的数据信息是否相同即可判断任意两滑窗内数据是否有相邻关系。针对具有相邻关系的数据块进行拼接处理,最终输出并显示。

需要说明的是,为便于理解上述是以二维数据结构示意的滑窗机制,在实际处理时,对于三维的数据块而言,滑窗包括横向和纵向两个方向的滑动。

步骤s130,对地震数据体进行实时可视化绘制。

在上述步骤s120中,八叉树层数是根据分辨率要求初步确定的需要调度的数据,而在此步骤s130中,进行实时可视化绘制时,由于绘制的场景位置、视线位置等并不需要对所调度的全部数据进行渲染。例如,可使用平衡二叉树、动态规划法来确定进行绘制时需要加载的数据量。

以采用平衡二叉树对场景中的数据集进行管理及并行渲染为例,其优点是平衡二叉树其左右两个子树的高度差绝对值不超过1,在对场景树进行数据的检索,载入,卸载等操作时,仍能保证场景的平衡,能够大大降低修改场景所带来的计算复杂度,提高数据调度性能。

在t0时刻,场景中的数据量为s,在t1时刻数据量可能会有两种变化:不是增加到su,就是减少到sd,从而与之对应的t0时刻的欧式数据量c在t1时刻不是增加到cu,就是减少到cd。

t1时刻的欧式数据量可表示为:

其中,x为场景中数据变化量,在t1时刻,su、sd、x都是已知的,从而可以求出cu和cd的值。

在一个实施例中,建立如下调度组合,加载占内存总存储量n(n为比例值)的数据,清空部分欧式数据量。

在t0时刻,调度组合的数据总量为:

v=ns-c(4)

其中,s表示内存总存储量,c表示t0时刻的欧式数据量。

在t1时刻,调度的数据总量有以下两种情况:

1)、数据量增加到su,此时调度的数据量为:vu=nsu-cu;

2)、数据量减少到sd,此时调度的数据量为:vd=nsd-cd。

设定无论绘制过程中场景中的数据量如何变换,最终场景中的数据量不变,即vu=vd,则有:

n为在调度中释放一定量的数据之后,所需要加载进场景的数据所占内存总存储空间的比例。

进一步地,可对图形绘制进行优化操作,例如,在场景的绘制上,采用遮挡裁剪技术,即当绘制的物体在视线之外时,对视野外的场景进行裁剪,通过判断场景树上的节点是否与视线相交的方式来决定节点是否进行裁剪。

(1)、设置一组平行光,光路方向为从屏幕外侧向屏幕内侧;

(2)、将数据体放入(1)中所设平行光中;

(3)、判断数据体中各数据点透明度。

由于光在物体中具有穿透性,随着光路进入物体深度的增加,物体透过的光线会逐渐减弱;反之光路进入物体深度减少,物体透过的光线会逐渐增强,因此当数据体透明度为零时,意味着已经到达视线不可及之处。

(4)、对视线不可及之处的数据点进行裁剪,输出并显示其余部分。

在此步骤中,对地震数据体绘制过程中,根据绘制中场景位置,对绘制过程进行优化,能够达到使用最少的地震数据,将三维地震数据更高精度地绘制出来。

综上所述,本发明通过采用八叉树对地震数据体进行空间管理,建立离散点之间的拓扑关系,便于将数据存储于外部存储器或远程服务器等;在进行实时绘制时,根据分辨率要求,可将需要的部分数据加载到内存,从而能够节省内存的利用空间并提高处理速度;此外,对场景进行渲染时,根据场景位置、视野范围等选择使用尽量少的数据,而不是所加载的全部数据进行渲染,能够进一步利用最少的数据满足可视化要求,并提高可视化速度。

图5示出了根据本发明一个实施例的基于cuda的场景绘制框架图,包括cpu和gpu,其中,cpu主要负责输入和输出的功能,输入的参数是数据、模型数据等,输出的结果是屏幕中每个像素点的最终显示的颜色。gpu主要负责计算任务,实现并行计算目的,其包含运算单元和多种类型的存储器(例如,寄存器、全局存储器和共享存储器等)。例如,gpu将cpu传输过来的模型绑定至参数存储器,运算单元实现图形绘制时的裁剪、光栅化、颜色计算等。在该实施例中,利用gpu的寄存器速度快的优点,全局存储器可读写的性质和共享存储器可以线程间相互通信的优势完成并行计算的任务,最终的计算结果写入全局存储器中,并传输至cpu用于最终的显示,其中,cpu负责本发明的空间管理、数据调度、多线程处理以及最后的输出显示,gpu负责图像的渲染、裁剪、颜色计算等。

为了进一步验证本发明的效果,发明人进行了仿真实验,根据本发明实施例的流程,首先对大规模地震数据体进行去噪处理,以剔除无效数据;然后对地震数据体从空间管理、多线程并行及内存调度等方面进行处理;最后,对数据体进行可视化的绘制,在绘制过程中利用图形绘制优化的方法,对图形绘制进行加速操作,以节约时间成本。

在仿真实验中,采用如下配置的计算机:cpu为inteli5-4210m、显卡为intelhdgraphics4600、实现模式为1920*1080、屏幕刷新率为60hz、内存容量8g、操作系统为window764位旗舰版,实验中,设置了三组数据量大小分别为150m,350m,550m的segy格式数据文件,分别进行可视化操作,结果表明本发明的方法在精度和可视化速度上都取得了不错的效果,三种数据量的显示效果参见图6(a)至图6(c)所示,其中,图6(a)对应150m的数据量,图6(b)对应350m的数据量,图6(c)对应550m的数据量。常见的地震数据可视化处理中,往往使用红色及蓝色曲线对相关数据进行展示,因此在本发明中也可采用红色及蓝色作为地震数据可视化的主要颜色。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1