APP下载

SEG-Y格式自动转化软件的研究与实现

2016-03-25刘旭跃孔祥宁

物探化探计算技术 2016年1期
关键词:数据格式

刘旭跃, 周 巍, 孔祥宁, 黄 骏

(中国石化 石油物探技术研究院,南京 211103)



SEG-Y格式自动转化软件的研究与实现

刘旭跃, 周巍, 孔祥宁, 黄骏

(中国石化 石油物探技术研究院,南京 211103)

摘要:为避免不同体系架构下的计算机系统之间地震数据多次手动转换数据格式,缩短地震数据处理时间,设计开发了SEGY格式自动转化软件。在分析SEG-Y文件格式特征的基础上,通过建立中间文件,利用format字段存储原始地震数据格式,经过数据字节交换和格式转化,自动把SEG-Y格式数据转换为PC格式数据。将与成像计算相关的数据下载到中间文件中,方便快捷浏览和检索数据,实现了地震数据读取、浏览和输出的功能。经实际应用表明,该软件转化地震数据效果良好。

关键词:SEGY; 数据格式; 自动转化

0引言

在地质勘探与开发研究工作中,地震数据是最重要的研究对象。随着地震勘探技术的发展,从野外采集的地震数据通过采集仪器直接转换成按道排列的SEGY数据格式。地震资料采集器使用的都是Unix工作站,不能在PC机上直接观察地震数据文件的道头、振幅数据等信息。这两种机器存储的数据格式有很大的区别,必须把工作站格式的数据转化成PC格式才能使用。

目前基于SEG-Y格式的地震数据处理解释商业软件层次不穷(CGG、landmark、Paradigm、Petrel等),为方便管理地震数据,大部分商业软件和国内自主软件都设计自己独有的地震数据格式,基于知识产权、商业协议等各个方面的原因,作为一般的用户很难了解它们的内部结构[1]。加载数据时首先应将外界的SEGY数据转换成内部格式数据后再使用;输出时又必需将内部格式转换成SEGY数据,这样才能和别的系统兼容,为以后的工作准备。这些软件虽然提供了格式转化的功能,但通常采用的是手动“一对一”方式进行两种类型之间的数据格式转换。在科研生产中,如果遇到多种格式的地震数据,每种数据都要分别选择不同的功能按钮进行格式转换,当数据量比较大的时候,尤其是海量数据,转换起来非常耗时,浪费了大量的人力物力,降低了工作效率。

这里介绍了格式自动转化软件的主要功能和系统结构,进行SEG-Y地震数据格式自动转化的研究与实现,避免了手动多次进行数据格式转化。采用motif和c语言编程,通过建立中间文件,选择保存原始地震数据的重要数据,加快数据检索。开发了道头信息、道信息浏览的功能,方便用户掌握数据情况,利于开展研究工作。

1研究方案

1.1主要功能

SEG-Y格式自动转化软件的主要功能包括读取数据、浏览数据、输出数据三个部分。

1.1.1读取数据

SEG-Y标准规定,所有的二进制值都采用大端字节排序方式,即采用的是从高字节到低字节的寻址方式(大端法),而PC机采用的是从低字节到高字节的寻址方式(小端法)。鉴于工作站和PC机的数据编码方式不同,所以首先要判断运行程序的机器字节序,如果是小端法,需要把高低字节互换。

在地震数据使用时,经常用到的关键数据比较固定。由于原始地震数据量相对较大,为节省读取时间,采用创建中间文件的方式,把原始地震数据里关键字段信息保存在中间文件中,这样就不必每次读取原始地震数据,通过直接读取中间文件的内容获得数据。中间文件和segy文件类似,也由文件头和文件体组成。加载原始数据时,为避免多次转化数据格式,在中间文件的头文件中增加format字段,用来保存原始地震数据的格式。SEG-Y格式规定,在400 Byte二进制卷头的3 225 Byte~3 226 Byte处,存储的是数据格式码。通常1代表工作站格式的IBM32位浮点, 2代表4 Byte定点等。但是这个数据是由处理员提供的,可能会出现错误。工作中,地震数据格式还会有PC格式的IBM浮点型,PC格式的IEEE浮点型。在创建中间文件时,我们在软件界面上需要用户重新选择原始地震数据类型,然后把选择的值赋给format,地震道道头的格式和文件头是一样的,只需转化高低位即可。地震道数据需要根据format值不同,采用不同的转化方法,最后都转化为PC格式的IEEE格式,读取的地震道数据保存在全局动态数组中。

读取数据流程图如图1所示。

图1 读取数据流程Fig.1 Reading data process

