up [pdf]
from rsf.proj import *

spike = '''
spike 
n1=101 d1=0.05 label1=x unit1=km
n2=101 d2=0.05 label2=y unit2=km
n3=101 d3=0.05 label3=z unit3=km
'''

Flow('mod',None,spike)
Flow('time0','mod',
     'math output="sqrt(x1^2+(x2-2.5)^2+(x3-1.5)^2)" ')
Flow('mask','mod','dd type=int | cut n1=2')

Flow('const','time0 mod mask',
     'lineiko slow=${SOURCES[1]} mask=${SOURCES[2]} niter=10')

Flow('box','mod',
     spike + '''
     k1=51 k2=51 k3=51 mag=10000 |
     smooth rect1=20 rect2=20 rect3=20 |
     add $SOURCE
     ''',stdin=0)

Flow('linear','time0 box mask',
     '''
     lineiko niter=10 slow=${SOURCES[1]} mask=${SOURCES[2]} tol=0.0001
     ''')
Flow('mihai','box',
     '''
     math output=1/input |
     eikonal xshot=1.5 yshot=2.5 zshot=0 order=1
     ''')

for case in ('linear','mihai'):
    Result(case,
           '''
           contour3 frame1=50 frame2=50 frame3=50
           nc=50 dc=0.2 c0=0.1 
           wanttitle=n screenratio=1
           ''')

End()

sfspike
sfmath
sfdd
sfcut
sflineiko
sfsmooth
sfadd
sfeikonal
sfcontour3