用C语言读写SGY格式的地震数据文件_第1页
用C语言读写SGY格式的地震数据文件_第2页
用C语言读写SGY格式的地震数据文件_第3页
用C语言读写SGY格式的地震数据文件_第4页
用C语言读写SGY格式的地震数据文件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Author: Yangvvqcumt用C语言读写SGY格式的地震数据Yangwqcumt百度专用,转载需授权地震勘探野外采集的数据,以及经过资料处理获得的三维数据体,只要是放在计算机里,都是以二进制文件的形式存放的。这些文件的处理显示等工作,一般都可以用商业化的软件进行但是作为一 个从事地震勘探研究的技术人员,有时会有些想法,有某种灵感,但 是原有的软件又不允许你去做某种试验以验证你的想法这时候,自 编个小程序显然有必要,而且弄好后你的成就感会很强烈.1. SEGY格式地震数据文件地震数据,是以各种格式存放的.所谓格式,指的是地震数据以 及各种信息在文件内部的存放方式及顺序.常见的地震数据格

2、式,有segy格式.seg2格式.segd格式等. 同样的格式,还有微机版.工作站版及其它版本.本文仅是入门级材料,我们仅就微机版segy格式进行分析.Segy格式的地震数据文件,属于典型的流式文件,它的信息和 数据都是按字节顺序一个个地存放的,每个字节都有其特定的含义这种格式的文件,由文件头部的3600字节以及地震道组成。文件头前部的3200字节共分为40行,每行80个字符,但这些字符不是ascii码,是一种称为ebcdic的编码一般这部分都不去读,或者只能显示出来查看其中的内容.接下来是400字节的二进制部分.这里面有长整型数和短整型数,其具体含义参见附录一.每个地震道由道头240字节(参

3、见附录一)和地震数据组成.地 震数据的个数和类型(指它是浮点数整数还是什么)文件头中有定义. 此处我们假定所有的数据都是微机的四字节浮点数2.文件头部3200字节特殊编码部分的读取。该部分共分为40行,每行80个字符,但这些字符不是ascii码,是一 种称为ebcdic的编码.转换成ascii码可以采用查表的方法进行.一 般处理地震数据不用读这部分的内容.Z include"stdio. h";S include"stdlibh"rLLvoid mainOI ?-unsigned char E2A256=:0, 1, 2, 3, 156, 9t 134,

4、127,151,141,142, 11, 12, 13, 14, 15, 16, 17, 18, 19,157,133,: =8, 135, 24. 25, 146.143, 2& 29, 30, 31, 12& 129. 130, 131, 132, 10, 23.:27,136, 137, 138,139.140,5,6, 7, 144,145, 22, 147, 14& 149,150, 4.152,153,154,155,; 20, 21, 158, 26,32,160,161,162,163, 164, 165,166, 167,168,91,46,60,40

5、,43,33,:;3& 169, 170, 171,172,173,174,175,176, 177, 93, 36, 42, 41,59,91,45,sf*L:47, 17& 179. 180.181.182,183,184,185, 124. 44. 37, 95, 62,63,:186,187, 18& 189, 190, 191, 192, 193, 194, 96, 5& 35, 64, 39, 61, 34, 195, 97, 9& ; ;99, 100, 101, 102, 103, 101, 105, 196, 197, 19&

6、199, 200, 201,;L厂:202,106, 107, 10& 109. 110, 111, 112, 113, 114, 203, 201, 205, 206, 207,:-208,209, 126,115,116. 117,118, 119,120,121,122, 210, 211, 212, 213,214, 215,-216,217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 123, 65, 66, 67,- ? 68, 69, 70,71, 72, 73,232,23

7、3,234,235,236,237, 125, 74, 75, 76,5;77,7& 79, 80,81,82,23& 239, 2巾0, 241, 242, 243, 92,159, 83, 84, 85, 86, 87, 8& 89,: ? 90, 244, 245, 246, 247, 24& 249, 48,49, 50, 51, 52, 53, 54, 55, 56,;:57, 250, 251, 252, 253, 254, 255;:L厂LL-mt 1, j;-:unsigned char f32003200; FILE *fl; char si2

