当前位置:文档之家› 数字地震仪(或雷达)的文件格式及其转换方法

数字地震仪(或雷达)的文件格式及其转换方法

地震地磁观测与研究第20卷 第3期SEISMOLO GICAL AND GEOMA GN ETIC Vol20 No3 1999年6月OBSERVA TION AND RESEARCH J un 1999数字地震仪(或雷达)的文件格式及其转换方法3胡家富 段永康(中国昆明650031云南大学地球科学系)摘要 详细介绍了SEG(The S ociety of Exloration G eophysicists)新规定的SEG22标准及其文件结构,这一标准不但适用于数字地震仪,而且也适用于地质雷达等数字化记录设备。

同时给出了一个在IBM2PC环境下读取SEG22数据文件的C语言示范程序,根据这个示范程序,用户可以很方便地将SEG22数据文件转换成适用于特定应用软件的数据格式。

关键词 SEG22标准;数字地震仪概述随着电子技术的飞速发展以及个人微机的普及,各种新仪器进入一个革命性的时代,数字化的地震仪、地质雷达的出现结束了模拟记录的历史。

但是,各厂家生产的仪器对数据记录都有一套特殊的存贮方式和相应的处理软件,用户只有在购买了仪器的同时,买了相应软件才能正常地使用其数据记录。

由于缺乏标准的数据格式,用户处理能力受到了阻碍。

在此之前,SEG曾推荐过诸如SEG2D,SEG2Y等格式(Bary,1975),但经过多年的实践证明它还不够完善,包含的信息量太少,结构过于单一。

为此,SEG在1987年10月的工程地球物理会议上规定了一种统一的数据文件格式,即SEG22标准(Pullan, 1991)。

规定从1987年10月以后出厂的数字化地震仪器及有关设备,无论以何种方式采集的数据,都应以此标准存贮数据。

即使不用此标准存贮数据,但必须提供相应的转换软件,可以把数据转换成这种存贮格式。

国内不少科研单位花巨资从国外引进数字地震仪或雷达,但由于经费较为紧张,没有购得相应的处理软件,因数据存贮格式不同,原有的软件又用不上。

为了解决这一问题,我们查阅了SEG22标准,并结合电力部昆明勘测设计院物探队引进的Smart Seis2s12型12通道高频数字地震仪,剖析其存贮结构,同时编写出在IBM2PC环境下的格式转换程序,用户可以根据自己的软件特点随意进行转换。

3云南省自然科学基金资助项目本文收到日期:19982092171 SEG 22标准111 文件结构在SEG 22标准出现以前,SEG 还颁布过一系列的标准,但经过实践的检验,还存在一些不尽完善的地方。

SEG 22标准克服了以往的缺点,形成了一个统一的标准,它不仅可以存放地震仪或地质雷达采集的原始数据,也可以存贮经过处理后的数据。

它不局限于DOS 支持的IBM 系列微机,还适用于OS/2,Macintoshe 系列机和UN IX 操作系统的工作站。

这个标准采用了自由格式存贮数据,不依赖于任何一种编程语言,文件的结构如图1所示。

图1 SEG 22文件结构从图1中可看出,一个文件的开头部分是文件描述块(file descriptor block ),紧跟其后的是第1通道描述块(trace descriptor block 1),其后是第1通道数据块(datablock 1),然后是第2通道描述块和第2通道数据块,依此类推。

它由1个文件描述块和1个或多个通道的描述块和数据块组成。

112 文件描述块文件描述块位于文件的起始部分,包含了文件格式,版本号,该文件的采集方式,所用仪器型号,处理方式,记录道数以及每一道数据在文件中的起始位置等信息。

文件描述块由3个基本部分组成:①32个字节分别存放文件标识,版本号,道指针子块的大小,该文件的采样道数,字符串和行结束符等信息;②道指针子块,它存贮了一系列指向每一道描述块的起始地址的指针;③用以说明该文件的共同信息以及处理方式等的字符串。

文件描述块中的第0,1字节中存了一个十六进制正数3a55,它表明该文件存贮的方式是低字节在前,高字节在后,这就是DOS 所支持的IBM 系列微机所采用的存贮方式。

如果该正数是553a ,则表明采用的是高字节在前,低字节在后的存贮方式,例如,UN IX 支持的68000系列机就采用这种方式。

该常数指明数据文件是DOS 还是UN IX 系统下生成的。

第2,3字节是一个整型状态描述量,指明所使用的SEG 标准的版本号,规定SEG 22标准的版本号是1。

第4,5字节是一个无符号的整型量,指明了道指针子块(Trace Point 2er Sub 2block )的大小。

第6,7字节是一个无符号的整型量,它指明仪器所使用的道数。

第8字节存放的是01h 或02h ,用以指明第9,10字节中存放的字符结束符的个数,如果第8字节中的值是01h ,则字符结束符存放于第9字节中,否则分别存放于第9,10字节中。

同理,第11,12,13字节分别存放行结束符的个数以及行结束符。

从第14~31字节是SEG 22保留的。

从第32字节开始是道指针子块,它存放的是一系列的道指针,每一个道指针均是一个占4字节的无符号长整型量,指针指向该道的道描述块的起始位置。

道指针子块所占的字节数由第4,5字节中的值来决定(或者由第6,7字节的中记录道数决定)。

