up [pdf]
from rsfproj import *
import uncert

Fetch('beinew.HH','midpts')
Flow('bei','beinew.HH','dd form=native | transp plane=24')

uncert.uncert('bei',
              nv=96,       # continuation steps
              v0=1.3,      # initial velocity
              dv=0.0125,   # velocity step
              nx=250,      # lateral dimension
              nh=48,        # number of offsets
              padt=1024,   # time padding
              padt2=2048,  # extra time padding
              vslope=0.67, #
              vx0=1.5,     #
              padx=521,    # lateral padding
              n1=876,      # vertical extent
              v1=1.8,      # other velocity
              dx=0.0335,   # lateral sampling
              x0=7.705,    # lateral origin
              rect1=15,    # vertical smoothing
              rect2=15)    # lateral  smoothing

Flow('left0','bei-unc','math output=x1-0.5*input')
Flow('rite0','bei-unc','math output=x1+0.5*input')
Flow('left1','bei-unc2','math output=x2-0.5*input')
Flow('rite1','bei-unc2','math output=x2+0.5*input')
Flow('left','left0 left1','cmplx ${SOURCES[:2]}',stdin=0)
Flow('rite','rite0 rite1','cmplx ${SOURCES[:2]}',stdin=0)

Flow('arr','left rite',
     'cat axis=3 ${SOURCES[1]} | transp plane=13')
Result('arr',
       '''
       window j2=4 j3=10 | put n3=1 n2=4788 |
       graph title="Structural Uncertainty"
       min1=0 max1=3 min2=7.705 max2=16.0465 pad=n
       transp=y yreverse=y
       wheretitle=b wherexlabel=t
       label1=Time unit1=s label2=Lateral unit2=km       
       ''')

Flow('scan','bei-vlf2','window n3=1 min3=10 | mutter half=n v0=0.67 x0=1.5')
Plot('scan','grey color=j allpos=y title="Semblance Scan" label1=Time unit1=s label2=Velocity unit2=km/s')

Flow('pick','scan','pick rect1=15')

def graph(col,fat):
    return '''
    graph transp=y yreverse=y min2=1.3125 max2=2.5 pad=n plotcol=%d plotfat=%d
    wantaxis=n wanttitle=n
    ''' % (col,fat)

Plot('pick0','pick',graph(0,10))
Plot('pick1','pick',graph(7,1))

Result('scan','scan pick0 pick1','Overlay')

Flow('slice','bei-vlf','window n3=1 min3=10 | mutter half=n v0=0.67 x0=1.5')
Plot('slice','grey title="Velocity Continuation" label1=Time unit1=s label2=Velocity unit2=km/s ')

Result('slice','slice pick0 pick1','Overlay')

Flow('ddv','bei-ddv','window n2=1 min2=10')
Flow('ppick','pick ddv','add ${SOURCES[1]} scale=1,0.25')
Flow('mpick','pick ddv','add ${SOURCES[1]} scale=1,-0.25')

Plot('ppick0','ppick',graph(0,10))
Plot('ppick1','ppick',graph(7,1))

Plot('mpick0','mpick',graph(0,10))
Plot('mpick1','mpick',graph(7,1))

Result('scan2','scan ppick0 mpick0 ppick1 mpick1','Overlay')

Result('slice2','slice ppick0 mpick0 ppick1 mpick1','Overlay')

Flow('smb','bei-vlf2','window n3=1 | mutter half=n v0=0.67 x0=1.5 | put unit2=km/s')
Plot('smb','grey title=Semblance wheretitle=t allpos=y wherexlabel=b')

eps = (10,50)
for rect in eps:
    pick = 'vpick%d' % rect
    Flow(pick,'smb','pick rect1=%d' % rect)
    Plot(pick,'graph pad=n transp=y yreverse=y min2=1.325 max2=2.5 title="epsilon=%g" ' % (0.01*rect))

Result('velpick','smb vpick%d vpick%d' % eps,
       'SideBySideAniso',vppen='txscale=1.5')

End()

sfdd
sftransp
sfpreconstkirch
sfhalfint
sfwindow
sfpad
sfcosft
sffourvc
sffourvc2
sfstack
sfgrey
sfmutter
sfpick
sfslice
sfagc
sfrefer
sfdip
sfscale
sfmath
sfadd
sfpwd
sfspray
sffocus
sfcmplx
sfcat
sfput
sfgraph