8、00;:;printf (*InputSgyFileName:n*) ;scanf (*%s*, si) ; /输入文件名;fl=fopen(sl, "rb");fread(f3200, 3200, 1, fl);;fclose (fl);LL: for(i=0;i<40;i 卄):; for(j=0; j<80; j-H) printf E2Af3200i*80+j):;:printf("n");: : :3文件头400字节二进制部分的读取可以把400字节作为若干个长整型及短整型数据读入:游include "stdio. h&qu

9、ot; include "stdlib.h"-void mainOFILE *fl;int i, 1; int traces;Lunsigned char f320032002;:char FileName200;long int sl100;short int s2 200:;printf C输入地蕊文件名. sgy:") ; scanf (%s: FileName);fl=fopen(FileName, "rb");L:if(fl=NULL) 文件打开不成就显示错误信息.然后退出. printf("File Open error!

10、n*); exit(0);fread(f3200,3200,1, fl); 读入前而的字节f read (si, 400,1, fl);读入接祥的字节,作为长整旳数fseek(flt 3200, 0);/退冋公,fread(s2, 400,1, fl);再以短整型数读入那些个7节I/:for(i=0;i<3;i±+) printf :%d n", i+1, si i);:/显示文件头格式说明中的二进制部分的忸二项for(i=3;i<15;i*) 显示4-1, 4-2. 。 15T, 15-2”:printf:%d n "1. s22*i);printf