1.1.2浏览数据

用户可以浏览文件头信息,列出每道的样点数、采样率、起始时间或深度、总炮数等文件头所有数据。选取前5个地震道数据,列出地震道头信息,通过地震道顺序号,可以检测出地震数据前5道是否按道序排列。由于线号和道号等信息在文件中的位置不固定,所以可以根据数据来判断线号等信息的位置。中间文件的文件头数据列出采集数据的总体情况(如采样点数、起始cdp、终止cdp等),中间文件的文件体列出的是具体每道数据的检波点位置、炮点位置、检波点高程、炮点高程等。

1.1.3输出数据

当有些程序需要地震数据时,需输出地震数据。由于在中间文件中保存了地震数据格式,这时自动从中间文件中找到format值,然后根据format值进行相应的数据格式转化。这些操作封装在代码中,是个黑匣子,用户不用操作,所有的读取、转化和输出全部自动执行,地震数据以数组的形式传递出去。

1.2系统结构

系统开发采用数据访问层、业务逻辑层和表示层的“高内聚、低耦合”开发方式。数据访问层和业务逻辑层都写在库函数中,数据访问层主要是地震数据文件I/O类,包括读取函数,输出函数,数据接口函数等;业务逻辑层是数据转化类,主要是格式转化函数;表示层是界面模板类,主要是对话框显示。把对话框相同的基本功能用类模板封装好,通过接口函数调用对话框类,系统结构图如图2所示。

1.3SEG-Y文件格式

图2 系统结构图Fig.2 The system structure diagram

地震数据一般以地震道为单位进行组织,采用SEG-Y文件格式存储(SEG-Y格式是由SEG提出的标准磁带数据格式之一[2])。标准SEG-Y文件一般包括三部分,①3 200 Byte 的EBCDIC文件头,由40个卡组成,用来保存一些对地震数据体进行描述的信息;②400 Byte的二进制文件头用来存储描述SEG-Y文件的一些关键信息,包括SEG-Y文件的数据格式、采样点数、采样间隔、测量单位等一些信息,这些信息一般存储在二进制文件头的固定位置上;③实际的地震道,每条地震道都包含240 Byte的道头信息和地震道数据。道头数据中一般保存该地震道对应的线号、道号、采样点数、大地坐标等信息,但一些关键的参数位置(如线号、道号)在道头中的位置并不固定。地震道数据是对地震信号的波形按一定时间间隔Δt进行取样,再将这一系列的离散振幅值以某种方式记录下来。标准SEG-Y文件结构如图3所示。

图3 标准SEG-Y文件结构图Fig.3 Standard SEG-Y file structure diagram

每个地震道记录块分布情况如图4所示。

图4 每道记录块结构Fig.4 Each short record block structure

SEGY文件存储方式有工作站格式和微机(PC)格式。常见的地震数据格式包括工作站的4 Byte IBM浮点型、 工作站的4 Byte IEEE浮点型、工作站的4 Byte定点,工作站的2 Byte定点,PC的4 Byte IBM浮点型和PC的4 Byte IEEE浮点型。这里以常见地震数据格式为例说明,一个地震工区同一次处理的地震数据格式是唯一的。

2关键技术

原始的地震数据不能直接在PC机上应用,一般先将SEGY数据字节交换(也就是将数据内容正确提取),数据交换后,再将地震数据格式转换为PC格式,以便后期的处理和解释。本系统在字节交换和格式转化方法上做了些改进。

2.1字节交换

标准SEG-Y 文件是工作站格式的,所有二进制值是大端字节排序方式。数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中。PC机采用的是小端模式,数据存放在内存中的位置刚好想反。高低址部分权值高,低地址部分权值低,和逻辑方法一致。以十六进制的0x02030405, 在计算机中需要用4 Byte来保存它, ‘02’、‘ 03’、‘ 04’、‘05’各占一个字节。按照人类的计数习惯,最左边的‘02’,称之为最高有效位(MSB,Most Significant Byte);最右边的‘05’称之为最低有效位(LSB, Least Significant Byte);在计算机中需要用4个字节来保存它,其中‘02’、‘ 03’、‘ 04’、 ‘05’各占一个字节。大端序的计算机保存这个数值时,按照从低地址到高地址的顺序分别保存MSB到LSB四个字节,0x02030405的存储情况如图5所示。

MSB (->地址增长方向) LSB 02030405

图5 大端序存储情况图

图6小端序存储情况图

Fig.6The little endian storage situation map

