next up previous [pdf]

Next: About this document ... Up: Amoco model Previous: Shots

FD Modeling

Madagascar can perform finite difference modeling on the Amoco Velocity model. This is done using the function fdmod found within the program The raw velocity model needs to be formatted in a similar fashion to the Model Section of this paper.

For the purposes of this example a shot will be fired at 10 km along the horizontal coordinate and at a depth of 10 meters. Receivers are spread at a depth of 25 meters every 12.5 meters along the entire scope of the model. This 22 km long receiver cable is impractical but useful for these purposes. Data is recorded on every receiver at time increments of 1 ms 5000 times resulting in 5 seconds of data.

An SConstruct file located within amoco/fdmod/ properly formats the model and inputs necessary parameters to perform a shot on the Amoco model. This file is reproduced below in Table 6.

from rsf.proj import *
import fdmod
# Fetch Files from repository
Fetch("velsmooth.HH","Amoco")
Fetch("velmodel.hh","Amoco")
# Convert Files to RSF
Flow('velsmooth','velsmooth.HH', '''dd form=native | put
    unit1=km unit2=km label1=Depth Z label2=Position title=Velocity Model''')
Flow('velmodel','velmodel.hh', '''dd form=native | scale 
    rscale=.001 | put
    unit1=km unit2=km label1=z label2=x title='' ''')
# Make image of velocity model
Result('model','velmodel',
       '''
       grey scalebar=y barreverse=y
       color=j gainpanel=a allpos=y bias=1.9
       screenwd=8.8 screenht=1.6
       barlabel=" " barunit=km/s wanttitle=n
       labelsz=4
       ''')
# ------------------------------
par = {
    'nt':5000, 'dt':0.001,'ot':0,   'lt':'t','ut':'s',
    'kt':100,    # wavelet delay
    'nx':1761, 'ox':0,  'dx':.0125 ,'lx':'x','ux':'km',
    'nz':321, 'oz':0,   'dz':.0125 ,'lz':'z','uz':'km',
    }
# add F-D modeling parameters
fdmod.param(par)
# ------------------------------
# wavelet
Flow('wav',None,
     '''
     spike nsp=1 mag=1 n1=%(nt)d d1=%(dt)g o1=%(ot)g k1=%(kt)d |
     ricker1 frequency=15 | scale axis=123 |
     put label1=t label2=x label3=y | transp
     ''' % par)
Result('wav',
       'window | window n1=200 | graph title="" label1="t" label2= unit2=')
# ------------------------------
# experiment setup
Flow('r_',None,'math n1=%(nx)d d1=%(dx)g o1=%(ox)g output=0' % par)
Flow('s_',None,'math n1=1      d1=0      o1=0      output=0' % par)
# receiver positions
Flow('zr','r_','math output=.025')
Flow('xr','r_','math output="x1"')
Flow('rr',['xr','zr'],'''cat axis=2 space=n
     ${SOURCES[0]} ${SOURCES[1]} | transp
     ''', stdin=0)
Plot('rr',fdmod.rrplot('',par))
# source positions
Flow('zs','s_','math output=.01')
Flow('xs','s_','math output=10.0')
Flow('rs','s_','math output=1')
Flow('ss',['xs','zs','rs'],'''
     cat axis=2 space=n
     ${SOURCES[0]} ${SOURCES[1]} ${SOURCES[2]} | transp
     ''', stdin=0)
Plot('ss',fdmod.ssplot('',par))
# ------------------------------
# density
Flow('vel','velmodel', 
      '''
      put o1=%(oz)g d1=%(dz)g  o2=%(oz)g d2=%(dz)g
      ''' % par)
Plot('vel',fdmod.cgrey('''allpos=y bias=1.5 pclip=97 title=Survey Design 
                          titlesz=6 labelsz=4 wheretitle=t''',par))
Result('vel',['vel','rr','ss'],'Overlay')
# ------------------------------
# density
Flow('den','vel','math output=1')
# ------------------------------
# finite-differences modeling
fdmod.awefd1('dat','wfl','wav','vel','den','ss','rr','free=y dens=y',par)

Plot('wfl',fdmod.wgrey('pclip=99',par),view=1)
Result('dat','window j2=5 | transp |' + fdmod.dgrey('''
pclip=99 title=Data Record label2=Offset 
wheretitle=t titlesz=6 labelsz=4
''',par))
times=['5','10','15','20']
cntr=0
for item in ['5','10','15','20']:
    Result('time'+item,'wfl','''window f3=%s n3=1 min1=0 min2=0 | grey gainpanel=a 
              pclip=99 wantframenum=y title=Wavefield at %s ms labelsz=4
              label1=Depth unit1=km label2=Distance unit2=km
              titlesz=6 screenratio=.18 screenht=2 wheretitle=t''' % (item,item))
End()

Table 6. Scons script that performs a finite difference synthetic shot on the Amoco model.

Typing Command 3 within the amoco/fdmod/ directory runs the FD modeling script.

\begin{displaymath}
\texttt{bash-3.1\$\ scons\ view} \end{displaymath} (3)

This script first constructs the survey acquisition geometry as was previously mentioned. An image of the survey is created and presented in Figure 4.

vel
vel
Figure 4.
FD model geometry as performed on the Amoco velocity model. The X represents the shot while the smaller * symbols represent receivers. The receivers extent along the right hand side although it is not clear in this image.
[pdf] [png] [scons]

Firing the shot results the propagation of a wavefield which can be seen in the movie wfl.vpl that is generated. Typing Command 4 within the amoco/fdmod directory displays the wavefield movie.


\begin{displaymath}
\texttt{bash-3.1\$\ scons\ wfl.vpl} \end{displaymath} (4)

Four frames from this movie are presented in Figure 5 illustrating the propagation of the wavefield in the model.

time5 time10 time15 time20
time5,time10,time15,time20
Figure 5.
Images of the propagating wavefield in the Amoco model generated by a finite difference model.
[pdf] [pdf] [pdf] [pdf] [png] [png] [png] [png] [scons]

The resulting data is then presented in the file dat.vpl. This plot is reproduced here in Figure 6. This shot is interesting as it clearly illustrates the different moveout witnessed on the two sides of the model.

dat
dat
Figure 6.
Data gathered by the receivers in the FD model survey.
[pdf] [png] [scons]


next up previous [pdf]

Next: About this document ... Up: Amoco model Previous: Shots

2014-07-07