11、 f%d-2:%d n i*l, s22*i+l);LfI/2/:在文件头中.晟匝要的足下而几项:;5-1:这个文件的地菽道的时间采样间隔.单位是微秒:e:6-1:毎个地丧道的样点数::71:数据的格式。现在般都是四丫竹的浮点数,格式1R.;/7printf (”时间釆样间隔微秒:%dn s28);-printf ("地克道的样点数:dn", s210);:printf (M数据格式代码:%dn s212);2/*;有了这些信息.这个文件金有的地呢道数是多少呢?Author: Yangwqcumt若文件长度:1u 则道数:traces二(1-3600)/ (240+s210

12、*4)/彳fseek(fl,0f2); /El=ftell(fl);1此时就是文件的字节数:rprintf (*文件的长度=%dnMt 1);:traces二(1-3600)/(240+4*s210);rprintf (*地蕊道数是:%dn*, traces):fclose(fl);也可以把那个400字节作为一个结构体,该结构体定义见附录二。殛祐*7亦隔姑祥蠢菇茹R| ffinclude "stdio h"!芳include "stdlib.h"include "segyHeaderh"| void mainO:!FILE *fl;|

13、int i, 1;!int traces,trace_length;!char FileName=/*100. sgy"i|struct SegyReelHdrStruct FileHeader;:fl=fopen(Fi1eName, "rb");!if(fl=NULL) /文件打开不成就显示错误信息.然后退出。II printf(wFile Open error!n*);iexit (0):iI|fread(&FileHeader, sizeof(FileHeader), 1, fl); trace_length=FileHeader hns;Iprin

14、tf ("%s:%dnM,"时何采样间隔微秒J FileHeader.hdt);|printf (*%s:%dn*» "毎道的样点数",FileHeader. hns);printf (*%s:%dn*t "数据的格式代, FileHeader. format);Iijfseek(flt0,2); /;l=ftell(fl);1此时就足文件的了节数:printf(*文件的长度字节数=%dn*, 1);jtraces=(1-3600)/(240+4*trace_length);fclose (fl);;printf (M%s:%dn*t

15、 "地股道数S traces);4某道数据的读取include "stdio. h* include "stringh" include "stdlib.h" void mainO包含头文件/FILE *fl,*f2; int i, 1;定义两个文件指针变呈char FileName200; 字符数组,存放文件名int Traces,Trace.length, Trace2read;顾名恵义,这儿个变虽用來"放:地蕊道数、地底逍的长度、耍迷的那 个地点逍的序float TraceData;定义个浮点空的指针.一会儿开辟内存肩

16、放个地狂道的数据/获得地底那个文件名/printf (*输入地窓文件名. sgy;scanf FileName);当然上而两行,可用一个这样的语句代若:strcpyCFileName/lOO. sgy*);fl=fopen(FileName, *rb*); /打开文件,打开形j弋为:进制读rb if(fl=NLLL) 判断打开J"没仃,不成功就返阿吧。printf (""Cannot open input file!n*); /显示信息exit (0); 退出Trace2read=430; 耍吠取哪道,町以键盘输入,为方便任这就给定了.设为第430逍 Trace_

17、length=800; 一个地確道股血数据的个数,可以从文件这电先拿来用了Traces=631;该文件地復道的个数,也可以通过文件头里啲的信息设法获得,也是先拿来用l=3600L+(240+Trace_length*4L)(Trace2read)+240;娶读取的那-个地旋道的,数据部分,在这个文件中的开始的位代,这个很匝耍,下面做点说明 /*一般来说,地鳶勘探的数据文件是询格式的。所谓格式.就是地爲数据、及相关的信息在地鳶文件 中的存放顺序。现在研究的这个叫做sgy格式.这种格式比较普遍它由文件头和地震道组成,文件头字节,每个 地鳶道由字节的逍头和数据组成.所以一个sgy格式的文件的组成为:

18、36007节十240丫节第一道数据+240丫节+第二道数据+240字廿+ 第三道数据+文件头部的了节以及毎道的了节道头冇信息,这个先不研究。对我们给的这个数据,道数据的长度800.是指个浮点数,所以其字节数變乘以,得到,加上7节的 道头,共计了节,所以第道的开始位代,就Si: *130*3140.然后山亍我们不读这个地说道的道头,数据部分的位腔还 要加,1=3600+3440*430+240;请时刻注总,c的数纽以及典他什么东西的编号多是从0丿始的。 /fseek(f 1,1,0); 定位到那个地族逋的 敌捌的 开始位代TraceData=new floatTrace_length;/先开一块

19、内存,耍不数据没地方放,你看爭先定好可以吗,比如:float TraceData800; fread(TraceData, lL*Trace_length, 1, fl);/*读数据了,嘿嘿。这个fread函数.括弧内有四个东西:第一个,读数据放在哪,可以是数组名或者指针第二个:一次读入等少字节第三个:读多少次,第艸个,文件指针看起来,里面的第:个和第三个,暂时叫参数吧,是可以互换的,但是这个,我猜测它的读取的速度不同,没仃验证过。与他对应的冇个二进制丐的函数,叫做fwrite0;里面也冇四个参数,四个参数的意义也和fread-样, 只是那个文件指针是要写出的文件的指针/fclose(fl);

20、/记得用完文件要关闭,冇的时候.没冇关闭动作数据会被破坏,足教材上这么说的.我也都足这么做的 f2=f open ("aline, txt", w");打开一个文件文件,用來输出,一会你运彳j完了看看aline.txt里血的内容for(i=0;i<Trace_length;i+十)fprintf(f2, *%f n*,TraceDataCi); /'与到哪里了这是? printf (w%f n", TraceDatai);这个乂是行到哪里了 ? fclose(f2); 不管他.把文件关闭了 delete TraceData;/记得方才的开辟

21、内存,现在用完了,该释放了. new和delete是一对,廉则上必须成双。可能你不公delete也成.但是,你还足delete了吧5. 一个完整的例子这个例子,我们读入一个sgy文件的数据,每道数据给它除以该道的绝对值 最大值,然后输出(这样,该地震道的数据映射到间了),文件头和每一 个地震道的道头原样写出,只是数据换成处理后的。include "stdio.h"“include "stdlib.h"include "string h"芬include "math h"void mainOFILE *filein,

22、*fileout;/输入文件及输出文件两个文件指针char inputfile200t output file 200; /输入文件名和输出文件名int i, j,l; 定义一些整数,循坏的时候用int traces, trace_length, samp_interval;道数、道长度(即毎逋的时何采样点数),时间采样何隔unsigned char f32003200; /文件头部开始的字节Author: Yangvvqcumtshort int f400200;/文件头的字节二进制部分float xmax; 用來存放某个地底道的绝对值最大值char Trace.header:240:;fl

23、oat tracedata;的指针,川來开辟内存,放代地艇道的冬/ printff 输入文件名. sgy: n");scanfinputfile);printfC输出文件名电sgy :n");scanf outputfile);/ filein=fopen(inputfile,"rb");if(filein=NULL)printf("Can not open File %sn"t inputfile);exit(0); / f i leout=fopen (outputf i le,;if(filein=NULL)printf(*Ca

24、n not open File %s n: outputfile); fclose(filein);exit (0);fread(f3200, 3200,1, filein);/ /读入3200字廿文件头部分fread(f400, 400,1. filein);/读入400 ? "文件头部分samp_interval=f4008; traceJength=f400ll; fseek(filein. 0,2);l=ftell(filein);traces=(1-3600)/(240+4L*trace_length);fseek(filein, 3600, 0);fwrite(f3200

25、, 3200,1, fileout);j岀3200? Yjfwrite(f 100, 400, 1, fileout);/塢出400字节tracedata二new float Ltrace_length;for (i=0; Ktraces;"+)fread (Trace-header, 240, L filein); /读入逍头fread(tracedata, 4L*trace_length, 1, filein);饮入地T匚迫数据 xmax=fabs(tracedata 101);for ( j=l; j<trace_length; J+)循环取得最大的绝对值if(xmax&

26、lt;fabs(tracedata 1j) xmax=fabs(tracedataj);if(xmax>0) /如果非0,就对毎个数据除以该最大for(j=0;j<trace_length; tracedataj/=xmax;fwrite(Trace.header, 240,1, fileout); /脈样输出道头fwrite(tracedata,4L*trace.lengthy 1, fileout); /输出那个变化的地贯数押: fcloseallO; 关闭文仲 delete tracedata; 释放内存 printf ("File process finished

27、. n"j ; /告诉你活干完了。6.后记你看,刚才的地震处理程序完成了对单道地震数据的一种处理, 程序很长。但是程序的主要工作是在进行数据的输入和输出,大量的工作是核心内容之外的.在地震数据的处理工作中,常常都是这样.所以,如果自己编程处理数据,具备读写文件的能力,是非常必要的.当然,实际的地震资料数据处理非常复杂,使用的也都是商业化的大型软件,处理员不用编程。如果商业软件的某项处理功能不好,或者根本就不具备,而你自己有某种灵感想实现,那就要自己编程序了.这种灵感,是进行科学研究需要的.最后跟大家说,地震勘探中各种文件的格式,在seg网站上都能找到相应的文档。http:/www.s

28、/resources/publicatio ns/misc/tech nicalsta ndards附录一 SEGY格式地震数据文件头及道头说明(这个是老标准的格式说明,新标有改变)SEG-Y格式400字节二进制文件头信息字(32位)1字节号32013204说明作业标识号。23205-3208*测线号(每卷仅一条线)33209-3212*五7 04T3213-3214*每个记录的道数(包括DUMMY道和插入到记录或者共深度点的 零记录道)o4-23215-3216每个记录的辅助道数(包括扫描道、时断、增益、同步和其他 所有非地震数据道)5-13917-3918这一卷带的采样间隔,以

29、微秒表示。5-23219-3220野外记录的采样间隔,以微秒表示。6-13221-3222本卷数据的每个数据道的样点数。6-23223-3224野外记录的各数据道的样点数。7-13225-3226*数据采样格式码:1二浮点(4字节);2二定点(4字节):3二定点(2字节):4二定点(W/增益4字节)辅助道的每个采样使用相同的字节数,7-23227-3228*CMP覆盖次数(每个CMP道集所希望的数据道数)。8-13229-3230道分选码:1二同记录(没有分选):2二CMP道集;3二单次覆盖剖面:4二水平巻加剖面。8-23231-3232垂直叠加码1二没有巻加:2二两次巻加;N二N 次相加(N

30、二32, 767)9-13233-3234起始扫描频率9-23235-3236终止扫描频率。10-13237-3238扫描长度。以ms表示10-23239-3240扫描类型码:1:线性扫描:2:抛物线扫描:3:指数扫描;4:其他。11-13241-3242扫描通道的道号11-23243-3244有斜坡时,为起始斜坡长度(斜坡起始于时间零.使用时间为 该长度)。以ms表示。12-13245-3246终了斜坡长度(终了斜坡起始于扫描长度:减终于斜坡长 度)。以ms表乔。12-23247-3248斜坡类型:1二线性:2二COS $3二其他13-13249-32DU相关数据道1二没有相关2二相关。13

31、-23251-3252二进制增益恢复:1:恢复:2:没有恢复。14-13253-3254振幅恢复方式:1二没有:2二球面扩散;3=AGC:4 二其他14-23255-3256*测最系统:1二米2二英尺.15-13257-3258脉冲信号极性:1二压力增加或者使检波器向上运动在磁带上记的是负数:2二压力增加或者使检波器向上运动在磁带上记的是正数.15-23259-3260可控震源地震信号滞极性代码后引导信号1=337. 5-22.52=22.5-67.53=67. 5-112. 54=112. 5-157. 55=157.5-202. 56=202.5-247. 57=247. 5-292.58

32、=292. 5-337. 53261-3600没有确定,选择使用SEGY格式道头说明字(32位)字节号说明11-4*一条测线中的道顺序号如果一条测线有若干卷带,顺序号连续 递増"25-8在本卷磁带中的道顺序号)每卷带的道顺序号从1开始。39-12原始的野外记录号。413-16在原始野外记录中的道号.517-20震源点号(在同一个地面点有多于一个记录时使用)。621-24CMP 号。725-28在CMP道集中的道号(在每个CMP道集中道号从1开始)。8-129-30*道识别码:I二地震数据 4:时断:7二记录:2二死道:5:井口时间;8二水断:3二DUMMY; 6二扫描道:9N二选择使

33、用(N二32767)8-231-32产生这一道的垂直巻加道数(1是一道:2是两道相加;)。9-133-34产生这一道的水平替加道数(1是一道:2是两道替加:)。9-235-36数据类型:1:生产;2:试验。1037-40从炮点到接收点的距离(如果是相反向激发为负值)。1141-44接收点高程.高于海平而的高程为止,低于海平面为负。1245-48炮点的地面高程。1349-52炮点低于地面的深度(正数)。1453-56接收点的基准面咼程。1557-60炮点的基准面高程。1661-64炮点的水深。1765-68接收点的水深。18-169-70对41-68字节中的所有高程和深度应用了此因子给出真值。比

34、例因子:1, ±10, ±100, ±1000或者±10000。如果为 正,乘以因子: 如果为负,则除以因子。18-271-72对73-88字节中的所有坐标应用了此因子给出真值'比例因子:仁±10, ±100, ±1000或者±10000如果为正,乘 以因子: 如果为负,则除以因子。1973-76炮点坐标XI如果坐标单位是弧度的秒,X值代表。2077-80炮点坐标yI经度,Y值代表纬度。正值代表格林2181-84检波点X|威治子午线东或者赤道北的秒数。负2285-38检波点Y丨值则为西或者南的秒数23-18

35、9-90坐标单位;1:长度(米或者英尺):2:弧度的秒.23-291-92风化层速度。24-193-94风化层下的速度。24-295-96震源处的井口时间。25-197-98接收点处的井口时间。25-299-100炮点的静校正。26-1101-102接收点的静校正。26-2103104应用的总静校正量(如果没有应用静校正为零)o27-1105-106延迟时间-A,以ms表示.240字节的道标识的结束和时间 信号之间的时间。如果时间信号山现在道头结束之前为正。 如果时间信号出现在道头结束之后为负。时间信号就是起始 脉冲,它记录在辅助道上或者由记录系统指定。27-2107-108时间延迟B,以ms

36、表乔。为时间信号和能竜起爆之间的时间。可正可负。28-1109-110时间延迟时间,以ms表示。能量源的起爆时间和开始记录数据样点之间的时间(深水时,数据记录不从时间零开始。)28-2111-112起始切除时间。29-1113-114结束切除时间。29-2115-116本道的采样点数。30-1117J18本道的采样间隔,以us表示。30-2119-120野外仪器的增益类别:1:固定增益:2:二进制增益:3:浮点增益:4N:选择使用31-1121-122仪器增益常数,31-2123124仪器起始増益(db)。32-1125-126相关码:1二没有相关:2:相关。32-2127128起始扫描频率。

37、33-1129-130结束扫描频率。33-2131132扫描长度,以ms表示。34-1133-134扫描类型:1:线性;2:抛物线:3:指数:4:其他34-2135-136扫描道起始斜坡长度,以ms表示。35-1137138扫描道终了斜坡长度,以ms表示。3匕一2139-140斜坡为型:1:线性;2: UUti2: 3:其他。36-1141-142滤假频的频率(如果使用)。36-2143144滤假频的陡度。37-1145-146陷波陡率(如果使用)。37-2147-148陷波陡度一38-1149-150低截频率(如果使用:。38-2151152高截频率(如果使用)。39-1153154低截频率

38、陡度。39-2155156高截频率陡度。40-1157-158数据己录的年。40-2159-160日。41-1161-162小时(24时制)41-2163164分。42T165-166秒。42-2167-168时间代码:1:当地时间:2:格林威治时间:3:其他43-1169-170道加权因子"(最小有效位定义为2*(-N), N=0, 1, 243-2171-172覆盖开关位置1的检波器道号。44-1173-174在原始野外记录中道号1的检波器号.44-2175-176在原始野外记录中最后一道的检波器号。45-1177-178缺口大小(滚动的总道数)。45-2179-180在测线的开

39、始或者结束处的斜坡位置:1:在后面:2:在前面。181-240没有定义.可以选择使用。,32767)说明: 1. 带*的字节的信息必须记录。2.本说明仅供参考。附录二c语言400字节文件头结构体及道头结构体/* the SEG-Y reel identification header */struct SegyReelHdrStructchar long long long shor t short short shor t short short shortcomment13200Z;jobid; / job identification number */lino; /* line num

40、ber (only one linereno; /* reel number */ntrpr; /* number of data traces pernart; /* number of auxiliary tracesintintintintintintintintintrecord */ per record */hdtdtohns/*/* /* /*nso format;sample interval in micro secs for this reel */same for original field recording */number of samples per trace