小端序计算机的存储如图6所示。必须把数据进行高低位逐一交换,才能在PC机上使用SEGY地震数据,一般采用C语言的字节移位符的方法可以实现。假设原始位序列为data=01011001,data=(data<<4)|(data>>4),之后序列为1 0010 101;data=((data<<2)&0xcc)|((data>>2)&0x33), 之后序列为01100101。

2.2格式转化

SEG-Y地震数据中,常见的格式有:4 Byte的IBM浮点型、4 Byte的IEEE浮点、4 Byte二进制补码整型、2 Byte二进制补码整型等。工作站格式的数据,通过字节交换后,转化为小端式,PC机上浮点数的格式是IEEE浮点型,IBM格式的数据需要转化为IEEE浮点型才能在PC机上使用。

IBM格式数据分为三部分:①符号位(sign);②指数部分(exp);③尾数部分(mant)。4 Byte的IBM格式数据有32 bit,符号位占1 bit,指数部分占7 bit、尾数部分占24 bit[6-7](图7)。

signexpmant3130……2423……0

图7IBM格式数据字节分布

Fig.7The IBM format data byte distribution

IBM浮点数格式的数值=

(-1)sign×(mant/224) ×16(exp-64)

(1)

IEEE格式数据也分为三部分:符号位(sign)、指数部分(exp)和尾数部分(mant)。共有32 bit,符号位占1bit,指数部分占8bit、尾数部分占23bit[4,5](图8)。

signexpmant3130……2322……0

图8IEEE格式数据字节分布

Fig.8The IEEE format data byte distribution

IEEE浮点数格式的数值=

(-1)sign×(mant/223) ×16(exp-127)

(2)

当指数部分为全“0”且尾数mant也为全“0”时,表示的数值为“0”,结合符号位s为“0”或“1”,有正零和负零之分。当指数部分exp为全“1”且尾数也为全“0”时,表示的数值为无穷大(∞),结合符号位sign为“0”或“1”,有+∞和-∞之分。在浮点数数值表示中,要除去指数部分用全“0”和全“1”表示零和无穷大的特殊情况,因此IBM的指数部分exp的取值范围变为1~126,指数的偏移量不选65而选64,真正的指数部分范围为-63~+64,数值范围为(1/16) ×16-64~(1-1/223) ×1662。IEEE指数部分exp的取值范围变为1~254,指数的偏移量不选128而选127,真正的指数部分为-126~+127,数值范围为(1+1/223) ×2-127~(2-1/222) ×2127。

IBM浮点数格式转换为IEEE浮点数格式的转换方法如下[3]:

expIEEE=4expIBM-130

(3)

mantIEEE=2mantIBM-1

(4)

式中,expIBM、mantIBM分别表示4 Byte的IBM浮点数的指数和尾数部分;expIEEE、mantIEEE分别表示4 Byte的IEEE浮点数的指数和尾数部分。

其中1/16<=mantIBM<=1-1/223,若mantIBM<1/2,mantIEEE将溢出,必须调整。因为mantIBM>=1/16, mantIBM中为1的最高位是k:

expIEEE=(4expIBM-130)-(k-1)

(5)

mantIEEE=2kmantIBM-1

(6)

由于0<= expIBM<=126,-130<=4expIBM-130<=374。IBM浮点数以16为基底,浮点数的大小范围(1/16)×16-64<=T<=(1-1/223)×1662大于IEEE浮点数。故只有当0<=4expIBM-130<=254,即32<= expIBM<=96时,IBM浮点数才能正确转化为IEEE浮点数。而当expIBM<32时,转换为IEEE格式浮点数结果为0;当expIBM>96时,转化为IBM格式浮点数结果是无穷大。当mantIBM前3位为0时,expIBM=197,其IBM浮点数一样可以转化为IEEE浮点数。

3系统实现与应用

基于上述研究内容,设计并开发了SEG-Y格式自动转化软件。其中重要的两部分是数据加载和数据检索,数据加载器用于加载地震数据到本系统中,检查源数据的道头信息,将与成像计算有关的参数下载到中间文件中。数据检索通过中间文件的format字段数据得知地震数据类型,获取数据提供成像计算使用,可根据给定区域获取相关数据,检查感兴趣的数据项等。该软件应用在icluster地震成像软件中管理数据效果良好,提高了数据处理效率。

中间文件存放记录的顺序和数目,可能不同与源数据文件,这是根据不同数据子集的要求,重新编排(排序或转置),中间文件与源数据文件之间的映射可以是规则的,或是不规则的,如果它的每一个网格单元都存在一个数据记录的位置,则是规则的。反之,则是不规则的,即有些网格单元中没有与之相关联数据记录的位置,设置为一空指针。在成像计算时,均通过地震数据的中间文件来获取地震道数据和道头信息。

