Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
4.
4.1
Introduction
This chapter shows you how to create 2-D geologic models, create synthetic shot
gathers from the models, and examine the shot gathers for quality control (QC the
gathers). Chapter 5 shows you how to use the models to acquire (create synthetic)
seismic data sets.
Models developed in this chapter have layers that are homogeneous and isotropic.
Each layer has a single acoustic (P-wave) velocity.
This chapter and the next are computer-intensive in two ways: (1) the scripts are
complex and (2) it will probably take your computer two hours to most of a day to
generate the shot gathers. If you want to skip this complexity, skim these two chapters to
familiarize yourself with the geologic models, then simply use the synthetic data set
generated from Model 4 (Chapter 6) that accompanies this Primer. Seismic data
generated from Model 4 are processed in Chapters 7, 8, and 9.
4.2
#! /bin/sh
# File: model1.sh
# Set messages on
set -x
4-1
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Experiment Number
num=1
# Name output binary model file
modfile=model${num}.dat
# Name output encapsulated Postscript image file
psfile=model${num}.eps
# Remove previous .eps file
rm -f $psfile
trimodel xmin=0 xmax=6 zmin=0 zmax=2 \
1 xedge=0,6 \
zedge=0,0 \
sedge=0,0 \
2 xedge=0,2,4,6 \
zedge=0.30,0.50,0.20,0.30 \
sedge=0,0,0,0 \
3 xedge=0,2,4,6 \
zedge=0.55,0.75,0.45,0.55 \
sedge=0,0,0,0 \
4 xedge=0,2,4,6 \
zedge=0.65,0.85,0.55,0.65 \
sedge=0,0,0,0 \
5 xedge=0,2,4,6 \
zedge=1.30,1.30,1.60,1.20 \
sedge=0,0,0,0 \
6 xedge=0,6 \
zedge=2,2 \
sedge=0,0 \
kedge=1,2,3,4,5,6 \
sfill=0.1,0.1,0,0,0.44,0,0 \
sfill=0.1,0.4,0,0,0.40,0,0 \
sfill=0.1,0.6,0,0,0.35,0,0 \
sfill=0.1,1.0,0,0,0.30,0,0 \
sfill=0.1,1.5,0,0,0.25,0,0 > $modfile
##
x,z
# Create a Postscript file of the model
#
Set gtri=1.0 to see sloth triangle edges
spsplot < $modfile > $psfile \
gedge=0.5 gtri=2.0 gmin=0 gmax=1 \
title="Earth Model - 5 layers [M${num}]" \
labelz="Depth (km)" labelx="Distance (km)" \
dxnum=1.0 dznum=0.5 wbox=6 hbox=2
# Exit politely from shell
exit
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
It is also good practice when using two variables next to each other:
model${variable1}${variable2}.dat
o Line 14 assigns a name to the output .eps image file that is used on line 48.
Bookkeeping: Line 17 removes a previous image file. This line is optional. On
some systems, the program crashes if a .eps file with the same name already
exists. Usually files are overwritten!
Program trimodel: Lines 19-43 create the model. Notice that line 44 is a
comment. We use line 44 to remind us that the first two entries of line sfill are x-z
values. The very important sfill parameter is discussed below.
Program spsplot: Lines 48-52 create the .eps image file.
Lets examine program trimodel. Program trimodel fills the model with triangles of
(1/velocity)2. While (1/velocity) is called slowness, (1/velocity)2 is called sloth. A
sloth is a slow-moving tree-dwelling mammal found in Central and South America.
Program trimodels use here can be divided into five parts:
1. Line 19 defines the model dimensions.
2. The six sets of xedge, zedge, and sedge triplets define layer boundaries and
velocity gradients. There is a requirement that each set of triplets have the same
number of values. In other words, the triplet for layer 1 that defines the top of the
model (a straight line) has (only needs) two values and each triplet (xedge, zedge,
sedge), therefore, contains two values. On the other hand, the triplet for layer 2
that defines a curved surface has more than two values.
20
21
22
1 xedge=0,6 \
zedge=0,0 \
sedge=0,0 \
23
24
25
2 xedge=0,2,4,6 \
zedge=0.30,0.50,0.20,0.30 \
sedge=0,0,0,0 \
A triplet consists of an xedge, zedge pair that is an interface control point and an
sedge value that is the velocity gradient at the control point.
Line sedge has only zeros because all layers are isotropic and homogeneous. Line
sedge would have non-zero values if we want a layer to have velocity gradients.
3. In this model that has six boundaries, there are five simple layers. Therefore, there
are five sfill lines, lines 39-43. These lines are written for isotropic, homogenous
layers, which is why most of the values are zero.
Table 4.1: Line sfill variables
x
x0
z0
s00
ds/dx
ds/dz
Each x-z pair of sfill is a point in a layer. Each sfill line describes the sloth value
that fills the layer.
4-3
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
z (m)
s00 (sloth)
0.1
0.1
0.44
1508
0.1
0.4
0.40
1581
0.1
0.6
0.35
1690
0.1
1.0
0.30
1826
0.1
1.5
0.25
2000
These P-wave velocity values are not very realistic (except the first), but they
make a nice grey-scale image in the .eps file.
4. Line 38, line kedge, is necessary for any acquisition program that uses this model.
An interface that is not listed here will not be seen by a later acquisition
script.
5. Line 43 has the variable name of the output binary model file.
Program spsplot plots a triangulated sloth function as an encapsulated Postscript file.
So, we see that spsplot is designed to accompany trimodel! If you want to see the
triangles that are used to build the model, change gtri=2.0 to gtri=1.0.
On line 52, wbox=6 and hbox=2 ensure that the .eps image has the same dimensions
as the actual model (line 19). It is important for us to specify the same width and height
in different programs within the same script so images created by different programs
exactly overlap. You will see this in scripts in the second half of this chapter.
Also on line 52, dxnum and dznum specify the annotation increments in the respective
directions. These parameters are important in later ray trace and wavefront scripts.
Below are 60-trace split-spread shot gathers acquired from source positions x=2.0,
x=2.6, x=3.3, and x=3.95. Acquisition of these data is explained in Chapter 5.
Figure 4.2: Left to right: Shot 1, Shot 13, Shot 27, Shot 40 from Model 1.
Remember, you can use the self-documentation to learn more about any SU program
by entering just the program name on a line (Section 1.11).
4-4
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
4.3
#! /bin/sh
# File: model2.sh
# Set messages on
set -x
# Experiment Number
num=2
# Name output binary model file
modfile=model${num}.dat
# Name output encapsulated Postscript image file
psfile=model${num}.eps
# Remove previous .eps file
rm -f $psfile
trimodel xmin=0 xmax=6 zmin=0 zmax=2 \
1 xedge=0,6 \
zedge=0,0 \
sedge=0,0 \
2 xedge=0,2,4,6 \
zedge=0.3,0.5,0.2,0.3 \
sedge=0,0,0,0 \
3 xedge=3,3.5,4,6 \
4-5
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
zedge=0.7,0.66,0.66,0.66 \
sedge=0,0,0,0 \
4 xedge=3,3.5,4,6 \
zedge=0.7,0.74,0.74,0.74 \
sedge=0,0,0,0 \
5 xedge=0,2,4,6 \
zedge=1.3,1.3,1.6,1.2 \
sedge=0,0,0,0 \
6 xedge=0,6 \
zedge=2,2 \
sedge=0,0 \
kedge=1,2,3,4,5,6 \
sfill=1,0.1,0,0,0.44,0,0 \
sfill=1,0.7,0,0,0.40,0,0 \
sfill=4,0.7,0,0,0.30,0,0 \
sfill=1,1.5,0,0,0.20,0,0 > $modfile
##
x,z
# Create a Postscript file of the model
spsplot < $modfile > $psfile \
gedge=0.5 gtri=2.0 gmin=0 gmax=1 \
title="Earth Model - High Vel. Intrusion [M${num}]" \
labelz="Depth (km)" labelx="Distance (km)" \
dxnum=1.0 dznum=0.5 wbox=6 hbox=2
# Exit politely from shell
exit
z (m)
s00 (sloth)
0.1
0.44
1508
0.7
0.40
1581
0.7
0.30
1826
1.5
0.20
2236
In this isotropic, homogenous model, sfill supplies (fills) a single sloth value for a
layer when an x-z point is specified in the appropriate layer.
Below are 60-trace split-spread shot gathers acquired from source positions x=2.0,
x=2.6, x=3.3, and 3.95. Acquisition of these data is explained in Chapter 5.
Figure 4.4: Left to right: Shot 1, Shot 13, Shot 27, Shot 40 from Model 2.
4-6
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
4.4
#! /bin/sh
# File: model3.sh
# Set messages on
set -x
# Experiment Number
num=3
# Name output binary model file
modfile=model${num}.dat
# Name output encapsulated Postscript image file
psfile=model${num}.eps
# Remove previous .eps file
rm -f $psfile
trimodel xmin=-1 xmax=5 zmin=0 zmax=2 \
1 xedge=-1,5 \
zedge=0,0 \
sedge=0,0 \
2 xedge=-1.,1.0,3.0,5.0 \
zedge=0.3,0.5,0.2,0.3 \
sedge=0,0,0,0 \
3 xedge=2.00,2.10,2.20 \
zedge=0.70,0.66,0.70 \
sedge=0,0,0 \
4 xedge=2.00,2.10,2.20 \
zedge=0.70,0.74,0.70 \
sedge=0,0,0 \
4-7
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
5 xedge=-1.,1.0,3.0,5.0 \
zedge=1.3,1.3,1.6,1.2 \
sedge=0,0,0,0 \
6 xedge=-1,5 \
zedge=2,2 \
sedge=0,0 \
kedge=1,2,3,4,5,6 \
sfill=1.0,0.1,0,0,0.44,0,0
sfill=1.0,0.6,0,0,0.40,0,0
sfill=2.1,0.7,0,0,0.30,0,0
sfill=1.0,1.5,0,0,0.20,0,0
##
x,z
\
\
\
> $modfile
z (m)
s00 (sloth)
1.0
0.1
0.44
1508
1.0
0.6
0.40
1581
2.1
0.7
0.30
1826
1.0
1.5
0.20
2236
The .eps image is still made 1:1 because in line 50, the box dimensions are six units
wide by two units high.
Below are 60-trace split-spread shot gathers acquired from source positions x=1.0,
x=1.6, x=2.3, and 2.95. Acquisition of these data is explained in Chapter 5.
Figure 4.6: Left to right: Shot 1, Shot 13, Shot 27, Shot 40 from Model 3.
4-8
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
4.5
4-9
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
4.6
z-increment
x-increment
trimodel
dznum
dxnum
psgraph
d1num
d2num
While hbox=2.0 and wbox=6.0 ensure that the model and ray images have the same
dimensions (line 31 in this script and line 52 in the model script), psgraph still must be
told the x and z extents of the image (line 32).
1
2
3
4
5
6
7
8
9
10
11
12
#! /bin/sh
# File: psmerge1a.sh
# Set messages on
set -x
# Experiment number
num=1
# Input files
modelfile=model${num}.dat
modelpsfile=model${num}.eps
4-10
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Output files
rayendsfile=rayends${num}a.dat
rayfile=ray${num}a.dat
raypsfile=ray${num}a.eps
psmergefile=psmerge${num}a.eps
# Assign values to variables
nangle=10 fangle=-45 langle=-15 nxz=301
# Shoot the rays
triray < $modelfile > $rayendsfile rayfile=$rayfile \
nangle=$nangle fangle=$fangle langle=$langle \
xs=4.5 zs=0.0 nxz=$nxz \
refseq=2,0 refseq=3,0 refseq=4,0 refseq=5,1
# Plot the rays
psgraph < $rayfile > $raypsfile \
nplot=`cat outpar` n=$nxz hbox=2.0 wbox=6.0 \
x1beg=0.0 x1end=2.0 x2beg=0 x2end=6 \
d1num=0.5 d2num=1.0 style=seismic linegray=0
# Merge model + rays
psmerge in=$modelpsfile in=$raypsfile > $psmergefile
# Exit politely from shell
exit
4.7
4-11
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
#! /bin/sh
# File: psmerge1b.sh
# Set messages on
set -x
# Experiment number
num=1
# Input files
modelfile=model${num}.dat
modelpsfile=model${num}.eps
# Output files
rayendsfile=rayends${num}b.dat
rayfile=ray${num}b.dat
raypsfile=ray${num}b.eps
wavefile=wave${num}b.dat
wavetrans=wavetrans${num}b.dat
wavepsfile=wave${num}b.eps
psmergefile=psmerge${num}b.eps
# Assign values to variables
nangle=70 fangle=-45 langle=-15 nxz=301 nt=20
# Shoot the rays
triray < $modelfile > $rayendsfile \
rayfile=$rayfile wavefile=$wavefile \
nangle=$nangle fangle=$fangle langle=$langle \
nxz=$nxz nt=$nt xs=4.5 zs=0.0 \
refseq=2,0 refseq=3,0 refseq=4,0 refseq=5,1
# Plot the rays
psgraph < $rayfile > $raypsfile \
nplot=`cat outpar` n=$nxz hbox=2.0 wbox=6.0 \
x1beg=0.0 x1end=2.0 x2beg=0 x2end=6 \
d1num=0.5 d2num=1.0 style=seismic linegray=1
4-12
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Each time psgraph is used, the image dimensions must be specified the same way
(parameters hbox, wbox, x1beg, x1end, x2beg, x2end, d1num, d2num) to ensure that all
merged images (line50) overlap exactly.
Now the rays are white due to linegray=1 in line 37. The wavefronts are black due to
linegray=0 in line 47. Parameter linegray controls a gray continuum between 0 and 1.
4.8
#! /bin/sh
# File: psmerge2a.sh
# Set messages on
set -x
4-13
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Experiment number
num=2
# Input files
modelfile=model${num}.dat
modelpsfile=model${num}.eps
# Output files
rayendsfile=rayends${num}a.dat
rayfile=ray${num}a.dat
raypsfile=ray${num}a.eps
psmergefile=psmerge${num}a.eps
# Assign values to variables
nangle=15 fangle=0 langle=50 nxz=301
# Shoot the rays
triray < $modelfile > $rayendsfile rayfile=$rayfile \
nangle=$nangle fangle=$fangle langle=$langle \
xs=3.0 zs=0.0 nxz=$nxz \
refseq=2,0 refseq=3,0 refseq=4,0 refseq=5,1
# Plot the rays
psgraph < $rayfile > $raypsfile \
nplot=`cat outpar` n=$nxz hbox=2 wbox=6 \
x1beg=0 x1end=2 x2beg=0 x2end=6 \
d1num=0.5 d2num=1.0 style=seismic linegray=0
# Merge model + rays
psmerge in=$modelpsfile in=$raypsfile > $psmergefile &
# Exit politely from shell
exit
4.9
4-14
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#! /bin/sh
# File: psmerge2b.sh
# Set messages on
set -x
# Experiment number
num=2
# Input files
modelfile=model${num}.dat
modelpsfile=model${num}.eps
# Output files
rayendsfile=rayends${num}b.dat
rayfile=ray${num}b.dat
raypsfile=ray${num}b.eps
wavefile=wave${num}b.dat
wavetrans=wavetrans${num}b.dat
wavepsfile=wave${num}b.eps
psmergefile=psmerge${num}b.eps
# Assign values to variables
nangle=65 fangle=0 langle=50 nxz=301 nt=20
# Shoot the rays
triray < $modelfile > $rayendsfile \
rayfile=$rayfile wavefile=$wavefile \
nangle=$nangle fangle=$fangle langle=$langle \
nxz=$nxz nt=$nt xs=3.0 zs=0.0 \
refseq=2,0 refseq=3,0 refseq=4,0 refseq=5,1
# Plot the rays
psgraph < $rayfile > $raypsfile \
nplot=`cat outpar` n=$nxz hbox=2 wbox=6 \
x1beg=0 x1end=2 x2beg=0 x2end=6 \
d1num=0.5 d2num=1.0 style=seismic linegray=0
# Transpose the wavefile
transp < $wavefile > $wavetrans n1=$nt n2=$nangle nbpe=8
# Plot the wavefronts
psgraph < $wavetrans > $wavepsfile \
linewidth=0.0 mark=8 marksize=2 \
nplot=$nt n=$nangle hbox=2.0 wbox=6.0 \
x1beg=0.0 x1end=2.0 x2beg=0.0 x2end=6.0 \
d1num=0.5 d2num=1.0 style=seismic linegray=1
# Merge model + rays + wavefronts
psmerge in=$modelpsfile in=$raypsfile in=$wavepsfile > $psmergefile &
# Exit politely from shell
exit
Now the rays are black due to linegray=0 in line 36. The wavefronts are white due to
linegray=1 in line 47.
4-15
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
Figure 4.11: Rays generated through Model 3. Program triray parameter nxz=301.
The source was placed over the diffractor so rays shoot through and around it. In a
real earth, raypaths would be quite scattered near the diffractor edges. Here, the edges are
not treated realistically. Notice that only six of the ten rays reach the surface. In the first
use of this script, triray parameter nxz=301 (lines 21 and 26). To make all ten rays reach
the surface, nxz was increased in increments of 50. All rays reached the surface with
nxz=701 (see Figure 4.12, below). It is interesting to observe that the default value of nxz
is 101. It is probably unrealistic to set nxz so high (701), and probably a waste of
computer time; although, without examining the source code and understanding exactly
what role nxz plays, it is not easy to be certain. Nonetheless, through trial and error we
obtained a reasonable solution..
Figure 4.12: Rays generated through Model 3. Program triray parameter nxz=701.
4-16
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/
While hbox=2.0 and wbox=6.0 ensure that the model and ray images have the same
dimensions (line 31 in this script and line 50 in the model script), psgraph still must be
told the x and z extents of the image (line 32). Notice that x2beg=-1 and x2end=5.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /bin/sh
# File: psmerge3.sh
# Turn on messages
set -x
# Experiment number
num=3
# Input files
modelfile=model${num}.dat
modelpsfile=model${num}.eps
# Output files
rayendsfile=rayends${num}.dat
rayfile=ray${num}.dat
raypsfile=ray${num}.eps
psmergefile=psmerge${num}.eps
# Assign values to variables
nangle=10 fangle=0 langle=+25 nxz=701
# Shoot the rays
triray < $modelfile > $rayendsfile rayfile=$rayfile \
nangle=$nangle fangle=$fangle langle=$langle \
xs=2.0 zs=0.0 nxz=$nxz \
refseq=2,0 refseq=3,0 refseq=4,0 refseq=5,1
# Plot the rays
psgraph < $rayfile > $raypsfile \
nplot=`cat outpar` n=$nxz hbox=2 wbox=6 \
x1beg=0 x1end=2 x2beg=-1 x2end=5 \
d1num=0.5 d2num=1.0 style=seismic linegray=0
# Merge model + rays
psmerge in=$modelpsfile in=$raypsfile > $psmergefile &
# Exit politely from shell
exit
4-17
Downloaded 01/08/13 to 192.159.106.200. Redistribution subject to SEG license or copyright; see Terms of Use at http://library.seg.org/