命令suwind –用关键字选定一定时窗地震道susort–根据segy道头字分选道suramp和sutaper–数据斜坡化(Tapering)sukill、suzero、sunull和sumute–数据充零suvcat和cat –数据合并suvlength –调整可变长度道到相同采样点数
命令
一旦SU格式的数据读入和道头设置正确后,常常要对数据进行操作和编辑。SU提供的数据处理和编辑的命令有:
- SUWIND– 根据关键字开时窗
- SUSORT– 基于segy道头关键字进行道分选
- SURAMP– 从道起点到道终点进行线性斜坡化(Linearly taper)至零值
- SUTAPER– 对一个数据窗进行斜坡化(taper)至零值
- SUNULL– 产生空道(都为零值)
- SUZERO– 在一时间窗内数据充零
- SUKILL– 地震道充零
- SUNUTE– 根据关键道头字确定的距曲线的距离,去除用户指定的多边形曲线上边或下边的值
- SUVELENGTH– 调整变长度地震道到相同长度地震道
- SUVCAT– 将一个数据附加到另一个数据(一道接一道进行)
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
更复杂的窗口大小选择如下(例如,使用分数,decimating data):
- j=1 每个数据的第j道不选…
- s=0 以s为基数(如果((key - s)%j) == 0)
下面的例子用suplane生成的数据,每两道抽取一道(即抽取道2、4、6…):
suplane | suwind key=tracl j=2 | sugethw key=tracl | more
或者每隔2道抽取1道,基数为1(即抽取道1、3、5…):
suplane | suwind key=tracl j=2 s=1 | sugethw key=tracl | more
也可以用suwind接受或拒绝某些地震道:
- reject=none 按指定的关键字跳过的地震道
- accept=none 用指定的关键字选择地震道
例如下面的命令所示,地震道中的第3、8、9道将不显示:
suplane | suwind key=tracl reject=3,8,9 | sugethw key=tracl | more
参数accept选项有点特殊,它表示接收这些道,即使这些道被拒绝过。例如:
suplane | suwind key=tracl reject=3,8,9 accept=8 | sugethw key=tracl | more
如果你只想接收列表中的道,这时需要设置参数“max=0”,下列所示只显示出第8道:
suplane | suwind key=tracl accept=8 max=0 | sugethw key=tracl | more
计数(count)参数覆盖接收(accept)参数,所以如果你想真正无条件接受道,就不能指定计数(count)参数。
选取时间窗口(Time gating)
有关窗口的第二个问题就是时间窗的设定。垂直时间窗(time gating)的选项为:
- tmin = 0.0 选取最小时间
- tmax = (from header) 选取最大时间
- itmin = 0 选取最小时间采样
- itmax = (from header) 选取最大时间采样
- nt = itmax-itmin+1 时间采样点数
设置的结果要么是选取最小时间采样和选取最大时间采样(itmin和itmax),要么选取最小时间和选取最大时间(tmin和tmax),这样就将产生一个最接近采样的时窗。
susort–根据segy道头字分选道
susort命令利用Unix系统sort命令,通过道头关键字对地震道进行分选。
例如,根据两个关键字(cdp和offset)分选数据(数值按升序),可用下面的命令:
susort <data.su >outdata.su cdp offset
如果offset关键字按降序,cdp关键字按升序进行分选,可用下面的命令:
susort <indata.su >outdata.su cdp -offset
suramp和sutaper–数据斜坡化(Tapering)
很多地震处理算法因为数据的突变边界而显示假象,在数据边界对振幅进行斜坡化(tapering),就是压制这种假象的最容易的方法。在SU中,我们可以使用sutaper命令对数据边界进行斜坡化。
例如,对每5道数据从头到尾进行斜坡化:
sutaper <diskfile >stdout ntaper=5
suramp可以平滑从起始道和(或)末道。例如,斜坡化从0到tmin=0.05s,然后再向下从tmax=1.15s到末道:
suramp <diskfile tmin=.05 tmax=1.15 >stdout
sukill、suzero、sunull和sumute–数据充零
对有噪声的道、位于数据边界的道进行充零是有益的。或者是产生一些空道,在绘图时最为联系数据集中间的分割标志。
sukill –道充零
对一批地震道充零键入:
sukill <stdin >stdout min=MIN_TRACE count=COUNT
这里参数count是要充零的总道数,参数min是要充零的这些道中的最小道号。
sunull –产生空道数据
有时需要生成道值为零的地震数据块。下面的命令产生共有NTR道,时间采样数为NT的地震数据:
sunull nt=NT ntr=NTR <stdin >stdout min=MIN_TRACE count=COUNT
suzero –在一段时间窗内对数据充零
suzero itmin=MIN_TIME_SAMPLE itmax=MAX_TIME_SAMPLE <indata.su > outdata.su
sumute –数据去除
要进行高精度的压制操作,可用命令sumute对SU数据进行处理。
sumute <indata.su >outdata.su key=KEYWORD xmute=x1,x2,x3,... tmute=t1,t2,t3,...
下面用suplane生成数据,然后做去除处理与原始生成数据比较:
suplane | suxwigb & suplane | sumute key=tracl xmute=1,10,12 tmute=.06,.1,.11 | suxwigb &
去除根据xmute=和tmute=参数确定的多边形曲线内每一个初至。
suvcat和cat –数据合并
有两种方法可以将一种数据附加到另一个上(合并)。第一种使用Unix命令cat,简单的将第二个文件的数据放到第一个文件中去。
cat data1.su data2.su > data3.su
另外,可能需要对地震道重编号:
cat data1.su data2.su | sushw key=tracl a=1 > data3.su
第二种是将第二个数据集中的每一道垂直的附加到第一个数据集中每一道的末尾。这就需要使用suvcat命令:
suvcat data1.su data2.su > data3.su
在这个例子中,就不需要修改道头字。
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" &
这将使所有的道含有相同的长度。