proj import *
#from rsf.recipes.beg import server
import math
######################
#Plotting Information#
######################
frame1d=250
frame1t=800
frame2=300
frame3=350
#Plotting Ratio
volpt2 = .7
def grey3(byte,color,title,label,frame1,frame2,frame3,point2):
return '''
byte gainpanel=all %s mean=y |
grey3 flat=n frame1=%i frame2=%i frame3=%i
color=%s title="%s" label1="%s" point2=%g
''' % (byte,frame1,frame2,frame3,color,title,label,point2)
#Get data
Fetch('ordovician-vp.HH','xavier')
Flow('vp','ordovician-vp.HH',
'''
dd form=native |
transp plane=12 memsize=%i |
put o1=0 o2=0 o3=0
label1="Z Depth" label2="X Inline" label3="Y Crossline"
unit1=m unit2=m unit3=m
'''%(memsize))
Flow('vpbar','vp','bar gainpannel=a allpos=y min=3500 max=6500')
Plot('vp','vp vpbar',
'''
byte allpos=y min=3500 max=6500|
grey3 title=Velocity color=a barlabel=Velocity barunit="m/s"
frame1=%i frame2=%i frame3=%i flat=n
scalebar=y bar=${SOURCES[1]} point2=%g
'''%(frame1d,frame2,frame3,volpt2))
Result('vp','vp vpbar',
'''
put label2=Inline label3=Crossline unit2=km unit3=km
d2=.025 d3=.025 label1=Depth|
byte allpos=y min=3500 max=6500|
grey3 title="Ordovician Velocity" color=a barlabel=Velocity
barunit="m/s"
frame1=%i frame2=%i frame3=%i flat=n
scalebar=y bar=${SOURCES[1]} point2=%g
'''%(frame1d,frame2,frame3,volpt2))
#smooth slowness
Flow('vp_s','vp',
'''
math output="1/input" |
smooth rect1=%i rect2=%i rect3=%i|
math output="1/input"
'''%(srect1,srect2,srect3))
#Calculate Reflectivity
#No density data with model
Flow('refl','vp','ai2refl')
Flow('refl_t','refl vp',
'''
depth2time velocity=${SOURCES[1]} dt=%g nt=%i
'''%(dt,nt))
Flow('model','refl_t vp',
'''
ricker1 frequency=%g |
time2depth velocity=${SOURCES[1]}
dz=%g nz=%i
''' %(freq,dz,nz))
Plot('model',
'''
put label2=Inline d2=.025 unit2=km
label3=Crossline d3=.025 unit3=km|
byte|
grey3 title="20 Hz Convolution"
frame1=%i frame2=%i frame3=%i flat=n
point2=%g
'''%(frame1d,frame2,frame3,volpt2))
Flow('exp','model left2 right2',
'''
fftexp3 ompchunk=1
left=${SOURCES[1]} right=${SOURCES[2]}
nt=%i dt=%g
''' %(nt,dt))
Flow('exp0','exp',
'''
transp plane=13 memsize=%i|
transp plane=23 memsize=%i|
put n4=1 d4=25 label4=offset unit4=m
'''%(memsize,memsize))
Plot('exp0',
'''
put label1=Time unit1=ms d1=.25
label2=Inline d2=.025 unit2=km
label3=Crossline d3=.025 unit3=km|
byte|
grey3 title="Modeled Data"
frame1=%i frame2=%i frame3=%i flat=n
point2=%g
'''%(frame1t,frame2,frame3,volpt2))
Result('exp0',
'''
put label1=Time unit1=s d1=.00025
label2="Inline" d2=.025 unit2=km
label3="Crossline" d3=.025 unit3=km|
byte|
grey3 title="Modeled Data"
frame1=%i frame2=%i frame3=%i flat=n
point2=%g
'''%(frame1t,frame2,frame3,volpt2))
mig = ['exp0','reflections','diffractions']
for item in mig:
Flow(item+'-mig',[item,'left2_s','right2_s'],
'''
reverse which=1 |
transp plane=12 memsize=%i|
transp plane=23 memsize=%i|
fftexp3 mig=y ompchunk=1
left=${SOURCES[1]} right=${SOURCES[2]}
nz=%d dz=%g
''' %(memsize,memsize,nz,dz))
Plot(item+'-mig',
'''
put label1=Time unit1=ms d1=.25
label2=Inline d2=.025 unit2=km
label3=Crossline d3=.025 unit3=km|
byte|
grey3 title="%s"
frame1=%i frame2=%i frame3=%i flat=n
point2=%g
'''%(item,frame1d,frame2*2/5,frame3*2/5,volpt2))
Result('exp0-mig',
'''
put
label2=Inline d2=.025 unit2=km
label3=Crossline d3=.025 unit3=km|
byte|
grey3 title="Conventional Image"
frame1=%i frame2=%i frame3=%i flat=n
point2=%g
'''%(frame1d,frame2,frame3,volpt2))
Result('diffractions-mig',
'''
put
label2=Inline d2=.025 unit2=km
label3=Crossline d3=.025 unit3=km|
byte gainpanel=a|
grey3 title="Diffraction Image"
frame1=%i frame2=%i frame3=%i flat=n
point2=%g
'''%(frame1d,frame2,frame3,volpt2))
##############################################
# create prediction volume of migrated image #
##############################################
Flow('image_slope','exp0-mig',
'''
dip rect1=%i rect2=%i rect3=%i order=4
'''%(rect1d,rect2,rect3))
Flow('image_slope_bar','image_slope','bar gainpannel=a')
Plot('image_slope_I','image_slope image_slope_bar',
'''
window n4=1|
put label1=Time unit1=ms d1=.25
label2=Inline d2=.05 unit2=km
label3=Crossline d3=.05 unit3=km|
byte gainpannel=a|
grey3 title="Inline Image Slope" color=j
frame1=%i frame2=%i frame3=%i flat=n
scalebar=y bar=${SOURCES[1]} point2=%g
barlabel=Slope
'''%(frame1t,frame2/5,frame3/5,volpt2))
Plot('image_slope_X','image_slope image_slope_bar',
'''
window n4=1 f4=1|
put label1=Time unit1=ms d1=.25
label2=Inline d2=.05 unit2=km
label3=Crossline d3=.05 unit3=km|
byte gainpannel=a|
grey3 title="Crossline Image Slope" color=j
frame1=%i frame2=%i frame3=%i flat=n
scalebar=y bar=${SOURCES[1]} point2=%g
barlabel=Slope
'''%(frame1t,frame2/5,frame3/5,volpt2))
#prediction volume
Flow('slope_spray','exp0-mig image_slope',
'pwspray2 ns2=%d ns3=%d dip=${SOURCES[1]}'% (ns2,ns3))
# Prediction error
Flow('copy','exp0-mig','spray axis=2 n=25 d=25 o=0')
Flow('sweight','copy slope_spray',
'''
similarity other=${SOURCES[1]} rect1=10 rect4=1 | math
output=1/input
''')
Flow('diff','exp0-mig slope_spray',
'''
spray axis=2 n=25 d=25 o=0|
add scale=1,-1 ${SOURCES[1]}
''')
Flow('diff2','diff','mul $SOURCE')
# coherence
for box in range(2,6):
coh = 'cohP%d' % box
Flow(coh,'diff2',
'''
transp plane=12 | spray axis=2 n=1 | put n1=%d n2=%d |
boxsmooth rect1=%d | boxsmooth rect2=%d |
window f1=%d f2=%d |
stack axis=2 min=y | stack axis=1 min=y
''' % (2*ns2+1,2*ns3+1,box,box,box-1,box-1))
End()