Skip to content

Commit aff870d

Browse files
committed
Gaussian reflector Kirchoff modeling
Modeling of a gaussian reflector in a linear velocity gradient (0.5), velocity increases with depth. Near surface velocity is 1.5Km/s. That simulated aquisition has 161 receivers, with 0.025Km sampling; 401 souces, 0.025Km sampling. Ricker wavelet maximun frequency is 10Hz. Time sampling is 0.004s, with 1001 samples. P.S.: Kirchoff modeling needs local reflector dip to work properly, calculate refletor local derivative and put in 'dip' file used by 'sfkirmod' program.
1 parent c0ed30b commit aff870d

File tree

4 files changed

+132
-0
lines changed

4 files changed

+132
-0
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*.rsf
2+
*.o
3+
*.vpl
4+
*.png
5+
!images/*.png
6+
!diagrams/*.png
7+
*.pyc
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# CRE Gather interpolation
2+
3+
> Development of SConstruct to test CRE Gather interpolation algorithm and to get CRE Gathers
4+
> from a modeled data cube A(m,h,t).
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
#
4+
# SConstruct (Madagascar Script)
5+
#
6+
# Purpose: Obtain an interpolated CRE Gather from a modeled data cube A(m,h,t).
7+
#
8+
# Site: http://www.dirackslounge.online
9+
#
10+
# Version 1.0
11+
#
12+
# Programer: Rodolfo A. C. Neves (Dirack) 18/09/2019
13+
#
14+
15+
#
16+
# License: GPL-3.0 <https://www.gnu.org/licenses/gpl-3.0.txt>.
17+
18+
19+
# Madagascar library
20+
from rsf.proj import *
21+
22+
# Python math library
23+
import math
24+
25+
# Ploting functions
26+
from graph_scons import *
27+
28+
# Modeling: Gaussian reflector in a velocity linear model
29+
# velocity increases with depth and a 0.5 velocity gradient
30+
Flow('gaussianReflector',None,
31+
'''
32+
math d1=0.01 n1=2001 o1=-5 unit1=km label1=Offset
33+
output="4-3*exp(-(x1-5)^2/9)"
34+
''')
35+
36+
for g in range(2):
37+
gaussianReflector = 'gaussianReflector%d' % g
38+
Plot(gaussianReflector,'gaussianReflector',
39+
'''
40+
graph min2=0 max2=4 min1=0 max1=10
41+
yreverse=y plotcol=%d plotfat=%d
42+
wantaxis=n wanttitle=n scalebar=y pad=n
43+
''' % ((7,0)[g],(7,3)[g]))
44+
45+
# Velocity Model
46+
Flow('velocityModel','gaussianReflector',
47+
'''
48+
window min1=0 max1=10 |
49+
spray axis=1 n=451 d=0.01 o=0 label=Depth unit=km |
50+
math output="1.5+0.5*x1+0.0*x2"
51+
''')
52+
53+
Plot('velocityModel',
54+
'''
55+
grey color=j allpos=y bias=1.5 scalebar=y wanttitle=n
56+
barreverse=y barlabel=Velocity barunit=km/s
57+
''')
58+
59+
Result('gaussianReflectorVelocityModel','velocityModel gaussianReflector0 gaussianReflector1','Overlay')
60+
61+
Flow('reflectorDip','gaussianReflector','math output="2/3*(x1-5)*input" ')
62+
63+
# Kirchoff Modeling
64+
Flow('dataCube','gaussianReflector reflectorDip',
65+
'''
66+
kirmod cmp=y dip=${SOURCES[1]}
67+
nh=161 dh=0.025 h0=0
68+
ns=401 ds=0.025 s0=0
69+
freq=10 dt=0.004 nt=1001
70+
vel=1.5 gradz=0.5 gradx=0.0 verb=y |
71+
put d2=0.0125 label3="CMP" unit3="Km" label2="Offset" unit2="Km" label1=Time unit1=s
72+
''')
73+
74+
Result('dataCube',grey3('Modeled seismic data cube'))
75+
76+
# Select a CMP gather m0=5Km
77+
Flow('cmpGather','dataCube',
78+
'''
79+
window n3=1 f3=200
80+
''')
81+
82+
Result('cmpGather',grey('CMP Gather 5Km'))
83+
84+
End()
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# coding: utf-8
2+
#
3+
# graph_scons.py (Python)
4+
#
5+
# Purpose: Definition of ploting functions.
6+
#
7+
# Site: http://www.dirackslounge.online
8+
#
9+
# Version 1.0
10+
#
11+
# Programer: Rodolfo Dirack 22/08/2019
12+
#
13+
14+
#
15+
# License: GPL-3.0 <https://www.gnu.org/licenses/gpl-3.0.txt>.
16+
17+
def wiggle(title):
18+
return '''
19+
wiggle wheretitle=top yreverse=y transp=y label1=Time unit1=s label2=CMP unit2=km pclip=99.5 title="%s"
20+
''' % title
21+
22+
def grey(title):
23+
return '''
24+
grey label1=Time unit1=s label2=CMP unit2=km pclip=99.5 title="%s"
25+
''' % title
26+
27+
def grey3(title):
28+
return '''
29+
byte |
30+
transp plane=23 |
31+
grey3 flat=n frame1=500 frame3=80 frame2=200
32+
label1=Time unit1=s
33+
label3=Offset unit3=km
34+
label2=CMP unit2=km
35+
title="%s" point1=0.8 point2=0.8
36+
''' % title
37+

0 commit comments

Comments
 (0)