🧠

Res SU (16)道数据计算2

数据分析

0. 数据准备

动校正NMO后的数据

将t时刻的数据归零
sunmo < outdata_cmp.su invert=1 \ cdp=225,230,235,240,245,250 \ tnmo=0.0572337,0.166932,0.329094,0.577107,0.901431,1.23529,1.47854,1.65024,1.73132,1.94118,2.14149,2.23211,2.40382 \ vnmo=5081.4,5290.7,5500,5825.58,6848.84,7453.49,7802.33,8523.26,9011.63,9872.09,11011.6,11314,11430.2 \ tnmo=0.0143084,0.166932,0.27186,0.395866,0.572337,0.806041,1.04452,1.1876,1.52623,1.74563,1.93641,1.99841,2.19396,2.32273,2.35612,2.46582,2.54213,2.58983 \ vnmo=4965.12,5220.93,5476.74,5662.79,5872.09,6267.44,6802.33,7151.16,7569.77,7848.84,8406.98,8523.26,8988.37,9476.74,9965.12,10686,11104.7,11383.7 \ tnmo=0.0524642,0.205087,0.419714,0.682035,0.825119,0.987281,1.20191,1.3593,1.53577,1.62162,1.9221,2.18442,2.28935,2.48013,2.58506 \ vnmo=5244.19,5406.98,5639.53,6220.93,6476.74,6895.35,7500,7941.86,8616.28,8872.09,9313.95,9895.35,10779.1,11244.2,11453.5 \ tnmo=0.0810811,0.286169,0.424483,0.615262,0.944356,1.2496,1.60254,1.90779,2.13196,2.37997 \ vnmo=5476.74,5546.51,5825.58,6383.72,6918.6,8011.63,8802.33,9686.05,10383.7,11360.5 \ tnmo=0.0429253,0.248013,0.434022,0.629571,0.834658,1.11129,1.2973,1.54531,1.71701,1.94118,2.1558,2.41812,2.68998,2.86169,2.98569 \ vnmo=5174.42,5523.26,5988.37,6523.26,7081.4,7662.79,7988.37,8406.98,8686.05,9058.14,9523.26,10220.9,10616.3,10848.8,11407 \ tnmo=0.0572337,0.314785,0.505564,0.696343,0.939587,1.19237,1.34499,1.67886,1.97933,2.24165,2.56121,2.79014,2.90461 \ vnmo=5220.93,5662.79,6081.4,6779.07,7151.16,7476.74,7918.6,8872.09,9360.46,9848.84,10825.6,11104.7,11383.7 > outdata.su
suwind < outdata.su key=cdp min=231 max=240 | suxwigb
我这里用一个动校正NMO后的数据data-tm-flt-dec-bal-cdp-nmo.su进行模拟
  1. 将t时刻的数据归零
suzero itmin=845 itmax=880 < data-tm-flt-dec-bal-cdp-nmo.su > outdata.su
  1. 上述数据显示,CMP范围为231~240
suwind < outdata.su key=cdp min=231 max=240 | suxwigb
notion image

1.叠加数据验证

  • 获取t、cmp
  • 处理过的动校正 outdata.su 数据,模拟归零的数据
# 动校正后的叠加数 sustack < outdata.su > outdata_stack.su
suxwigb < outdata_stack.su
notion image

3. 反NMO得到CMP道集数据

