chapter 1: field recording geometries
TRANSCRIPT
![Page 1: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/1.jpg)
Chapter 1: Field recording geometries
![Page 2: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/2.jpg)
Simplified viewSource
![Page 3: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/3.jpg)
Simplified viewSource Receiver
![Page 4: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/4.jpg)
Simplified viewSource Receiver
“Reflector”
![Page 5: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/5.jpg)
Simplified viewSource Receiver
“Reflector”
![Page 6: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/6.jpg)
Simplified viewSource Receiver
“Reflector”
![Page 7: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/7.jpg)
Simplified viewSource Receiver
“Reflector”tim
e
![Page 8: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/8.jpg)
Simplified viewSource Receiver
“Reflector”tim
e
Common midpoint (CMP)
![Page 9: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/9.jpg)
Simplified viewSource Receiver
“Reflector”tim
e
Common midpoint (CMP)
Common depth point (CDP)
![Page 10: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/10.jpg)
Simplified viewSource Receiver
“Reflector”tim
e
Common midpoint (CMP)
Offset
Common depth point (CDP)
![Page 11: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/11.jpg)
Simplified viewSource Receiver
“Reflector”tim
e
Common midpoint (CMP)
half-offset(h)
Common depth point (CDP)
![Page 12: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/12.jpg)
Simplified view
![Page 13: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/13.jpg)
Simplified view
![Page 14: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/14.jpg)
2-D seismic survey
Source position
X position
![Page 15: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/15.jpg)
2-D seismic survey
Source position
X position
![Page 16: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/16.jpg)
2-D seismic survey
Source position
X position
![Page 17: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/17.jpg)
Common shot gather
Source position
X positionField profile or common shot
gather
![Page 18: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/18.jpg)
Common geophone gather
Source position
X position Common geophone gather
![Page 19: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/19.jpg)
Common offset section
Source position
X position Constant offset section
![Page 20: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/20.jpg)
Common midpoint gather
Source position
X positionCommon midpoint
gather
![Page 21: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/21.jpg)
Common midpoint gather
Source position
X positionCommon midpoint
gather
Note how we are sampling the same
piece of earth
![Page 22: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/22.jpg)
Different ways to slice it
(y, h = 0, t) zero-offset section
(y, h = hmin, t) near-trace section
(y, h = const, t) constant-offset section
(y, h = hmax, t) far-trace section
(y = const, h, t) common-midpoint gather
(s = const, g, t) field profile (or common-shot gather)
(s, g = const, t) common-geophone gather
(s, g, t = const) time slice
(h, y, t = const) time slice
A diagram of slice names is in Figure 1.1. Figure 1.2 shows three slices from
the data volume. The first mode of display is “engineering drawing mode.” The
second mode of display is on the faces of a cube. But notice that although the
data is displayed on the surface of a cube, the slices themselves are taken from the
interior of the cube. The intersections of slices across one another are shown by
dark lines.
A common-depth-point (CDP) gather is defined by the industry and by common
usage to be the same thing as a common-midpoint (CMP) gather. But in this book
a distinction will be made. A CDP gather is a CMP gather with its time axis
![Page 23: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/23.jpg)
3-D views
Different ways to
view3-D
volumes
![Page 24: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/24.jpg)
3-D survey
Name the views
![Page 25: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/25.jpg)
3-D survey
Name the views
Geophysicists(t,offset)
Geologist(t, midpoint)
(offset,midpoint)
![Page 26: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/26.jpg)
NMO√
t2 − 4h2
v2t - timeh - half-offsetv- velocity
![Page 27: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/27.jpg)
NMO√
t2 − 4h2
v2t - timeh - half-offsetv- velocity Correct and
sum to reduce dimensionality
![Page 28: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/28.jpg)
NMO√
t2 − 4h2
v2t - timeh - half-offsetv- velocity Correct and
sum to reduce dimensionality
Why are we doing multiple sampling of
the media?
![Page 29: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/29.jpg)
NMO: Common Midpoint gather
What we recordz
x position
t
offset
![Page 30: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/30.jpg)
NMO: Common Midpoint gather
What we wantz
x position
t
offset
![Page 31: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/31.jpg)
NMO: Simple geometry
h
z √z2 + h2
Text0 h
![Page 32: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/32.jpg)
NMO: Simple geometry
h
z √z2 + h2
Text0 h
2z
v
2√
z2 + h2
v
![Page 33: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/33.jpg)
NMO: Simple geometry
0 h
2z
v
2√
z2 + h2
v
t(h) = 2√
z2 + h2
v
t(h) =
√4z2
v2+
4h2
v2
t(h) =
√t(0)2 +
4h2
v2
t(0) =
√t(h)2 − 4h2
v2
![Page 34: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/34.jpg)
2-D recording geometries: Split spread
Figure 1.3: A seismic land pro-
file. There is a gap where there
are no receivers near the shot.
You can see events of three dif-
ferent velocities. (Western Geo-
physical). fld-yc02 [ER]
Land data
![Page 35: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/35.jpg)
2-D geometries: Off-end
Figure 1.4: A marine profile off
the Aleutian Islands. (Western
Geophysical). fld-yc20 [ER]
![Page 36: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/36.jpg)
Slow-shooting boat
![Page 37: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/37.jpg)
Fast shooting boat
![Page 38: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/38.jpg)
Why do we care?0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
√0 1 2 3 4 5 6
√7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
s
s
g
g
receiver number
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
√0 1 2 3 4 5 6
√7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
![Page 39: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/39.jpg)
Add in “x” coordinate0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
√0 1 2 3 4 5 6
√7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
s
s
g0
00
4
8 16
8
12
24 32
16
20
40 48
24
g0 4 8 12 16 20 24
0
2
8
12
16
20
24 0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
√0 1 2 3 4 5 6
√7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8
![Page 40: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/40.jpg)
Midpoint24
22 23
20 21 22
18 19 20 21
16 17 18 19 20
14 15 16 17 18 19
12 13 14 15 16 17 18
10 11 12 13 14 15 16 17
8 9 10 11 12 13 14 15 16
6 7 8 9 10 11 12 13 14
4 5 6 7 8 9 10 11 12
2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8
s
s
g
00
4
8
12
16
20
24
g0 4 8 12 16 20 24
0
4
8
12
16
20
24 36
33 35
30 32 34
27 29 31 33
24 26 28 30 32
21 23 25 27 29 31
18 20 22 24 26 28 30
15 17 19 21 23 25 27 29
12 14 16 18 20 22 24 26 28
9 11 13 15 17 19 21 23 25
6 8 10 12 14 16 18 20 22
3 5 7 9 11 13 15 17 19
0 2 4 6 8 10 12 14 16
0 8 16 24 32 40 48
![Page 41: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/41.jpg)
Midpoint24
22 23
20 21 22
18 19 20 21
16 17 18 19 20
14 15 16 17 18 19
12 13 14 15 16 17 18
10 11 12 13 14 15 16 17
8 9 10 11 12 13 14 15 16
6 7 8 9 10 11 12 13 14
4 5 6 7 8 9 10 11 12
2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8
s
s
g
00
4
8
12
16
20
24
g0 4 8 12 16 20 24
0
4
8
12
16
20
24
Alternating sources map to alternating
midpoints
0 8 16 24 32 40 48
36
33 35
30 32 34
27 29 31 33
24 26 28 30 32
21 23 25 27 29 31
18 20 22 24 26 28 30
15 17 19 21 23 25 27 29
12 14 16 18 20 22 24 26 28
9 11 13 15 17 19 21 23 25
6 8 10 12 14 16 18 20 22
3 5 7 9 11 13 15 17 19
0 2 4 6 8 10 12 14 16
![Page 42: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/42.jpg)
Midpoint24
22 23
20 21 22
18 19 20 21
16 17 18 19 20
14 15 16 17 18 19
12 13 14 15 16 17 18
10 11 12 13 14 15 16 17
8 9 10 11 12 13 14 15 16
6 7 8 9 10 11 12 13 14
4 5 6 7 8 9 10 11 12
2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8
s
s
g
00
4
8
12
16
20
24
g0 4 8 12 16 20 24
0
4
8
12
16
20
24
Alternating sources map to alternating
midpoints
0 8 16 24 32 40 48
36
33 35
30 32 34
27 29 31 33
24 26 28 30 32
21 23 25 27 29 31
18 20 22 24 26 28 30
15 17 19 21 23 25 27 29
12 14 16 18 20 22 24 26 28
9 11 13 15 17 19 21 23 25
6 8 10 12 14 16 18 20 22
3 5 7 9 11 13 15 17 19
0 2 4 6 8 10 12 14 16
Alternating midpoints have
alternating initial offsets
![Page 43: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/43.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
![Page 44: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/44.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
![Page 45: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/45.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Function declaration
![Page 46: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/46.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Define the variable types used in this function
![Page 47: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/47.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Output: 3-dimensional array (time. offset, midpoint)
![Page 48: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/48.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Number of time samples, offsets, and midpoints
![Page 49: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/49.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Number of reflectors we are going to create
![Page 50: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/50.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Declare arrays that exist only in this function
![Page 51: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/51.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
The amplitude of each reflector as a function of
midpoint
![Page 52: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/52.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
The zero offset time (actually time/dt) of each
reflector
![Page 53: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/53.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Create a seed to a random number generator
![Page 54: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/54.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Set the number of sources to the number of midpoints
![Page 55: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/55.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Fill in random zero offset times for each reflector
![Page 56: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/56.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Fill in random amplitudes (layer*(1.+dev) ) for each
reflector
![Page 57: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/57.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Zero the output
![Page 58: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/58.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Loop over each midpoint, offset, and reflector
![Page 59: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/59.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Calculate the midpoint for a given the given shot and
offset
![Page 60: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/60.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Trickiness to make a better movie (remember sources and midpoints don’t have exactly
the same range)
![Page 61: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/61.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
Figure out the time given the offset and the zero offset time for the given reflector
![Page 62: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/62.jpg)
Synthetic marine
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed
real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)iseed= 1992; ns = nydo iz= 1, nz { # 0 < rand01() < 1
depth( iz) = nt * rand01(iseed) # Reflector depthlayer = 2. * rand01(iseed) - 1. # Reflector strengthdo iy= 1, ny { # Impose texture on layer
refl(iz,iy) = layer * (1. + rand01(iseed))}
}call null( data, nt*nh*ny) # erase data spacedo is= 1, ns { # shotsdo ih= 1, nh { # down cable h = (g-s)/2do iz= 1, nz { # Add hyperbola for each layer
iy = (ns-is)+(ih-1) # y = midpointiy = 1 + (iy-ny*(iy/ny)) # periodic with midpointit = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 )if( it <= nt)
data(it,ih,is) = data(it,ih,is) + refl(iz,iy)}}}
return; end
Back
If the time fits within our array add the amplitude
![Page 63: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/63.jpg)
Ratfor to Fortran 90subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)
iseed= 1992; ns = nydo iz= 1, nz { depth( iz) = nt * rand01(iseed) layer = 2. * rand01(iseed) - 1. do iy= 1, ny { refl(iz,iy) = layer * (1. + rand01(iseed)) } }call null( data, nt*nh*ny) do is= 1, ns { do ih= 1, nh { do iz= 1, nz { iy = (ns-is)+(ih-1) iy = 1 + (iy-ny*(iy/ny)) it = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 ) if( it <= nt) data(it,ih,is) = data(it,ih,is) + refl(iz,iy) }}}
return; end
subroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseedreal data( nt,nh,ny), layerreal, allocatable :: refl:,:), depth(:)allocate(refl(nz,nx),depth(nz))iseed= 1992; ns = nydo iz 1=,nz depth( iz) = nt * rand01(iseed) layer = 2. * rand01(iseed) - 1. do iy= 1, ny refl(iz,iy) = layer * (1. + rand01(iseed)) end doend dodata=0do is=1,ns do ih=1,nh do iz=1,nz iy = (ns-is)+(ih-1) iy = 1 + (iy-ny*(iy/ny)) it = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 ) if( it <= nt) data(it,ih,is) = data(it,ih,is) + refl(iz,iy) end do end doend do deallocate(refl,depth)end subroutine synmarine
![Page 64: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/64.jpg)
Ratfor to Csubroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)
iseed= 1992; ns = nydo iz= 1, nz { depth( iz) = nt * rand01(iseed) layer = 2. * rand01(iseed) - 1. do iy= 1, ny { refl(iz,iy) = layer * (1. + rand01(iseed)) } }call null( data, nt*nh*ny) do is= 1, ns { do ih= 1, nh { do iz= 1, nz { iy = (ns-is)+(ih-1) iy = 1 + (iy-ny*(iy/ny)) it = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 ) if( it <= nt) data(it,ih,is) = data(it,ih,is) + refl(iz,iy) }}}
return; end
void synmarine (float ***data, int nt,int nh,int ny, int nz){integer it,ih,iy,is,iz, ns, iseedfloat layerfloat **refl, *depth;refl=(float**) malloc(sizeof(float*)*nx);for(ix=0; ix < nx; ix++) refl[ix]=(float*)malloc(sizeof(float)*nz);depth=(float*) malloc(sizeof(float)*nz);iseed= 1992; ns = ny;for(iz=0; iz < nz; iz++){ depth[iz] = nt * rand01(iseed) ; layer = 2. * rand01(iseed) - 1. ; for(iy=0; iy < ny; iy++) refl[iy][iz] = layer * (1. + rand01(iseed));}for(iy=0; iy < ny; iy++){for(ih=0; ih < nh; ih++){ for(iz=0; iz < nz; iz++) data[iy][ih][iz]=0.;}}}for(is=0; is < ns; is++){ for(ih=0; ih < nh; ih++){ for(iz=0; iz < nz; iz++){ iy = (ns-is)+ih-1; iy = (iy-ny*(iy/ny)) ; it = sqrt( depth[iz]*depth[iz]+ 25.*(ih-1)*(ih-1)); if( it < nt) data[is][ih][is]-data[is][ih][it]( + refl[iy][iz]; }}}for(ix=0; ix < nx; ix++) free(refl[ix]);free(refl); free(depth);}
![Page 65: Chapter 1: Field recording geometries](https://reader031.vdocuments.us/reader031/viewer/2022013001/61cac56e75220217c733966c/html5/thumbnails/65.jpg)
Ratfor to matlabsubroutine synmarine ( data, nt,nh,ny, nz)integer nt,nh,ny, nz, it,ih,iy,is,iz, ns, iseed real data( nt,nh,ny), layer, rand01temporary real refl(nz,ny), depth(nz)
iseed= 1992; ns = nydo iz= 1, nz { depth( iz) = nt * rand01(iseed) layer = 2. * rand01(iseed) - 1. do iy= 1, ny { refl(iz,iy) = layer * (1. + rand01(iseed)) } }call null( data, nt*nh*ny) do is= 1, ns { do ih= 1, nh { do iz= 1, nz { iy = (ns-is)+(ih-1) iy = 1 + (iy-ny*(iy/ny)) it = 1 + sqrt( depth(iz)**2 + 25.*(ih-1)**2 ) if( it <= nt) data(it,ih,is) = data(it,ih,is) + refl(iz,iy) }}}
return; end
function synmarine(data,nt,nh,ny,nz)refl=zeros(nz,ny)depth(nz)ns=nyfor iz=1:nz depth(iz)=nt*rand(1) layer=2*rand(1)-1.; for iy=1:ny refl(iz,iy)=layer*(1+rand(1)); end enddata=0;for is=1:ns for ih=0:nh for iz=0:nz iy=(ns-is)+ih-1; iy = 1+(iy-ny*(iy/ny)) ; it = 1+sqrt( depth(iz)^2+.25*(ih-1)^2) if( it < nt) data(iy,ih,is)=data(it,ih,is)+refl(iz,iy) end end end end