中间文件的数据由文件头和文件体组成,文件头结构如表1所示,文件体结构如表2所示。

地震数据管理中间文件参数界面见图9。

表1 中间文件的文件头结构

表2 中间文件的文件体结构

图9 中间文件参数界面图Fig.9 The intermediate file parameter interface

3.1测试结果

选用哥伦比亚工区实际资料进行测试。地震数据格式是UNIX_IBM。从中取原始数据量36G, 674个CDP, 525条line,3673673个道。

硬件配置:HP集群,64位,在单节点上测试,每个节点有12个CPU(CPU型号是Intel(R) Xeon(R) CPU X5650 @ 2.67 GHz),每个CPU有6个核,内存大小是49 453 068 kB。

采用文件方式管理数据,数据存储量取决于硬件硬盘大小。从加载数据到转化完毕,历时约12 s。加载后,数据浏览如图10所示。转化前和转化后的地震道集对比显示图如图11所示。

图10 浏览地震道数据Fig.10 Browse the seismic data

图11 转化前和转化后地震道集对比图Fig.11 Before transforming and after the conversion of seismic gathers the comparison chart(a)转化前的地震道集;(b)转化后的地震道集

4结论

通过建立中间文件,保存原始地震数据格式,避免使用地震数据时手动转化数据格式,减小用户操作难度。合理将地震数据道头中和成像计算有关的数据下载到中间文件,检索数据时,不用从原始地震数据读取,提高了数据检索的效率。软件界面设计人性化,代码耦合度高。将转化数据格式的功能封装在代码中,自动进行格式转化,方便科研生产人员直接把原始地震数据在本地计算机上使用,为后续的去噪、校正、叠加、偏移等处理解释工作,提供了数据基础。

参考文献:

[1]詹泽东,胥德平,吴海洋,等.深入解析SEGY格式地震数据转化的精度问题[J].物探与化探,2011,35(6):851-854.

ZHAN Z D ,XU D P ,WU H Y ,et al.Deep analysis about accuracy problem for segy format conversion of seismic data[J].Geophysical & Geochemical exploration,2011,35(6):851-854.(In Chinese)

[2]SEG,Recommended Standards for Digital Tape Forams[OL].http://www.seg.org/.

[3]约翰P海斯.计算机结构和组织[M].上海:上海科技文献出版社,1981.

JOHN P HAYES. Computer architecture and organization[M].Shanghai: Shanghai science and Technology Literature Press,1981. (In Chinese)

[4]美国电气和电子工程师协会(IEEE).IEEE754-1985[S].1985.

American Institute of electrical and Electronics Engineers (IEEE).IEEE754-1985[S].1985. (In Chinese)

[5]美国电气和电子工程师协会(IEEE).IEEE754-2008[S].2008.

American Institute of electrical and Electronics Engineers (IEEE).IEEE754-2008[S].2008. (In Chinese)

[6]IBM System/360 Principles of Operation[S].IBM Publication,1967.

[7]IBM System/370 Principles of Operation[S].IBM Publication,1975.

Research and implementation of SEGY seismic data format conversion automation

LIU Xu-yue, ZHOU wei, KONG Xiang-ning, HUANG jun

(Sinopec Geophysical Research Institute,Nanjing 211103,China)

Abstract:In order to avoid between computer systems with different architecture of the seismic data more manual data format conversion and shorten the time of seismic data processing, it is necessary to design and development of automatic SEGY format conversion software. Based on analyzing the characteristics of SEG-Y file format, the SEG-Y format data can be converted to PC format data through the establishment of the intermediate file and using the format field to store the original seismic data format as well as after data byte swapping and format conversion. The imaging and calculation of relevant data is downloaded to the intermediate file, convenient browsing and retrieval of data. Implementation of the seismic data read, browse and output function. The practical application shows that the software transformed seismic data, good results.

Key words:SEGY; data formats; automatic conversion

中图分类号:P 631.4

文献标志码:A

DOI:10.3969/j.issn.1001-1749.2016.01.19

文章编号:1001-1749(2016)01-0125-06

作者简介:刘旭跃(1985-),女,硕士,主要从事计算机应用工作,E-mail:814979185@qq.com。

收稿日期:2015-01-21改回日期:2015-05-12

猜你喜欢

数据格式
乌鲁木齐国产一、二次雷达数据格式
基于RFID的电能计量设备电子封印管理系统的设计与实现
ASTERIX CAT048数据格式分析
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
一种融合多业务的信息化系统框架研究
ArcGIS多数据格式转换及应用
基于ArcGIS的规划数据格式转换研究