需要cmp、t、v对数据
sunmo < outdata.su invert=1 \ cdp=225,230,235,240,245,250 \ tnmo=0.0572337,0.166932,0.329094,0.577107,0.901431,1.23529,1.47854,1.65024,1.73132,1.94118,2.14149,2.23211,2.40382 \ vnmo=5081.4,5290.7,5500,5825.58,6848.84,7453.49,7802.33,8523.26,9011.63,9872.09,11011.6,11314,11430.2 \ tnmo=0.0143084,0.166932,0.27186,0.395866,0.572337,0.806041,1.04452,1.1876,1.52623,1.74563,1.93641,1.99841,2.19396,2.32273,2.35612,2.46582,2.54213,2.58983 \ vnmo=4965.12,5220.93,5476.74,5662.79,5872.09,6267.44,6802.33,7151.16,7569.77,7848.84,8406.98,8523.26,8988.37,9476.74,9965.12,10686,11104.7,11383.7 \ tnmo=0.0524642,0.205087,0.419714,0.682035,0.825119,0.987281,1.20191,1.3593,1.53577,1.62162,1.9221,2.18442,2.28935,2.48013,2.58506 \ vnmo=5244.19,5406.98,5639.53,6220.93,6476.74,6895.35,7500,7941.86,8616.28,8872.09,9313.95,9895.35,10779.1,11244.2,11453.5 \ tnmo=0.0810811,0.286169,0.424483,0.615262,0.944356,1.2496,1.60254,1.90779,2.13196,2.37997 \ vnmo=5476.74,5546.51,5825.58,6383.72,6918.6,8011.63,8802.33,9686.05,10383.7,11360.5 \ tnmo=0.0429253,0.248013,0.434022,0.629571,0.834658,1.11129,1.2973,1.54531,1.71701,1.94118,2.1558,2.41812,2.68998,2.86169,2.98569 \ vnmo=5174.42,5523.26,5988.37,6523.26,7081.4,7662.79,7988.37,8406.98,8686.05,9058.14,9523.26,10220.9,10616.3,10848.8,11407 \ tnmo=0.0572337,0.314785,0.505564,0.696343,0.939587,1.19237,1.34499,1.67886,1.97933,2.24165,2.56121,2.79014,2.90461 \ vnmo=5220.93,5662.79,6081.4,6779.07,7151.16,7476.74,7918.6,8872.09,9360.46,9848.84,10825.6,11104.7,11383.7 > outdata_cmp.su
sunmo < outdata.su invert=1 vnmo=velocity.txt > outdata_cmp.su
suwind < outdata_cmp.su key=cdp min=231 max=240 | suxwigb suximage < outdata_cmp.su legend=1 d2=tr.d2 d1=tr.d1 title="outdata_cmp" cmap=rgb1 &
notion image

道头数据

sugethw < data.su key=keyword1,keyword2,... | more # 例如 sugethw < data.su key=tracl,tracr,offset,dt,ns | more sugethw < data.su key=tracl,tracr,offset,dt,ns,fldr,tracf,ep,cdp,cdpt # 查看道号为100的道的头信息 sugethw < data.su key=tracl min=100 max=100
notion image
读出道头字段信息,存入txt文件
sugethw < data-tm-flt-dec-bal-cdp-nmo.su key=tracl,tracr,offset,dt,ns,fldr,tracf,ep,cdp,cdpt > hdrfile.txt

修改道头字段

  • a:第一个参数值
  • b:增长的值
  • c:一组的的值
  • d:迹线编号偏移
  • j:组中元素的数量
sushw < data-tm-flt-dec-bal-cdp-nmo.su key=tracr a=10 c=-1 j=5 > data.new.su
说明:操作之前tracltracr所有值一样
  • 将第一个值设置为10
  • 五个同一组的递减1
sugethw < data.new.su key=tracl,tracr,offset,dt,ns,fldr,tracf,ep,cdp,cdpt
notion image
sushw < data-tm-flt-dec-bal-cdp-nmo.su key=cdp a=208 b=1 > cmp_100_data.su
suxwigb < cmp_100_data.su

根据道头的字段值提取道数据

Demo:根据道头字tracl,提取所有tracl[1,10]

suwind < data-tm-flt-dec-bal-cdp-nmo.su key=tracr min=1 max=10 >tracr1_10.su
suxwigb < tracr1_10.su

Demo:根据道头字cdp,提取所有cdp=208

suwind < data-tm-flt-dec-bal-cdp-nmo.su key=cdp min=208 max=208 >cmp_208_data.su
suxwigb < cmp_208_data.su

将两个su合并成一个

1. 排序(如果需要)

  • 使用 susort 命令对两个文件进行排序,以确保它们具有相同的道号顺序:
susort <cmp_208_data.su >sorted_file1.su tracr
查看
sugethw < cmp_208_data.su key=tracl,tracr,offset,dt,ns,fldr,tracf,ep,cdp,cdpt sugethw < sorted_file1.su key=tracl,tracr,offset,dt,ns,fldr,tracf,ep,cdp,cdpt
notion image

2. 合并

  • 我这里的cmp_208_data.sucmp_209_data.su 文件都是排好序的,直接合并