41、 for this reel */number of samples per trace for original field recording */ / data sample format code:Author: Yangvvqcumt1 二 floating point (4 bytes) 2 二 fixed point (4 bytes) 3 二 fixed point (2 bytes)Author: Yangwqcumt4 = fixed point w/gain code (4 bytes) */short int fold; / CDP fold expected per

42、CDP ensemble */short int tsort; / trace sorting code: 1 = as recorded (no sorting) 2 = CDP ensemble3 = single fold continuous profile 4 = horizontally stacked */short int vscode; /* vertical sum code: 1 = no sum 2 = two sum N 二 N sum (X = 32,767) /short int hsfs; / sweep frequency at start /short in

43、t hsfe; / sweep frequency at end */short int hslen; /* sweep length (ms) */short int hstyp; /* sweep type code:1 = linear 2 = parabolic 3 = exponential 4 = other /short int schn; / trace number of sweep channel */short int hstas; /* sweep trace taper length (msec) at start if tapered (the taper star

44、ts at zero time and is effective for this length) /short int hst ae; /* sweep trace taper leng th (msec) at end (the ending t aper st arts at sweep length minus the taper length at end)short int htatyp; /* sweep trace taper type code: 1 = linear 2 = cossquared 3 = other /short int hcorr; / correlate

45、d data traces code: 1 = no 2 = yes / short int bgrcv; / binary gain recovered code: 1 = yes 2 = no */ short int rcvm; / * amplitude recoverir method code: 1 = none 2 = spherical divergence 3 = AGC 4 = other */short int mfeet; /* measurement system code: 1 = meters 2 = feet */short int polyt; /* impu

46、lse signal polarity code:1 = increase in pressure or upward geophone case movement gives negative number on tape2 = increase in pressure or upward geophone case movement gives positive number on tape */short int vpol; / vibratory polarity code: code seismic signal lags pilot by337.5 to 22 5 degrees

