1. 数据格式转化sgy转su显示前6炮2. 球面扩散补偿第一种:自动增益控制第二种:时间的n次方实现球面扩散的补偿加权3. 数据去噪4. 反褶积自相关计算反褶积计算振幅增益处理5. 速度分析1. 数据抽取到CMP道集2. 速度分析6.动校正和叠加6.1 动校正补充:反NMO6.2 叠加7. 剩余静校正8. 偏移成像速度分析知识点suvelan生成速度分析文件绘图绘图读取su数据
1. 数据格式转化
sgy转su
- 生成地震数据data.su和到道头文件 header和binary,二者文件名为默认。
- 该数据基本信息如下
- 数据名:data.sgy;
- 采样间隔:2ms;
- 采样点:1501;
- 检波器点间距:67m;
- 每炮道数:33;
- 跑数:18;
- 总道数594;
segyread tape=data.sgy verbose=1 endian=0 | segyclean > data.su
- segyclean:zero out unassigned portion of header
- conv=0:tells the program not to attempt the IBM to float conversion.
显示前6炮
suwind < data.su key=ep min=1 max=6 | suxwigb
2. 球面扩散补偿
第一种:自动增益控制
sugain < data.su agc=1 wagc=0.5 > data-agc.su
数据质量控制
suwind < data-agc.su key=ep min=1 max=6 | suxwigb
地震数据的AGC显示
第二种:时间的n次方实现球面扩散的补偿加权
sugain < data.su agc=0 tpow=2.0 qclip=0.95 qbal=1 > data-tm.su
数据质量控制
suwind < data-tm.su key=ep min=1 max=6 | suxwigb
地震数据的增益显示
3. 数据去噪
傅里叶变换,振幅谱计算
suspecfx < data-tm.su > data-tm-as.su
振幅谱显示
suwind < data-tm-as.su key=ep min=1 max=6 | suxwigb
数据频谱
频率域滤波
sufilter < data-tm.su f=15,20,50,60 > data-tm-flt.su
对上述数据显示
suwind < data-tm-flt.su key=ep min=1 max=6 | suxwigb
滤波后的地震数据
4. 反褶积
自相关计算
suacor < data-tm-flt.su ntout=1001 sym=0 > data-tm-flt-ac.su
对上述数据显示
suwind < data-tm-flt-ac.su key=ep min=1 max=6 | suxwigb
地震数据自相关结果
计算的数据不包括多次波,反褶积计算只进行脉冲反褶积即可。
反褶积计算
脉冲反褶积计算
supef < data-tm-flt.su > data-tm-flt-dec.su minlag=0.002 maxlag=0.2 pnoise=0.001 mincorr=0 maxcorr=3
- minlag=0.002s,为预测步长ɑ;
- maxlag=0.2s,滤波算子的长度,到自相关谱的第一过渡带;
- pnoise=0.001,设置谱白化的百分比ε为0.1%;
- mincorr=0s and maxcorr=3s,设置的自相关窗口的宽度;
对上述数据显示
suwind < data-tm-flt-dec.su key=ep min=1 max=6 | suxwigb
地震数据的反褶积结果
振幅增益处理
sugain < data-tm-flt-dec.su > data-tm-flt-dec-bal.su qbal=1 qclip=0.95
对上述数据显示
suwind < data-tm-flt-dec-bal.su key=ep min=1 max=6 | suxwigb
反褶积结果的增益显示
5. 速度分析
速度分析是求取应用于动校正叠加速度的模块。速度分析首先要将数据抽取至CMP道集。
1. 数据抽取到CMP道集
- 数据抽取到CMP道集
susort < data-tm-flt-dec-bal.su > data-tm-flt-dec-bal-cdp.su cdp offset
- 对上述数据显示,CMP范围为231~240
suwind < data-tm-flt-dec-bal-cdp.su key=cdp min=231 max=240 | suxwigb
数据的CDP道集显示
2. 速度分析
通过修改SU提供的shell脚本,交互实现速度分析过程,到SU安装目录下,如
/opt/cwp/src/su/examples/Velan
,将脚本拷到自己的目录下/opt/seismic
目录下,编辑内容,修改以下参数#! /bin/sh # Velocity analyses for the cmp gathers # Authors: Dave, Jack # NOTE: Comment lines preceeding user input start with #!# #set -x #!# Set parameters velpanel=/opt/seismic/data-tm-flt-dec-bal-cdp.su vpicks=/opt/seismic/stkvel.p1 normpow=0 slowness=0 cdpmin=225 cdpmax=250 dcdp=5 fold=30 #!# Set velocity sampling and band pass filters nv=51 dv=200 fv=1500 f1=15 f2=20 f3=50 f4=60 ### Get header info nout=`sugethw ns <$velpanel | sed 1q | sed 's/.*ns=//'` dt=`sugethw dt <$velpanel | sed 1q | sed 's/.*dt=//'` dxout=`bc -l <<END $dt / 1000000 END` ### Do the velocity analyses. echo "Pick velocities by moving mouse and typing 's', type 'Q' when done" cdp=$cdpmin while [ $cdp -le $cdpmax ] do ok=false while [ $ok = false ] do echo "Starting velocity analysis for cdp $cdp" suwind <$velpanel key=cdp min=$cdp max=$cdp count=$fold | sugain tpow=2 | sufilter f=$f1,$f2,$f3,$f4 | suvelan nv=$nv dv=$dv fv=$fv \ normpow=$normpow slowness=$slowness | suximage bclip=0.2 wclip=0.0 f2=$fv d2=$dv \ label1="Time (sec)" label2="Velocity (m/sec)" \ title="Velocity Scan for CMP $cdp" \ grid1=solid grid2=solid cmap=default \ mpicks=mpicks.$cdp sort <mpicks.$cdp -n | mkparfile string1=tnmo string2=vnmo >par.$cdp echo "Putting up velocity function for cdp $cdp" sed <par.$cdp ' s/tnmo/xin/ s/vnmo/yin/ ' >unisam.p unisam nout=$nout fxout=0.0 dxout=$dxout \ par=unisam.p method=spline | xgraph n=$nout nplot=1 d1=$dxout f1=0.0 \ label1="Time (sec)" label2="Velocity (m/sec)" \ title="Stacking Velocity Function: CMP $cdp" \ grid1=solid grid2=solid \ linecolor=2 style=seismic & pause echo "Picks OK? (y/n)" | tr -d "\012" >/dev/tty read response case $response in n*) ok=false ;; *) ok=true ;; esac done </dev/tty cdp=`bc -l <<END $cdp + $dcdp END` done set +x ### Combine the individual picks into a composite sunmo par file echo "Editing pick files ..." >$vpicks echo "cdp=" | tr -d "\012" >>$vpicks cdp=$cdpmin echo "$cdp" | tr -d "\012" >>$vpicks cdp=`bc -l <<END $cdp + $dcdp END` while [ $cdp -le $cdpmax ] do echo ",$cdp" | tr -d "\012" >>$vpicks cdp=`bc -l <<END $cdp + $dcdp END` done echo >>$vpicks cdp=$cdpmin while [ $cdp -le $cdpmax ] do cat par.$cdp >>$vpicks cdp=`bc -l <<END $cdp + $dcdp END` done echo "sunmo par file: $vpicks is ready" ### Clean up cdp=$cdpmin while [ $cdp -le $cdpmax ] do rm mpicks.$cdp par.$cdp cdp=`bc -l <<END $cdp + $dcdp END` done rm unisam.p
运行Velan,生成速度谱
CMP是225的速度谱显示,黑色高亮部分表示高能量点,移动鼠标到高亮点,按S键,则表示都该点数据进行拾取,一次拾取速度谱上的不同深度高点,完成拾取,按Q退出。当拾取完成,速度存储在文件
stkvel.p1
中。6.动校正和叠加
6.1 动校正
sunmo < data-tm-flt-dec-bal-cdp.su > data-tm-flt-dec-bal-cdp-nmo.su \ 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 \
显示CMP231到240的CMP道集
suwind < data-tm-flt-dec-bal-cdp-nmo.su key=cdp min=231 max=240 | suxwigb
动校正后的道集指控可以判断分析获得的书读的准确性,当道集平直说明速度准确,道集下弯,水命速度偏小,速度上翘,说明速度偏大。速度不准确时,重复速度分析步骤,直到速度准确。
补充:反NMO
- 根据动校正结果反推CMP道集数据
sunmo < data-tm-flt-dec-bal-cdp-nmo.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 | suxwigb
6.2 叠加
sustack < data-tm-flt-dec-bal-cdp-nmo.su > data-tm-flt-dec-bal-cdp-nmo-stack.su
显示
suxwigb < data-tm-flt-dec-bal-cdp-nmo-stack.su
7. 剩余静校正
第一步,将动校正后的CMP道集分选到炮集
susort < data-tm-flt-dec-bal-cdp-nmo.su > data-tm-flt-dec-bal-cdp-nmo-fldr.su fldr offset
显示分选后1到6炮集数据
suwind < data-tm-flt-dec-bal-cdp-nmo-fldr.su key=ep min=1 max=6 | suxwigb
第二步,剩余静校正量的计算,计算获得泡点和检波点剩余静校正量。(计算一段时间)
suresstat < data-tm-flt-dec-bal-cdp-nmo-fldr.su ssol=sstats rsol=rstats \ ntraces=594 ntpick=50 niter=19 nr=33 nc=594 sfold=33 rfold=18 cfold=18
第三步,应用剩余静校正量到动校正的CMP道集数据中。
sustatic < data-tm-flt-dec-bal-cdp-nmo.su > data-tm-flt-dec-bal-cdp-nmo-stat.su \ hdrs=3 sou_file=sstats rec_file=rstats ns=19 nr=65
第四步,显示
suwind < data-tm-flt-dec-bal-cdp-nmo-stat.su key=cdp min=231 max=240 | suxwigb
8. 偏移成像
地震便宜成像是地震数据处理的核心模块,片以前的处理统称为数据准备,偏移计算称为数据成像。偏移可分为叠前便宜和叠后偏移。地欸去哪便宜的输入数据是没进行叠加的道集数据,数据量大,计算强度大。这里实在叠后进行,属于叠后偏移。
如果输入速度为深度域层速度,则偏移成为深度偏移;如果应用前述速度分析的叠加速度,多陈伟时间偏移,这里时时间偏移计算。
偏移算法很多,这里应用的是一种F-K域的常速度偏移方法,时solt提出的,因此称为solt偏移。
sustolt < data-tm-flt-dec-bal-cdp-nmo-stat.su cdpmin=210 cdpmax=260 \ dxcdp=110 smig=0.6 \ tmig=0.0734095,0.293638,0.626427,0.969005,1.32137,1.69821,1.98206,2.32953,2.64274,2.83361 \ vmig=5232.56,5744.19,6534.88,7232.56,8000,8651.16,9558.14,10744.2,11534.9,12930.2 \ | sugain qclip=0.98 > data-tm-flt-dec-bal-cdp-nmo-stat-mig.su
显示
suxwigb < data-tm-flt-dec-bal-cdp-nmo-stat-mig.su
因为该数据多为平层,偏移效果并不特别显著。
速度分析知识点
sustatic < data-tm-flt-ac.su pfile=offset_velocity.txt > output.su
suwind < data.su key=offset,vel | suchw key=vel,offset > offset_velocity_mapping.su
suwind < output_data.su key=cdp min=231 max=240 | suxwigb
suvelan生成速度分析文件
suvelan < data-tm-flt-dec-bal-cdp.su cdpmin=225 nv=51 dv=200 fv=1500 f1=15 f2=20 f3=50 f4=60 > output_data.su
绘图
suwind < output_data.su key=cdp min=231 max=240 | suxcontour nc=15 fc=.4 bclip=0.5 wclip=0.0 f2=$fv d2=$dv \ label1="Time (sec)" label2="Velocity (ft/sec)" \ title="Velocity Scan for CMP $cdp" \ windowtitle="V-Scan: $cdp" legend=1 units="semblance" \ cmap=default \ wbox=$WIDTH hbox=$HEIGHT xbox=$WIDTHOFF1 ybox=$HEIGHTOFF1 &
绘图
suwind < data-tm-flt-dec-bal-cdp.su key=cdp min=231 max=240 | suvelan nv=51 dv=200 fv=5000 | suxcontour nc=15 fc=.4 bclip=0.5 wclip=0.0 f2=5000 d2=200 \ label1="Time (sec)" label2="Velocity (ft/sec)" \ title="Velocity Scan for CMP $cdp" \ windowtitle="V-Scan: $cdp" legend=1 units="semblance" \ cmap=default \ wbox=$WIDTH hbox=$HEIGHT xbox=$WIDTHOFF1 ybox=$HEIGHTOFF1 &
sugain < data-tm-flt-dec-bal-cdp.su key=offset,vel | sustrip > offset_velocity_mapping.txt
suvelan < data-tm-flt-dec-bal-cdp.su > velocity_analysis.su
suchw key=offset,cdp < data-tm-flt-dec-bal-cdp.su | sugethw key=cdp,offset < velocity_analysis.su > analysis_results.txt
suwind < data-tm-flt-dec-bal-cdp.su key=offset | sugethw key=offset > analysis_results.txt
suwind < data-tm-flt-dec-bal-cdp.su key=cdp | suchw key=offset < velocity_analysis.su | paste - velocity_data.txt
suaddhead < data-tm-flt-dec-bal-cdp.su ns=501suchw key1=tracl key2=ep < velocity_data.su | sugethw key=tracl,vs,vp,time | sed 's/\t/ /g' > velocity_info.txt | suchw key1=tracl key2=ep | suvelan nv=300 dv=10 < /dev/stdin > velocity_data.su
读取su数据
sugethw key=tracl,tracr,offset,dt,ns < data-tm-flt-dec-bal-cdp.su
读出数据,写入文件
suchw key1=tracl key2=ep <output_data.su | sugethw key=tracl,tracr,offset,dt,ns,sx | sed 's/\t/ /g' > velocity_info.txt
suchw key1=tracl key2=offset <output_data.su | sugethw key=dt,sx,offset | sed 's/\t/ /g' > velocity_info.txt
segyread tape=data.sgy > output711.txt