怎样轻松读取二维和三维地震数据?(含程序)

要想处理地震数据,首先需要读取到地震数据的内容。这节课将分别为大家讲解针对二维和三维地震数据的读取方法。

01 二维地震数据读取

首先,给大家讲解一下选取的二维地震数据概况。

我们在wiki.seg.org找了一个2维数据,是1994年的加拿大逆掩岩综合数据集。

地震参数包括:

l 炮数量:277个。

l 每次放炮的记录道数: 480道。

l 几何体:拆分展开。

l 群距:15m。

l 放炮间隔:90m。

l 偏移量:-3600 m至3600 m(除滚入和滚出之外的所有放炮)。

l 第一炮点和第一组位置:1。

l 速度模型的第一道轨迹也位于:1。

概况图是这样的:

主要读取数据的代码如下:

读取地震数据的步骤包括:

一是打开指定路径的地震数据;

二是加载到内存(一般地震数据比较大,加载到内存处理效率更高);

三是把地震数据按照地震道为单位逐个读取到二维数组中去。ignore_geometry是为了忽略本库的默认格式,防止出现意外错误。

程序可以自动识别二维地震数据的地震道和采样点,形成了2000×123600的二维数组。

读出来的数据是这样的:

02 三维地震数据读取

现在来讲解三维地震的读取。首先讲一下选用数据的情况。这次我们用的是1996年新西兰塔拉纳基盆地叠前数据。这个数据在很多专家的论文中都出现过。数据概貌是这样的:

要读取三维数据,难度瞬间上升了一个数量级:不仅读取数据的步骤增多,所需的计算资源也要求较高。

首先,我们要确定数据体的尺寸。这里程序没有办法自动识别地震体的三维尺寸,要靠我们人工来获取。

对于工程项目,我们一般都可以拿到数据资料的inline,xline和time,这就是数据体的三维尺寸。

但是很多时候我们拿到的数据体资料不完整,没有人告诉我们三维的尺寸。这个时候怎么办呢?我们可以借助程序来读取地震头的信息,比如编写这样的程序:

通过程序我们读取到了很多地震信息:

在这么多信息中,其实我们主要关注inline和xline信息,见红框的部分。然后我们就可以计算出inline和xline的二维尺寸:

最后我们可以校验一下计算结果是否正确,并最终形成我们的三维数组文件。这里第三维信息程序可以自动识别出来,用-1表示就可以。

三维数据体就是这样的:

一般来说,三维数据体的数据量比较大,读取到二维数组的速度比较慢,要耐心等待。要注意的是不要频繁操作,否则容易让电脑崩溃。

以上介绍的是在理想情况下可以读取到地震道头信息。但是有时候数据体质量较差,地震道头信息也不完整,没有inline和xline信息,这时候还可以尝试用其他软件直接读取地震数据的三维尺寸,比如用petrel。

我们可以在petrel中新建seismic survey,加载三维地震体。然后在数据属性窗口的统计信息中就能轻松找到inline和xline信息了。

今天的课程就到这里。这节课给大家讲解了怎样轻松读取二维和三维地震数据。详细程序可以联系我获取,欢迎关注我交流,再见。

扩展阅读:如何从0开启地震深度学习科研之路

你可能感兴趣的:(怎样轻松读取二维和三维地震数据?(含程序))