一种适于任何SEG-Y地震数据的I/O方法技术

技术编号:12850311 阅读:124 留言:0更新日期:2016-02-11 15:22
本发明专利技术提供了一种适于任何SEG-Y地震数据的I/O方法,属于地震勘探方法技术领域。本方法包括:第一步,读取地震数据二进制文件头和道头信息获得关键信息;第二步,建立新文件,然后将第一步中读取到的关键信息以及原始SEG-Y文件存储的路径写到新文件的数据结构体中;如果以后用到地震数据的关键信息,直接读取新文件即可;第三步,读取地震道数据,得到格式转换后的数据;第四步,输出地震数据。

【技术实现步骤摘要】

本专利技术属于地震勘探方法
,具体涉及一种适于任何SEG-Y地震数据的1/ 〇方法,不仅可以供科研生产者学习使用,也可以运用于处理、解释软件系统中,甚至也可以 适于煤田、固体矿产等工程地质勘探领域软件中。
技术介绍
SEG-Y地震数据的I/O方法是一种业已成熟的技术。当格式不同的地震数据I/O 时,一般会运用解析和转换方法。但是在应用中它通常只是两种类型之间的数据格式进行 转换。然而目前处理、解释商业软件都有自己内部的地震数据格式,如:PARADIGM、OMEGA等 处理软件都有各自内部使用的数据格式。国内大部分自主软件也都有内部使用的地震数据 格式。这些软件都是通过输入程序先把外界的SEG-Y数据转换成内部格式数据之后再做其 它工作,处理完后,再通过输出程序把内部格式数据输出成SEG-Y数据,以便日后使用。这 样在科研生产过程中,就经常面临地震数据格式之间的转换。当数据量比较大的时候,尤其 是海量数据,转换起来非常耗时,浪费了大量的人力物力,降低了工作效率。
技术实现思路
本专利技术的目的在于解决上述现有技术中存在的难题,提供一种适于任何SEG-Y地 震数据的I/O方法,提高系统数据管理方面的效率,特别是对海量数据的处理,避免多次 进行数据格式转换。地震数据转换后,采用动态存储数据的方法,减少存储空间的占用,在 转换过程中,运用多种优化的程序编写算法,提高数据计算转换效率。 本专利技术是通过以下技术方案实现的: -种适于任何SEG-Y地震数据的I/O方法,包括: 第一步,读取地震数据二进制文件头和道头信息获得关键信息; 第二步,建立新文件,然后将第一步中读取到的关键信息以及原始SEG-Y文件存 储的路径写到新文件的数据结构体中,结构体内容根据实际情况选择,主要包括原始地震 数据类型和地震数据的关键信息等字段;如果以后用到地震数据的关键信息,直接读取新 文件即可; 第三步,读取地震道数据,得到格式转换后的数据; 第四步,输出地震数据。 所述第一步中的关键信息包括: 从地震数据二进制文件头读取到的SEG-Y文件的数据格式、采样点数、采样间隔, 测量单位,以及从地震数据道头信息读取到的记录号,cdp号,线号,偏移距,炮点坐标,检波 点坐标,检波点高程,炮点高程; 所述第三步包括: 判断运行程序的机器字节序:若是大端法,则其低地址端存放的是0x12,若是小 端法,则其低地址端存放的是0x34 ; 其次是样点数据值格式转换:将新文件中记录的原始地震数据格式转换成机器数 据格式; 定义全局动态数组,然后把格式转换后的每一道地震数据读出,并将所有地震数 据保存在全局动态数组中,完成整个地震数据读取。 所述样点数据值格式转换包括以下五种: 第一种UNIX的IEEE格式转换:原始数据是4个字节,小端法字节序,进行高低字 节逐一交换; 第二种是UNIX的IBM格式转换:分为两步,首先进行高低字节交换,然后把IBM格 式转换为IEEE格式; 第三种是PC机的IBM格式转换:把IBM格式转化为IEEE格式; 第四种是长整型格式转化:字节高低调序; 第五种是整型转换:字节高低调序。 所述第四步是这样实现的: 如果在全局动态数组生命周期内,则直接输出数据,如果不在全局动态数组生命 周期内,则输出独立的模块(独立的模块是指直接把原始地震数据输出,不存储在动态数 组中); 若输出是独立的模块,则根据新文件中保存的地震数据格式,循环读取每一道地 震数据,直接转换成原始地震数据格式,输出地震数据。 与现有技术相比,本专利技术的有益效果是:采取综合各种地震数据格式转化方法的 优点,并且创造性的把原始地震数据格式保存在新文件中,在地震数据I/O中,不需多次进 行数据转换。并且灵活运用c语言编程技巧,提高程序运行效率。把该方法集成在自主软 件中,结果表明,地震数据I/O正确。【附图说明】 图1本方法的步骤框图 图2实施例中的地震道数据图。【具体实施方式】 下面结合附图对本专利技术作进一步详细描述: SEG-Y文件一般包括三部分,第一部分是3200字节的EB⑶IC文件头,第二部分是 400字节的二进制文件头,用来存储SEG-Y文件的一些关键信息。第三部分是实际的地震 道,每条地震道包含240字节的道头信息和地震道数据。道头信息中一般保存该地震道对 应的线号、道号、采样点数、大地坐标等信息。地震数据格式共有6种类型。分别是pc机的 IEEE浮点型、Unix的IEEE浮点型、Unix的IBM浮点型、PC机的IBM浮点型,整型和长整型。 如图1所示,针对C语言编程,I/O方法步骤如下: 1)、跳过地震数据EB⑶IC文件头,读取地震数据二进制文件头,得到SEG-Y文件的 数据格式、采样点数、采样间隔,测量单位,然后读取地震数据道头信息。得到对应地震道常 用的属性值。它包括记录号,cdp号,线号,偏移距,炮点坐标,检波点坐标,检波点高程,炮 点高程。把从地震数据二进制文件头和道头读到的信息,作为常用的关键信息。 2)、建立一个新文件。用struct语句定义新文件结构体。把第一步中原始SEG-Y 文件的关键信息读取出来,包括原始SEG-Y文件存储的路径和地震数据格式,这些信息用 fwrite函数写到新文件数据结构体中。如果以后用到地震数据的关键信息,直接读取新文 件,不用读原始地震数据。 3)、读取地震道数据。 首先判断运行程序的机器字节序。有两种:大端法和小端法。一般机器字节序都 是采用大端法。算法!Unsigned short数据,占2个字节,给它赋值0x1234,若是大端法, 则其低地址端应该放的是0x12,若采用小端法,则其低地址端存放的是0x34。 其次是样点数据值格式转换。由于地震数据格式共有6种类型,一般机器格式是 PC机IEEE格式。根据新文件记录的原始地震数据格式转换成机器数据格式。程序中用 switch语句分成5种情况。 第一种UNIX的IEEE格式转化。这种原始数据是4个字节,小端法字节序。要进 行高低字节逐一交换。旧有的编程方法是采用c语言移位符进行运算。现在利用IAR编译 器。在程序中引用头当前第1页1 2 本文档来自技高网...

【技术保护点】
一种适于任何SEG‑Y地震数据的I/O方法,其特征在于:所述方法包括:第一步,读取地震数据二进制文件头和道头信息获得关键信息;第二步,建立新文件,然后将第一步中读取到的关键信息以及原始SEG‑Y文件存储的路径写到新文件的数据结构体中;如果以后用到地震数据的关键信息,直接读取新文件即可;第三步,读取地震道数据,得到格式转换后的数据;第四步,输出地震数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘旭跃周巍孔祥宁
申请(专利权)人:中国石油化工股份有限公司中国石油化工股份有限公司石油物探技术研究院
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1