up [pdf]
from rsf.proj import *
# an example of three-dimensional data
name = 'fault'
Fetch('midpts.hh','midpts')
Flow(name,'midpts.hh','dd form=native | put d2=0.067 o2=0.132')

# plot prestack data with flat 3d plot
Result(name,
    '''
    transp plane=23|
    byte |
    grey3 frame1=333 frame2=75 frame3=1 
    title="Prestack Data"
    ''')
# plot prestack data with cubic 3d plot
Result(name+'-cube',name,
    '''
    transp plane=23|
    byte |
    grey3 frame1=333 frame2=75 frame3=1 
    title="Prestack Data" flat=n
    point1=.6 point2=.7
    ''')
# velocity semblance scan for flattening gathers
scn = name+'-scn'
Flow(scn,name,
    '''
    mutter v0=1.4|
    vscan semblance=y v0=1.4 nv=51 dv=0.025
    ''')
# determine semblance scalebar
Flow(scn+'-bar',scn,'bar gainpanel=a allpos=y')
Result(scn,[scn,scn+'-bar'],
   '''
   byte gainpanel=a  allpos=y| 
   grey3 frame1=500 frame2=25 frame3=0
   title="Semblance Scan" color=j flat=n
   movie=3 dframe=15
   point1=.6 point2=.7
   scalebar=${SOURCES[1]} barlabel=Semblance
   ''')

# pick velocity corresponding to maximum semblance
vel = name+'-vel'
rect1=40
rect2=15
Flow(vel,scn,
    '''
    mutter x0=1.5 v0=.67 half=n|
    sfpick rect1=%i rect2=%i
    window
    '''%(rect1,rect2))
Result(vel,'grey color=j scalebar=y title="NMO Velocity" barunits="m/s" mean=y')


# nmo correction on data
nmo = name+'-nmo'
Flow(nmo,[name,vel],
    '''
    mutter v0=1.4 |
    nmo velocity=${SOURCES[1]}
    ''')
Result(nmo,
    '''
    transp plane=23|
    byte gainpanel=a|
    grey3 frame1=333 frame2=75 frame3=1 
    title="NMO Data" flat=n
    point1=.6 point2=.7
    ''')
# stack nmo data
stk = name+'-stk'
Flow(stk,nmo,'stack axis=2')
Result(stk,'grey title="NMO Stack"')
End()

sfdd
sfput
sftransp
sfbyte
sfgrey3
sfmutter
sfvscan
sfbar
sfpick
sfgrey
sfnmo
sfstack

data/midpts/midpts.hh