47、22.5 to 67 5 degrees 67 5 to 112. 5 degrees112. 5 to 157. 5 degrees 157. 5 to 202. 5 degrees 202. 5 to 247. 5 degrees 247. 5 to 292. 5 degrees 293. 5 to 337.5 degrees */short int hunass170 ;/* unassigned / ;/*3600 bytes if tightly packed */* the SEG-Y trace identification header / struct SegyTraceHd

48、rStruct long int tracl: /* trace sequence number within line / long int tracr; / trace sequence number within reel */ long int fldr; /* field record number */long int tracf: /* trace number within field record /long int ep; /* energy source point number /long int cdp; /* CDE ensemble number /long in

49、t cdpt; / trace number within CDP ensemble */short int trid; /* trace identification code:I 二 seismic data 2 = dead 3 = dummy 4 = time break 5 = uphole 6 = sweep 7 = timing8 = water break 9 , N = optional use (N = 32, 767) Following are CWP id flags: 9 = autocorrelation 10 = Fourier transformed 一 no

50、 packingxr0, xi0,xrN_l, xiN_lII = Fourier transformed 一 unpacked Nyquist xr0, xi0,» xrN/2, xiN/2 12 =Fourier transformed - packed Nyquisteven X:xr0 9 xr N/2, xr1, xi 1, . . , xrN/2 一 1. xi N/2 -1 (note the exceptional second entry) odd N:xr0, xr(N_l)/2, xrl, xilxr(N-l)/2 _1, xi (N_l)/2 T, xi(N-

51、l)/2(note the exceptional second & last entries) 13 二 Complex signal in the time domain xr 0, xi0,., xrxiNl14 二 Fourier transformed *amplitude/phasea0, p0, aN"l, pN"l 15 = Complex time signal - amplitude/phase a0, p0 t . . > aN"l, pN"l 16 = Real part of complex trace from

52、0 to Xyquist 17 =I mag par t of complex trace from 0 to Nyquist 18 = Amplitude of complex trace from 0 to Xyquist19 = Phase of complex trace from 0 to Nyquist 21 = Wavenumber time domain (k"t) 22 二 Wavenumber frequency (komega) 30 二 Depth一Range (zx) traces101 = Seismic data packed to bytes (by

53、supack 1) 102 = Seismic data packed to 2 bytes (by supack2) 200 = GPR data short int nvs; /* number of vertically summed traces (see vscode in reel header structure) */short int nhs; / number of horizontally summed traces (see vscode in reel header structure) */ if negative divide) */short int duse;

54、 /* data use: 1 二 production 2 二 test */long int offset; / distance from source point to receiver group opposite to direction in which the line was shot) */long int gelev; /* receiver group elevation from sea level (above positive) */long*/longlonglonglonglongsea level isintmtintmtmtintselev; /* source elevation from sea level (above

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论