📄 velan.nmo.ksh
字号:
#! /bin/ksh# Velocity analyses for the cmp gathers# Authors: Dave, Jack# NOTE: Comment lines preceeding user input start with #!##set -x#!# Set parametersvelpanel=cdpby100alldata=cdp201to800.pack # if not packed, zap call to suunpack2 belowvpicks=stkvel.pnormpow=0slowness=0integer cdpmin=301integer cdpmax=800integer dcdp=200#integer dcdp=100integer ncdp=3 # window of cdps to nmo on each side of current oneinteger min max countinteger fold=30#!# Set velocity sampling.nv=51 dv=30 fv=1500f1=3 f2=6 f3=30 f4=36### Get header infonout=$(sugethw ns <$velpanel | sed 1q | sed 's/.*ns=//')dt=$(sugethw dt <$velpanel | sed 1q | sed 's/.*dt=//')dxout=$(bc -l <<-END $dt / 1000000END)### Do the velocity analyses.#print "Pick velocities by moving mouse and typing 's', type 'Q' when done"integer cdp=cdpminwhile ((cdp <= cdpmax))do ok=false while [[ $ok = false ]] do print "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 edit=false PS3='Edit velocity picks? (Select number) ' select i in yes no do case $i in (yes) edit=true break;; (no) edit=false break;; (*) print 'Invalid number';; esac done if [[ $edit = true ]] then vi par.$cdp fi print "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 look=false PS3='Look at nmo of nearby cdps? (Select number) ' select i in yes no do case $i in (yes) look=true break;; (no) look=false break;; (*) print 'Invalid number';; esac done if [[ $look = true ]] then print "Putting up nmo of nearby cdps (takes time)" min=cdp-ncdp max=cdp+ncdp count=fold*(max-min+1) d2=$(bc -l <<-END 1/$fold END) suunpack2 <$alldata | suwind key=cdp min=$min max=$max count=$count | sunmo par=par.$cdp | sugain tpow=2 gpow=0.5 | suximage f2=$min d2=$d2 \ perc=99 grid1=solid label1="Time (sec)" \ title="NMO of CMPs $min to $max" & pause continue \(may want to wait for nmo to come up\) fi PS3='Picks OK? (Select number) ' select i in yes no do case $i in (yes) ok=true break;; (no) ok=false break;; (*) print 'Invalid number';; esac done done cdp=cdp+dcdpdoneset +x### Combine the individual picks into a composite sunmo par fileprint "Editing pick files ...">$vpicksprint -n "cdp=" >>$vpickscdp=cdpminprint -n "$cdp" >>$vpickscdp=cdp+dcdpwhile ((cdp <= cdpmax))do print -n ",$cdp" >>$vpicks cdp=cdp+dcdpdoneprint >>$vpickscdp=cdpminwhile ((cdp <= cdpmax))do cat par.$cdp >>$vpicks cdp=cdp+dcdpdoneprint "sunmo par file: $vpicks is ready"### Clean upcdp=cdpminwhile ((cdp <= cdpmax))do rm mpicks.$cdp par.$cdp cdp=cdp+dcdpdonerm unisam.p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -