next up previous [pdf]

Next: Writing a report Up: Maurice: Tutorial Previous: Separating primaries and multiples

Field data application

from rsf.proj import *

# Download one CMP gather from Viking Graben 
Fetch('cmp.HH','viking')

Flow('cmp','cmp.HH','dd form=native')
Plot('cmp','grey title="CMP Gather" clip=8.66')

Flow('rad','cmp','hypradon adj=y np=101 dp=0.01 op=0')
Plot('rad',
     '''
     grey title="Hyperbolic Radon Transform" 
     label2=Slowness unit2=s/km
     ''')

Flow('adj','rad',
     'hypradon adj=n nx=60 dx=0.05 ox=0.287')
Plot('adj','grey title="Adjoint Hyperbolic Radon Transform" ')

Result('adj','cmp rad adj','SideBySideAniso')

Flow('inv','cmp rad',
     '''
     conjgrad hypradon mod=${SOURCES[1]} 
     np=101 dp=0.01 op=0 nx=60 dx=0.05 ox=0.287 niter=10
     ''')
Plot('inv',
     '''
     grey title="Hyperbolic Radon Transform" 
     label2=Slowness unit2=s/km
     ''')

Flow('cmp2','inv',
     'hypradon adj=n nx=60 dx=0.05 ox=0.287')
Plot('cmp2',
     'grey title="Inverse Hyperbolic Radon Transform" clip=8.66')

Result('inv','cmp inv cmp2','SideBySideAniso')

# Velocity scan

Flow('vscan','cmp',
     'vscan semblance=y half=n v0=1.2 nv=131 dv=0.02')
Plot('vscan',
     'grey color=j allpos=y title="Semblance Scan" unit2=km/s')

# Automatic pick

Flow('vpick','vscan',
     '''
     mutter inner=y x0=1.4 half=n v0=0.45 t0=0.5 | 
     pick rect1=50 vel0=1.5
     ''')
Plot('vpick',
     '''
     graph yreverse=y transp=y plotcol=7 plotfat=7 
     pad=n min2=1.2 max2=3.8 wantaxis=n wanttitle=n
     ''')

Plot('vscan2','vscan vpick','Overlay')

# NMO

Flow('nmo','cmp vpick','nmo half=n velocity=${SOURCES[1]}')
Plot('nmo','grey title="NMO with Primary Velocity" clip=9.83')

Result('vscan2','cmp vscan2 nmo','SideBySideAniso')

Flow('nmorad0','cmp',
     'hypradon adj=y np=161 dp=0.005 op=0')
Flow('nmorad','nmo nmorad0',
     '''
     conjgrad hypradon mod=${SOURCES[2]} 
     np=161 dp=0.005 op=0 nx=60 dx=0.05 ox=0.287 niter=10
     ''')
Plot('nmorad',
     '''
     grey title="Hyperbolic Radon Transform" 
     label2=Slowness unit2=s/km
     ''')

Flow('nmo2','nmorad',
     'hypradon adj=n nx=60 dx=0.05 ox=0.287')
Plot('nmo2',
     'grey title="Inverse Hyperbolic Radon Transform" clip=9.83')

Result('nmorad','nmo nmorad nmo2','SideBySideAniso')

Flow('cut','nmorad','cut min2=0.2')
Plot('cut',
     '''
     grey title="Hyperbolic Radon Transform" 
     label2=Slowness unit2=s/km
     ''')

Flow('signal','cut',
     'hypradon adj=n nx=60 dx=0.05 ox=0.287')
Plot('signal',
     'grey title="Inverse Hyperbolic Radon Transform" clip=9.83')

Result('nmocut','nmo cut signal','SideBySideAniso')

# Inverse NMO

Flow('inmo','signal vpick',
     'inmo half=n velocity=${SOURCES[1]} | mutter half=n v0=1.2')
Plot('inmo','grey title=Signal clip=8.66')

Flow('pvscan','inmo',
     'vscan semblance=y half=n v0=1.2 nv=131 dv=0.02')
Plot('pvscan',
     'grey color=j allpos=y title="Primary Semblance Scan" ')

Flow('mult','cmp inmo','add scale=1,-1 ${SOURCES[1]}')
Plot('mult','grey title=Noise clip=8.66')

Flow('mvscan','mult',
     'vscan semblance=y half=n v0=1.2 nv=131 dv=0.02')
Plot('mvscan',
     'grey color=j allpos=y title="Multiples Semblance Scan" ')

Result('inmo','cmp inmo mult','SideBySideAniso')
Result('pvscan','vscan pvscan mvscan','SideBySideAniso')

End()


next up previous [pdf]

Next: Writing a report Up: Maurice: Tutorial Previous: Separating primaries and multiples

2017-07-21