道指针子块后面存放的是一系列的字符串,提供了该仪器的一些必要参数,以及采样地点、时间、方式等一些重要信息,例如,ACQUSTION 2DA TE 〈value 〉,PROCESSIN G 2TIM E 〈value 〉,COMPAN Y 〈name 〉,INSTRUM EN T 〈manufactuer name 〉〈model number 〉等。

SEG 只是规定了这些字符串取值范围(即SEG 关键字),但是并没有规定字符串的个733期 胡家富等:数字地震仪(或雷达)的文件格式及其转换方法83 地 震 地 磁 观 测 与 研 究 20卷数,因此,不同仪器产生的文件中包含的字符串个数都可能不同,这就给读取数据带来了一定的困难。

但是SEG明确规定了字符串的存贮格式:字符串前面存放了一个2字节的整型量,其值的大小就是该字符串所占的字节数(包括前面的2字节的整型量在内),字符串中包含了关键字和数字,它们之间用空格分隔,如果该整型量的值为0,则说明其后再没有字符可读。

字符串虽处理完了,但其后不一定紧跟着就是数据,SEG还留了一些字节作为将来扩充用,数据存贮的起始位置应由道描述块指针(在文件描述块里所定义的)和该道描述块的大小来决定。

113 道描述块和数据块在文件描述块之后是道描述块和相应的数据记录块,道描述块中记录了该道数据的个数、存贮方式等信息。

SEG规定每个数据文件中至少要有一个道描述块和与之相对应数据记录块。

在道描述块中,第0,1字节中存放的是一个无符号整型量,其值是4422h(十六进制),用以指明此为道描述块的开始。

第2,3字节是一个无符号的整型量,指明该道描述块的大小(单位是字节)。

第4,5,6,7字节中存放的是一个无符号长整型量,指明该道数据块的大小,单位是字节。

第8,9,10,11字节中也存放了一个无符号长整型量,其值的大小就是该道数据块里所包含的采样点数。

第12字节中存放了一个无符号的整型数,是该文件的数据格式代码,用来指明该道数据的存贮格式,其值与数据的存贮格式的关系如下。

第12字节的值 数据存贮格式01h16位整数02h32位整数03h20位浮点数(SEG2D标准)04h32位浮点数(IEEE标准)05h64位浮点数(IEEE标准)第13~31字节是保留的,也许SEG以后会用来存贮扩充的信息。

从第32字节开始,存贮了一系列的字符串,这些字符串中包含了波形增益,采样间隔,该道数据所通过的数字滤波器带宽,炮点序号,延迟等大量的文字信息和参数。

例如,AL IAS2FIL TER〈fre2 quency〉〈slop〉,DELA Y〈value〉,SAMPL E2IN TERVAL〈value〉,STAC K〈value〉,CDP2 NUMB ER〈value〉,CDP2TRACE〈value〉等。

这些信息是我们处理数据时所必需的,其存贮格式和处理方法与文件描述块里的一样。

紧跟其后便是该道的采样数据,处理方法在下面讨论。

2 数据存贮格式SEG22标准规定了数据可用16位整型、32位整型、20位浮点型、32位和64位浮点型存贮,具体是哪一种,由道描述块里第12字节的值来决定。

众所周之,用高级语言均可很方便地读取16位和32位整型数,以及32位和64位浮点数,用户无须了解其存储方式。

故这里重点介绍第三种格式,即20位浮点数的格式,这是一种常用的格式,它的特点是动态范围大,节省存贮空间。

但是,20位浮点数是用215个字节存贮一个采样点,而高级语言只能以字节为单位进行处理,这就给读取数据带来了一定的困难。

SEG22规定20位浮点数的存贮格式为:用10个字节来存储4个采样点,即每个采样点占215个字节,其中前2个字节用来存这4个数的阶码。

每个采样点由2个字节的整型量及其阶码组成,整型量的最高位是符号位,其值的范围是-32768~32767。

如图2所示,其存贮顺序依次为阶码,然后是第1,2,3,4个采样点,由于20位浮点型数据的这一特殊存贮方式,要求每次必须读取10个字节,进行处理后得到4个采样点的值。

为了正确得到每一个采样点的值,除了取得一个2字节的整型量外,还必须与其相应的阶码相结合。

图2中的前2个字节的分布如图3所示,从中可以看出低字节的前4个二进制位(例如,写成cccc )存储第1个采样点的阶码,低字节的后4位存贮的是第2个采样点的阶码,高字节的前4位存贮第3个采样点的阶码,高字节的后4位存贮第4个采样点的阶码。

基是2,故可以写成2cccc ,其中cccc 的取值范围是0~15。

图2 4个采样点的存贮结构图3 4个采样点的阶码存贮结构3 读取方法和示范程序前面详细介绍了SEG 22文件的结构,为了方便广大科技人员使用,这里给出了一个C 语言示范程序,为了压缩篇幅,仅给出关键的语句,并未对一些特殊情况作判断处理。

它适用于Microsoft C ,Turbo C 和Borland C 的编译环境。

假定程序里打开一个SEG 22的数据文件,文件指针为f1,并定义最大采样点数为4096,最大记录道数为163,下面是用以读取文件描述块的C 语句。

933期 胡家富等:数字地震仪(或雷达)的文件格式及其转换方法 至此,已经处理完文件描述块。

这里只读取了文件描述块里的字符串,但未作任何处理,每一字符串中的字符个数等于所占字节数减去2(一个整型量所占的字节),字符串的末尾包含1或2个结束符,用户可根据自己的需要提取有关的SEG 关键字和相应的常数。

接下去是用一个循环语句读取每一道描述块和数据块。

相关主题