segywrite写文件BHEDTOPAR,SETBHED – 编辑二进制头文件suwind –用关键字选定一定时窗地震道通过道头字来设定数据窗口的大小suvlength – 调整可变长度道到相同采样点数
segywrite写文件
与segyread相对应的命令是segywrite。这个程序可以将SEGY格式按多种不同的方式把数据写到磁带或磁盘文件。该程序可用于把数据写成商业软件可以使用的形式。
要写一个符合SEG数字磁带标准的SEGY格式,你需要提供ASCII和二进制的卷头文件,在SEGY磁带或文件里会变成EBCDIC和二进制的卷头文件。也就是segywrite创建文件时需要有header部分和binary部分。
如果你没有binary和header文件,你必须用程序sgyhdrs(创建SEG Y文件)来创建它们。命令:
segyhdrs < data.su
会在当前工作目录下写header和binary文件。举例来说:利用suplane来做一个文件然后对它使用segyhdrs:
suplane > data.su segyhdrs < data.su
你会看到binary和header文件出现在当前工作目录下。
这个命令带有选项,允许你设置binary header fields的值。这些字可以用如下的方式看到:
sukeyword jobid
BHEDTOPAR,SETBHED – 编辑二进制头文件
要编辑二进制头文件,首先要转成ASCII格式。程序bhedtopar允许把binary文件写成“parfile”的格式:
bhedtopar < binary outpar=binary.par
可以编辑产生的ASCII码文件“binary.par”进行修改,然后通过setbhed来重新读入:
setbhed bfile=binay par=binary.par
也可以单独设置头文件字。例如:
setbhed bfile=binary par=binary.par lino=3
使用了binary.par的内容,但是lino单独设为3。
最后,可以通过下面的命令来写磁带:
segywrite tape=/dev/rmtx verbose=1 < data1.su
注意header文件和binary文件是在当前目录下的。你也可以使用你自己的文件名。
Segywrite的选项bfile=和hfile=用来输入你指定的文件名。
suwind –用关键字选定一定时窗地震道
非常常见的操作就是我们时常需要浏览或处理地震数据中的一小块数据。suwind命令使得我们可以根据大量的参数信息设置窗口来选定感兴趣的数据。
通过道头字来设定数据窗口的大小
suwind最简单的用法就是,通过用户设定道头关键字的最小和最大值来选定数据:
- key=tracl 设置窗口的道头字(see segy.h)
- min=LONG_MIN 数据关键道头字的最小值
- max=LONG_MAX 数据关键道头字的最大值
例如,用道数作关键字对命令suplane产生的数据进行窗口大小设置:
suplane | suwind key=tracl min=5 max=10 | sugethw key=tracl | more
对于一个大的数据体,应该使用计数(count)参数,而不是最大值。如果直接设定最大值(max),命令suwind将查询全部数据后,再选择在最小值和最大值之间的道集,这是因为程序认为道的标志(trace labeling)可能多次出现。例如,可以比较下面的两个命令的结果:
suplane ntr=100000 | suwind key=tracl min=5 max=10 | sugethw tracl | more suplane ntr=100000 | suwind key=tracl min=5 count=5 | sugethw tracl | more
suvlength – 调整可变长度道到相同采样点数
有时数据中每道含有不同的采样点数。下面我们对用suplane命令生成的数据,用命令suvlength处理的道相同的采样点数:
suplane nt=64 > data1.su
suplane nt=32 > data2.su
cat data1.su data2.su > data3.su
对于上面合并生成的数据data3.su,如果想用SU程序处理该数据文件将会失败,因为大多说SU程序要求数据块含有相同的采样点数。使用命令suvlength可以解决该问题:
suvlength ns=64 < data3.su > data4.su
suxwigb < data4.su title="Test of suvlength" &
这将使所有的道含有相同的长度。