up [pdf]
from rsf.proj import *

Fetch('wz.25.H','wz')

def grey(title):
    return '''
    window max1=3 |
    grey label1=Time label2= unit1=s crowd=0.8 labelsz=12
    title="%s"
    ''' % title

Flow('input','wz.25.H',
     'dd form=native | tpow tpow=2.7 | scale dscale=0.00000001')
Plot('input',grey('Shot Gather'))

c1=(.6,2.,1.4,2.5)
c2=(.4,1.5,-1.7,0.)
r1=(.3,.4,.6,.2)
r2=(.4,.6,.3,.7)

mask = []
for i in range(4):
    mask.append('mask%d' % i)
    Flow(mask[i],'input',
         '''
         math output="((x1-%g)/%g)^2+((x2-%g)/%g)^2" |
         mask min=1
         ''' % (c1[i],r1[i],c2[i],r2[i]))
Flow('mask',mask,'add mode=p ${SOURCES[1:4]} | dd type=float | cut min2=2.1')
Flow('maskm','mask','mutter inner=y v0=1.2')

Flow('hole','input mask','add mode=p ${SOURCES[1]}')
Plot('hole',grey('Shot Gather with Holes'))

Flow('dip0','hole',
     'math output="%g*x2/(%g*x1+0.001)" | clip clip=4' % (0.05/0.002,3.5*3.5))
Flow('dip','hole maskm dip0',
     '''
     dip mask=${SOURCES[1]} rect1=200 rect2=40 order=3 idip=${SOURCES[2]}
     pmax=4 pmin=-4
     ''')

Flow('fill','hole mask dip',
     'planemis2 dip=${SOURCES[2]} mask=${SOURCES[1]} verb=y order=3')
Plot('fill',grey('Filled'))

Result('wz-combo','input hole fill','SideBySideAniso')

End()

sfdd
sftpow
sfscale
sfwindow
sfgrey
sfmath
sfmask
sfadd
sfcut
sfmutter
sfclip
sfdip
sfplanemis2

data/wz/wz.25.H