- 相关推荐
通过计算机编程快速读取地震数据的方法论文
油气资源的开发在国家发展中占有重要的地位,为了进一步的促进油田的生产稳定,往往需要在开采前进行地质情况探测。地震采集则是一种深入挖掘油田开采潜力的勘探手段,在地震勘探的过程中,往往会产生大量的采集数据,对于这些数据的存数方式十分重要的。本文主要对地震数据对存储特点、存储数据对格式简要说明,提出了一种利用计算机编程快速读取地震数据的方法。
1地震数据的存储特点
地震数据的存储于我们一般所说的数据存储不同,一方面,地震采集过程中,会产生十分庞大的采集数据,在一个区块中采集数据就会产生上百个TB;另一方面,地震采集数据与油田开发有着极为紧密的联系,因此其对于数据精度的要求高,并且为了区分与其他数据,地震数据往往有行业独特的数据格式和标准。
1.1地震数据的来源
地震数据主要来源于地震勘探过程,通常情况下,地震勘探主要包含了三个过程:野外采集过程、室内地震资料处理过程以及地震资料解释三个阶段。采集得到的是最为原始的地震数据,而资料处理过程中得到的是经过处理的地震数据,地震资料解释阶段往往数据较少。
野外采集过程中,勘探工作者往往会根据勘探计划,将地震仪器放置在野外进行数据采集勘探,这一时期产生的勘探数据是多种多样的,数量极为庞大,这些采集数据往往被存储在地震磁带之中,主要的地震数据包括有高程、坐标等。
在资料处理过程中,相关工作人员往往会根据计算机对原始的采集数据进行科学计算,继而产生一些结果性的地震数据。
1.2地震数据的类型
在地震勘探的三个过程中,各自会产生不同类型的地震数据。在野外采集过程中,通常采用微测井方法进行地表调查,所产生的地震数据包含有:原始数据盘、低降速带解释成果、图形文件、施工设计、高程、坐标等不同的类型。在地震资料处理过程中,通常会根据不同的处理流程产生不同类型的数据类型,在地震资料的皆是过程中,解释人员根据地质任务以及设计要求进行地震数据解释,所产生的成果数据往往与上一个流程相差无几。
1.2地震数据的格式
地震数据的格式往往以特定的记录方式记录在磁带上,地震数据的格式最初包括有十几种的格式,但随着计算机的迅速发展,现阶段用于地震数据存储的格式选择往往只有SEG-D格式和SEG-Y格式两种。通常情况下,SEG-D格式往往应用在野外数据采集过程,作为原始数据的格式,而SEG-Y格式则是地震资料处理过程中的特定存储格式,作为一种数据交换的标准。
SEG-Y格式分为四个部分:第一部分是以3200个字节组成的数据块,主要是有关磁带记录的辅助信息,第二部分是二进制文件头400个字节组成的数据块,记录有采样间隔、记录长度及格式码等重要参数,第三部分是地震道数据,在磁带上每一道表现为一个记录,第四部分是结束标记EOF或EOT。SEG-Y格式的道记录分为两部分,第一部分是地震道的道头字,记录了本道的有关信息、第二部分是地震道的样点值。
3通过计算机编程快速读取地震数据的方法
SEG-Y文件通常由文件头文件和数据体两个部分组成,数据体是访问和读取的主体,其中包含了大量的地震数据,而头文件是对文件的一种参数说明,给文件的读取提供必要的信息。文件头总长度分为字符型文件头和二进制文件头,数据体则是由多个数据道组成。
3.1读取文件头
字符型文件头的数据通常需要将其中的EBCDIC代码转换成ASCII代码后就能够正确显示,因此常用的读取方式就是建立两种代码的关系对应码。而对于二进制文件头的读取则相对的复杂一些,这是因为二进制文件头是由二进制数据构成,包括16位和32位两种数据形式,在读取的过程中要注意其存储格式,工作站与计算机对文件头的存储迅速存在相反的情况。
对于二进制文件头的读取流程如下:读取400个字节的文件信息进入内存一一按照地址,从低到高的顺序存放一一数据的存数位数一一转换字节数。例如读取一个16位的数据,读取第一个字节放入一个16位临时整型数中,将整型数据左移8位,然后,再读入下一字节,将其放入另一个16位临时整型数中,最后,将临时16位数按位或,得到16位微机格式的地震数据。
3.2读取地震数据
通常情况下,数据体中的数据道都是以工作站的存储方式进行数据存储,与微机中的存储格式存在差异,因此,需要将导数据进行高地位转换。SEG-Y道数据的常用记录形式为IBM浮点型数据和IEEE浮点型两种。以下简要介绍IBM浮点型数据(32位)的存储格式和读取方法。
IBM浮点型数据分为三个部分:符号位占1位,指数部分占7位,尾数部分占24位。其读取方法为:顺序读入道数据一一4字节数据一一数据转换(同文件头的数据转换方式)一一32位数右移31,得到符号位,读取出来保存。32位数与0x7f000000按位与,获得浮点数指数部分,保存;将32位数与0x00ffiff按位与,获得浮点数位数部分,保存。其中格式转换可以通过类conversion实现,conversion的定义如下:
class conversion
{shortchar2int(char*array);//将工作站上的整型数转换为微机格式
voidint2shortdat,char*array);//
将微机上的整型数转换为工作站格式
floatIBM2PC(char*array);//将IBM浮点九转换为微机格式浮点数
voidPC2IBM(floatdat,char*array);//
将微机上的浮点数转换为IBM浮点数}
【通过计算机编程快速读取地震数据的方法论文】相关文章:
简单有效快速通过研究生论文查重问题的方法08-04
计算机数据库论文09-11
计算机数据库论文07-21
计算机数据库设计的论文09-24
JDBC数据库编程的研究10-18
计算机数据库论文15篇【经典】07-20
预防通过代理发表论文被骗的2个小方法08-20
基于Mschart的数据库图表应用编程09-19
计算机毕业论文--数据挖掘技术研究09-10