# 合并 cat cmp_208_data.su cmp_209_data.su > cmp_210_data.su # 查看道头字 sugethw < cmp_210_data.su key=tracl,tracr,offset,dt,ns,fldr,tracf,ep,cdp,cdpt
notion image
suxwigb < cmp_210_data.su
显示道数据
notion image

修改某个CDP的值(归零)

提出每个CDP号的数据,将该值清零
suzero itmin=845 itmax=880 < cmp_208_data.su > cmp_208_data1.su
suxwigb < cmp_208_t_800.su
合并到原来的数据
cat cmp_208_data1.su cmp_210_data.su > cmp_210_data1.su

修改一段数据

sutaper

将数据面板的边缘轨迹逐渐缩小到零。
许多地震处理算法会显示数据集锐利边缘产生的虚假伪影。逐渐减小数据集边缘的幅度是抑制这些幅度的最简单方法之一文物。 为此,我们使用“sutaper”来锥化数据集的边缘(例如,线性在数据集的每一端逐渐减少 5 条迹线)。
sutaper < cmp_210_data.su > sutaper_210_data.su ntap=1
提示错误:sutaper: ntr neither set nor getparred

suramp

  • /src/su/main/tapering
将迹线的起点和/或终点线性逐渐变细至零。
“suramp”以平滑迹线的开头和/或结尾(例如,从 0 到 tmin=0.05 秒斜坡上升,从 tmax=1.15 秒斜坡下降到迹线末尾
suramp <cmp_210_data.su tmin=.05 tmax=1.15 >sutaper_210_data.su
suramp <cmp_210_data.su tmax=1.15 nt=10 >sutaper_210_data.su
suxwigb < sutaper_210_data.su
notion image
 
 

添加噪音suaddnoise

  • /src/su/main/noise
  • add noise to traces
suplane | suaddnoise sn=0 > data_noise.su suxwigb < data_noise.su
  1. 不设置sn
suplane | suaddnoise > data_noise.su suxwigb < data_noise.su
notion image
  1. 设置sn=2
suplane | suaddnoise sn=2 > data_noise.su suxwigb < data_noise.su
notion image
suplane | suaddnoise | suxwigb title="noise added" &
测试默认数据
suplane | suaddnoise sn=2 | suxwigb title="noise added" &
测试自定义数据
suwind < cmp_210_data.su | suaddnoise sn=2 | suxwigb title="noise added" &
notion image

获取SU数据,增益计算

  • src/su/main/amplitudes
  • sugain :获取 SU 数据,应用各种类型的增益来显示迹线
" Optional parameters: ", " panel=0 =1 gain whole data set (vs. trace by trace) ", " tpow=0.0 multiply data by t^tpow ", " epow=0.0 multiply data by exp(epow*t) ", " etpow=1.0 multiply data by exp(epow*t^etpow) ", " gpow=1.0 take signed gpowth power of scaled data ", " agc=0 flag; 1 = do automatic gain control ", " gagc=0 flag; 1 = ... with gaussian taper ", " wagc=0.5 agc window in seconds (use if agc=1 or gagc=1) ", " trap=none zero any value whose magnitude exceeds trapval ", " clip=none clip any value whose magnitude exceeds clipval ", " pclip=none clip any value greater than clipval ", " nclip=none clip any value less than clipval ", " qclip=1.0 clip by quantile on absolute values on trace ", " qbal=0 flag; 1 = balance traces by qclip and scale ", " pbal=0 flag; 1 = bal traces by dividing by rms value ", " mbal=0 flag; 1 = bal traces by subtracting the mean ", " maxbal=0 flag; 1 = balance traces by subtracting the max ", " scale=1.0 multiply data by overall scale factor ", " norm=0.0 divide data by overall scale factor ", " bias=0.0 bias data by adding an overall bias value ", " jon=0 flag; 1 means tpow=2, gpow=.5, qclip=.95 ", " verbose=0 verbose = 1 echoes info ", " mark=0 apply gain only to traces with tr.mark=0 ", " =1 apply gain only to traces with tr.mark!=0 ", " vred=0 reducing velocity of data to use with tpow ", " ", " tmpdir= if non-empty, use the value as a directory path ", " prefix for storing temporary files; else if the ", " the CWP_TMPDIR environment variable is set use ", " its value for the path; else use tmpfile() ",
suxwigb < cmp_210_data.su title="Ungained Data" & sugain < cmp_210_data.su scale=5.0 | suxwigb title="Scaled data" & # sugain < cmp_210_data.su agc=1 wagc=.2 | suxwigb title="AGC=1 WAGC=.1 sec & sugain < cmp_210_data.su pbal=1 | suxwigb title="traces balanced by rms" & sugain < cmp_210_data.su qbal=1 | suxwigb title="traces balanced by quantile" & sugain < cmp_210_data.su mbal=1 | suxwigb title="traces balanced by mean" & sugain < cmp_210_data.su tpow=2 | suxwigb title="t squared factor applied" & sugain < cmp_210_data.su tpow=.5 | suxwigb title="square root t factor applied" &

一元运算SUOP

  • src/su/main/operations
  • 对 segys 进行一元算术运算
" Optional parameter: ", " op=abs operation flag ", " abs : absolute value ", " avg : remove average value ", " ssqrt : signed square root ", " sqr : square ", " ssqr : signed square ", " sgn : signum function ", " exp : exponentiate ", " sexp : signed exponentiate ", " slog : signed natural log ", " slog2 : signed log base 2 ", " slog10: signed common log ", " cos : cosine ", " sin : sine ", " tan : tangent ", " cosh : hyperbolic cosine ", " sinh : hyperbolic sine ", " tanh : hyperbolic tangent ", " cnorm : norm complex samples by modulus ", " norm : divide trace by Max. Value ", " db : 20 * slog10 (data) ", " neg : negate value ", " posonly : pass only positive values ", " negonly : pass only negative values ", " sum : running sum trace integration ", " diff : running diff trace differentiation", " refl : (v[i+1] - v[i])/(v[i+1] + v[i]) ", " mod2pi : modulo 2 pi ", " inv : inverse ", " rmsamp : rms amplitude ", " s2v : sonic to velocity (ft/s) conversion ", " s2vm : sonic to velocity (m/s) conversion ", " d2m : density (g/cc) to metric (kg/m^3) conversion ", " drv2 : 2nd order vertical derivative ", " drv4 : 4th order vertical derivative ", " integ : top-down integration ", " spike : local extrema to spikes ", " saf : spike and fill to next spike ", " freq : local dominant freqeuncy ", " lnza : preserve least non-zero amps ", " --------- window operations ----------- ", " mean : arithmetic mean ", " despike : despiking based on median filter", " std : standard deviation ", " var : variance ", " nw=21 number of time samples in window ",
suop < cmp_210_data.su op=abs | suxwigb title="absolute value" & suop < cmp_210_data.su op=ssqrt | suxwigb title="signed square root" & suop < cmp_210_data.su op=sqr | suxwigb title="signed square" &
notion image
notion image
notion image
suop < cmp_210_data.su op=posonly | suxwigb title="posonly " & suop < cmp_210_data.su op=negonly | suxwigb title="negonly " &
notion image
notion image

二元运算SUOP2

  • src/su/main/operations
  • 对两个数据集进行二元运算
difference, sum, product, quotient difference of a panel and a single trace, sum of a panel and a single trace, product of a panel and a single trace, quotient of a panel and a single trace.
 
suop2 cmp_210_data.su cmp_210_data.su op=sum suop2 cmp_210_data_signed.su cmp_210_data.su op=diff | suxwigb title="difference" &
notion image

显示数据

suxwigb < output98.su title="Test of suvlength" &

道头字段

suplane < output98.su | sugethw key=tracl,tracr,offset,dt,ns | more
suplane | suwind key=tracl min=5 max=10 | sugethw key=tracl | more

获取道地震道数据

获取某一道道数据

suplane | suwind key=tracl accept=8 max=0 > output98.su

获取偶数道数据

suplane | suwind key=tracl j=2 > output98.su

获取奇数道数据

suplane | suwind key=tracl j=2 s=1 > output98.su

时窗数据(垂向)

suplane | suwind tmin=0.1 tmax=0.14 > output98.su
suplane | suwind itmin=1 itmax=10 > output98.su
suplane | suwind nt=10 > output98.su
Options for vertical windowing (time gating):
  • tmin = 0.0 min time to pass
  • tmax = (from header) max time to pass
  • itmin = 0 min time sample to pass
  • itmax = (from header) max time sample to pass
  • nt = itmax-itmin+1 number of time samples to pass