from rsf.proj import *
Flow('modl',None,
'''
spike n1=200 o1=-8 d1=0.08 n2=4
nsp=4 k2=1,2,3,4 mag=1,2.2,3.5,5
''')
Flow('refl',None,
'''
spike n1=200 n2=4 nsp=4 k2=1,2,3,4
mag=0.0308091,0.0638570,0.1011110,0.19000000
''')
Flow('mod1','modl','window min1=0')
Flow('unif','mod1','unif2 n1=110 d1=0.05 v00=5,6,8,10,15')
Flow('mod2','unif','math output=5+2*x1')
Flow('clean','modl refl',
'''
kirmod nt=375 dt=0.004 freq=25 refl=${SOURCES[1]}
ns=12 s0=1.4 ds=-0.1
nh=64 h0=0.1 dh=0.1
vel=5 gradz=2 type=v
''')
Flow('data','clean',
'''
noise seed=1 type=y mean=0 var=0.00000004
''')
shots = []
for shot in range(0,12,5):
data = 'data%d' % shot
shots.append(data)
Plot(data,'data',
'''
window n3=1 f3=%d |
wiggle poly=y yreverse=y transp=y title="Shot %d"
''' % (shot,shot+1))
Result('data',shots,'SideBySideAniso',vppen='txscale=2.3')
v0=4
dv=0.075
nv=120
Flow('off','data','window n1=1 | math output="0.5*x1" ')
Flow('cmp','off','math output="input+x2" ')
Flow('cmpdata cmpmask','data',
'''
reverse which=4 |
put o2=0.05 d2=0.05 |
shot2cmp mask=${TARGETS[1]}
''')
Flow('scan','cmpdata cmpmask',
'''
vscan semblance=y mask=${SOURCES[1]}
v0=%g dv=%g nv=%d
''' % (v0,dv,nv))
Flow('pick','scan',
'''
mutter x0=4 inner=y v0=3 half=n |
mutter x0=4 inner=n v0=8 half=n |
pick rect1=50 rect2=100 vel0=5 | window
''')
Flow('nmo','cmpdata cmpmask pick',
'nmo mask=${SOURCES[1]} velocity=${SOURCES[2]}')
Flow('stack','nmo','stack')
Flow('onecmp','cmpdata','window f3=23 n3=1 ')
Flow('onenmo', 'nmo', 'window f3=23 n3=1 ')
Plot('onecmp', 'onecmp',
'''window f2=0 n2=12 | put o2=1 d2=1 label2=Trace unit2="" | sfwiggle poly=y yreverse=y transp=y title='a)'
''')
Plot('onenmo', 'onenmo',
'''window f2=0 n2=12 | put o2=1 d2=1 label2=Trace unit2="" | sfwiggle poly=y yreverse=y transp=y title='b)'
''')
Flow('onenmostack','onenmo','stack')
Flow('onenmostacks','onenmostack',
'''
spray axis=2 n=32
''')
Flow('weight1','onenmostacks onenmo',
'''
similarity other=${SOURCES[1]} niter=30 rect1=5 rect2=7
''')
Flow('tweight1','weight1','threshold pclip=20')
Flow('onesimistack', 'tweight1 onenmostacks onenmo',
'''
sfmath y=${SOURCES[1]} output=input*y | stack
''')
Flow('norweight1','tweight1','stack')
Flow('noronesimistack','onesimistack norweight1','sfmath y=${SOURCES[1]} output="input/(y+1)"')
Flow('snrstack','onenmo','snrstack w=15 ee=1e-1 esp=1000 ')
Plot('snrstack1','snrstack','put o2=0 label2=Amplitude unit2="" | wiggle poly=y yreverse=y transp=y title="d)"')
Plot('onenmostack1','onenmostack','put o2=0 label2=Amplitude unit2="" | wiggle poly=y yreverse=y transp=y title="c)"')
Plot('onesimistack1','onesimistack','put o2=0 label2=Amplitude unit2="" |wiggle poly=y yreverse=y transp=y title="e)"')
Result('onestack1',' onecmp onenmo onenmostack1 snrstack1 onesimistack1', 'SideBySideAniso',vppen='txscale=1.8')
Flow('wstack','stack', 'window min2=1 max2=3.8')
Plot('wstack','wstack',
'''wiggle transp=y poly=y yreverse=y title='a)'
''')
Flow('stacks', 'stack','spray axis=3 n=32 | transp plane=23')
Flow('wstacks','stacks', 'window min3=1 max3=3.8')
Flow('wnmo','nmo', 'window min3=1 max3=3.8 ')
Flow('weights', 'wnmo wstacks',
'''similarity other=${SOURCES[1]} niter=30 rect1=5 rect2=7
''')
Flow('simistack','weights wnmo',
'''
sfmath y=${SOURCES[1]} output=input*y | stack
''')
Flow('tweights','weights','threshold pclip=20')
Flow('tnormal2','tweights','stack | stack axis=1 | spray n=375 | transp | put o1=0 d1=0.004')
Flow('tsimistack1','tweights wnmo',
'''
sfmath y=${SOURCES[1]} output=input*y | stack
''')
Flow('tsimistack','tsimistack1 tnormal2','sfmath y=${SOURCES[1]} output=input/y')
Plot('tsimistack',
'''wiggle transp=y poly=y yreverse=y title='c)'
''')
Flow('snrstacks','wnmo','snrstack w=15 ee=1e-1 esp=1000 ')
Plot('snrstacks',
''' put label2="Midpoint" unit2="km" | wiggle transp=y poly=y yreverse=y s title='b)'
''')
Result('stackss','wstack snrstacks tsimistack', 'SideBySideAniso',vppen='txscale=1.8')
End() |