from rsf.proj import *
import math
p1=0.7
p2=0.7
sr=0.75
sw=7.0
sh=10.0
swc=8.0
llw=5.0
srw=1.0
numtime=1
from rsf.proj import *
Fetch('paracdp.segy','viking')
Flow('paracdp tparacdp','paracdp.segy',
'segyread tfile=${TARGETS[1]}')
Flow('cmps','paracdp',
'''
intbin xk=cdpt yk=cdp | window max1=4 |
pow pow1=2 | bandpass flo=5
''')
Result('cmpsvk','cmps',
'''
window max1=2.5 max2=40 | byte gainpanel=all |
transp plane=23 memsize=5000 |
grey3 frame1=501 frame2=1000 frame3=5
point1=0.8 point2=0.8 labelfat=4 titlefat=4
title="CMP Gathers" label2="CMP Number"
''')
Flow('offsets mask','tparacdp',
'''
headermath output=offset |
intbin head=$SOURCE xk=cdpt yk=cdp mask=${TARGETS[1]} |
dd type=float |
scale dscale=0.001
''')
Flow('maskbad','cmps',
'''
mul $SOURCE | stack axis=1 | cut n1=1 n2=1 f2=712 |
mask min=1e-20
''')
Flow('mask2','maskbad mask','spray axis=1 n=1 | mul ${SOURCES[1]}')
extract=1000
Flow('mask1','mask2','window n3=1 f3=%d squeeze=n' %extract)
Flow('cmp','cmps mask1',
'window n3=1 f3=%d | headerwindow mask=${SOURCES[1]}' % extract)
Flow('offset','offsets mask1',
'''
window n3=1 f3=%d squeeze=n |
headerwindow mask=${SOURCES[1]}
''' % extract)
Plot('cmp',
'''
grey title="CMP gather" screenratio=%g screenwd=%g screenht=%g
max1=2.5 max2=40 labelfat=4 titlefat=4
''' % (sr,swc,sh))
Flow('vscan1','cmp offset',
'''
vscan semblance=y half=n v0=1.4 nv=121 dv=0.02
offset=${SOURCES[1]}
''')
Plot('vscan1',
'''
grey color=j allpos=y title="Semblance Scan" unit2=km/s
screenratio=%g screenwd=%g screenht=%g max1=2.5 max2=3.2
labelfat=4 titlefat=4 ''' % (sr,swc,sh))
Flow('vpick1','vscan1','pick rect1=25 vel0=1.45')
Plot('vpick1',
'''
graph yreverse=y transp=y plotcol=7 plotfat=10
pad=n min2=1.4 wantaxis=n wanttitle=n
screenratio=%g screenwd=%g screenht=%g max1=2.5 max2=3.2
''' % (sr,swc,sh))
Flow('nmo1','cmp offset vpick1',
'nmo half=n offset=${SOURCES[1]} velocity=${SOURCES[2]}')
tsmooth=10
xsmooth=5
Flow('pxsmooth','cmp',
'''
window squeeze=n |
dip2 rect1=%d rect2=%d order=5
''' % (tsmooth,xsmooth))
Flow('timecube','cmp','math output="x1"')
it1 = 495
it2 = 535
Flow('pick','pxsmooth',
'''
pwpaint i0=0 verb=y |
clip2 lower=0 upper=4
''')
Flow('t0.asc',None,'echo %g %g n1=2 data_format=ascii_float in=$TARGET' % (it1,it2))
Flow('t0','t0.asc','dd form=native | math output="(input-1)*0.004" ')
Plot('pick','pick t0',
'''
contour wanttitle=n wantaxis=n plotfat=5
screenratio=%g screenwd=%g screenht=%g
cfile=${SOURCES[1]} flat=y max1=2.5 max2=40
''' % (sr,swc,sh),local=1)
Result('pickvk','cmp pick','Overlay')
Flow('flat','cmp pick','iwarp warp=${SOURCES[1]} eps=1')
Flow('warpedtime','timecube pick','iwarp warp=${SOURCES[1]} eps=1')
Flow('pickedtime','pick','iwarp warp=$SOURCE eps=1')
Flow('moveout','timecube warpedtime','math time=${SOURCES[0]} warpt=${SOURCES[1]} output="warpt^2-time^2" | put d4="0" |clip2 lower=0')
Flow('count.asc',None,'echo %g %g n1=2 data_format=ascii_float in=$TARGET' % (it1,it2))
Flow('count','count.asc','dd form=native | math output="(input-1)*0.004" ')
Flow('limitx.asc',None,
'''
echo %g %g n1=2 data_format=ascii_float in=$TARGET
''' % (1.8,2.2))
Flow('limitx','limitx.asc','dd form=native ')
Flow('maxx','count','math output="3" ')
Flow('timecubepicked',['timecube','count'], 'put d4=0| inttest1 coord=${SOURCES[1]} interp=lag nw=2')
Flow('warpedtimepicked',['warpedtime','count'], 'inttest1 coord=${SOURCES[1]} interp=lag nw=2')
Flow('timewarpsq','warpedtimepicked',' math output="input^2"| transp plane=13 | transp plane=12')
Flow('t0sqcube','timecubepicked',' math output="input^2" | transp plane=13 | transp plane=12 ')
def arr2str(array,sep=' '):
return sep.join(map(str,array))
sW1=0.08;lW1=0.5;
sA1=0.0;lA1=0.0;
sB1=0.0;lB1=0.0
sC1=0.0;lC1=0.0;
ssig=0.01; lsig=10;
rangepar = (sW1,lW1,sA1,lA1,sB1,lB1,sC1,lC1)
trangepar = (sW1,lW1,sA1,lA1,sB1,lB1,sC1,lC1,ssig,lsig)
Flow('range.asc',None,
'''
echo %s
n1=%d o1=0 d1=1
data_format=ascii_float in=$TARGET
''' % (arr2str(rangepar),8) )
Flow('trange.asc',None,
'''
echo %s
n1=%d o1=0 d1=1
data_format=ascii_float in=$TARGET
''' % (arr2str(trangepar),10) )
Flow('rangecoeff','range.asc','dd form=native')
Flow('trangecoeff','trange.asc','dd form=native')
ntime=numtime
nmodel=20000
Flow('timewarpsqcut','timewarpsq','window n2=%d f3=0' %ntime)
Flow('t0sqcubecut','t0sqcube','window n2=%d f3=0' %ntime)
prog = Program('../mcmc2D/Mnmomcmctrans.c')
sc = str(prog[0])
list = ['0.1','0.5','1','2','5','10','25','50']
for i in range(8):
inum=float(list[i])
istr=str(i)
Flow('histshort'+istr,['timewarpsqcut','t0sqcubecut','rangecoeff','limitx','offset',sc],
'''
${SOURCES[5]} seed=62007 nmodel=%d saveiter=100 prior=n sdperc=%f
t0sq=${SOURCES[1]} rangecoef=${SOURCES[2]} limitx=${SOURCES[3]} offsetx=${SOURCES[4]}
''' %(nmodel,inum))
Flow('mu'+istr,'histshort'+istr,'window n1=1 | stack axis=1 | math output="sqrt(1/input)"')
Plot('mu'+istr,'count mu'+istr,
'''
cat ${SOURCES[1]} axis=2 | transp | dd type=cmplx |
graph yreverse=y transp=y plotcol=%d plotfat=10
pad=n wantaxis=n wanttitle=n symbol=+ symbolsz=5 min2=1.4
screenratio=%g screenwd=%g screenht=%g min1=0 max1=2.5 max2=3.2
''' % (i,sr,swc,sh))
Flow('rms','timewarpsqcut','stack axis=1 rms=y')
Flow('thistshort',['timewarpsqcut','t0sqcubecut','trangecoeff','limitx','offset','rms',sc],
'''
${SOURCES[6]} seed=10900 nmodel=%d saveiter=500 prior=n datrms=${SOURCES[5]}
t0sq=${SOURCES[1]} rangecoef=${SOURCES[2]} limitx=${SOURCES[3]} offsetx=${SOURCES[4]}
''' %(nmodel))
Flow('tW','thistshort','window n1=1 f1=0')
Flow('tA','thistshort','window n1=1 f1=1')
Flow('tB','thistshort','window n1=1 f1=2')
Flow('tC','thistshort','window n1=1 f1=3')
Flow('tmu','thistshort','window n1=1 | stack axis=1 | math output="sqrt(1/input)" ')
Plot('tmu','count tmu',
'''
cat ${SOURCES[1]} axis=2 | transp | dd type=cmplx |
graph yreverse=y transp=y plotcol=0 plotfat=6 labelfat=4 titlefat=4
pad=n wantaxis=n wanttitle=n symbol=+ symbolsz=5 min2=1.4
screenratio=%g screenwd=%g screenht=%g min1=0 max1=2.5 max2=3.2
''' % (sr,swc,sh))
Result('vscanvk','vscan1 vpick1 tmu','Overlay')
End()
|