|
|
|
|
Marmousi Model |
For the purposes of this example a shot will be fired at 5 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 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. In practice it would be necessary to perform longer running models, but this number of time gates is sufficient for this introduction.
An SConstruct file located within marmousi/fdmod/ properly formats the model and inputs necessary parameters to perform a shot on the Marmousi model. This file is reproduced below in Table 6.
from rsf.proj import *
import fdmod
# Fetch Files from repository
raw=['marmvel.hh','marmsmooth.HH']
for file in raw:
Fetch(file,"marm")
if file is 'marmvel.hh':
d=.004
fileOut='marmvel'
t='Velocity Model'
if file is 'marmsmooth.HH':
d=.024
fileOut='marmsmooth'
t='Smoothed Velocity Model'
# Convert Files to RSF and update headers
Flow(fileOut,file,'''dd form=native |
scale rscale=.001 | put
label1=Depth label2=Position unit1=km unit2=km
d1=%f d2=%f''' % (d,d))
# Plotting Section
Result(fileOut,'''window $SOURCE |
grey color=I gainpanel=a allpos=y scalebar=y
title=%s barlabel=kms screenratio=.326
screenht=3 wheretitle=t labelsz=4 titlesz=6 ''' % t)
# ------------------------------
par = {
'nt':10000, 'dt':0.00025,'ot':0,'lt':'t','ut':'s',
'nx':2301, 'ox':0, 'dx':.004, 'lx':'x','ux':'km',
'nz':751, 'oz':0, 'dz':.004, 'lz':'z','uz':'km',
'kt':400 # wavelet delay
}
# 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',
'transp | window n1=1000 | 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=5.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','marmvel',
'''
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
color=G titlesz=6 labelsz=4 wheretitle=t barrevers=y''',par))
Result('vel',['vel','rr','ss'],'Overlay')
# ------------------------------
# density
Flow('den','vel','math output=1')
# ------------------------------
# finite-differences modeling
fdmod.awefd('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','1.0','1.5','2.0']
cntr=0
for item in ['20','40','60','80']:
Result('time'+item,'wfl',
'''
window f3=%s n3=1 min1=0 min2=0 | grey gainpanel=a
pclip=99 wantframenum=y title=Wavefield at %s s labelsz=4
label1=z unit1=km label2=x unit2=km
titlesz=6 screenratio=.18 screenht=2 wheretitle=t
''' % (item,times[cntr]))
cntr=cntr+1
End()
|
Typing Command 3 within the marmousi/fdmod/ directory runs the FD modeling script.
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
Figure 4. FD model geometry as performed on the Marmousi velocity model. The X represents the shot while the * symbols represent receivers. |
|
|
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 marmousi/fdmod directory displays the wavefield movie.
Four frames from this movie are presented in Figure 5 illustrating the propagation of the wavefield in the model.
|
|---|
|
time20,time40,time60,time80
Figure 5. Images of the propagating wavefield in the Marmousi model generated by a finite difference model. |
|
|
The resulting data is then presented in the file dat.vpl. This plot is reproduced here in Figure 6.
|
|---|
|
dat
Figure 6. Data gathered by the receivers in the FD model survey. |
|
|
|
|
|
|
Marmousi Model |