SeismicQ.jl
Tout ce que vous avez toujours voulu savoir sur le Q.
Package Features
- Compute source functions
Function Documentation: Sources
SeismicQ.Ricker
โ FunctionRicker(t, tโ, ๐โ)
Compute the Ricker function for t, tโ and ๐โ.
\[f = (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2 ๐โ^2 (t - tโ)^2)\]
Examples
julia> Ricker(0.0, 0.0, 0.0)
-1.0
Ricker(x, xโ, t, tโ, ๐โ)
Compute the Ricker function with a dirac.
\[f = \delta(xโ) \exp{(-((x-xโ)^2)/2.0/ฯโ^2)} (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2.0๐โ^2.0(t - tโ)^2)\]
Examples
julia> Ricker(2., 2., 0.0, 0.0, 0.0)
-0.1353352832366127
Ricker(x, xโ, t, tโ, ๐โ, ฯโ)
Compute the Ricker function with 1D spatial support.
\[f = \exp{(-((x-xโ)^2)/2.0/ฯโ^2)} (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2.0๐โ^2.0(t - tโ)^2)\]
Examples
julia> Ricker(2., 0., 0.0, 0.0, 0.0, 1)
-0.1353352832366127
Ricker(x, xโ, y, yโ, t, tโ, ๐โ, ฯโ)
Compute the Ricker function with 2D spatial support.
\[f = \exp{(-((x-xโ)^2)/2.0/ฯโ^2)} (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2.0๐โ^2.0(t - tโ)^2)\]
Examples
julia> Ricker(2., 0., 2., 0., 0.0, 0.0, 0.0, 1)
-0.01831563888873418
Function Documentation: Rheology
SeismicQ.f_bulk
โ Functionf_bulk(K)
Volumetric part of the elastic constitutive update: provides the bulk modulus K for use in
\[ฮp = -K โโ v ฮt\]
f_bulk(K,ฮทb,ฮt)
compute effective bulk modulus for a Kelvin visco-elastic constitutive update using the Fatboy number
Function Documentation: Treatment
SeismicQ.Spec
โ FunctionSpec(trace,t0,dt,Nt,tp,ts,\Deltaph)
Returns the amplitude spectrums of the P ans S phases where amplitudes are significant
trace: the trace recorded at a given virtual station, starting at -t0, with time sampling dt, Nt samples
+1.0
Ricker(x, xโ, t, tโ, ๐โ)
Compute the Ricker function with a dirac.
\[f = \delta(xโ) \exp{(-((x-xโ)^2)/2.0/ฯโ^2)} (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2.0๐โ^2.0(t - tโ)^2)\]
Examples
julia> Ricker(2., 2., 0.0, 0.0, 0.0)
+0.1353352832366127
Ricker(x, xโ, t, tโ, ๐โ, ฯโ)
Compute the Ricker function with 1D spatial support.
\[f = \exp{(-((x-xโ)^2)/2.0/ฯโ^2)} (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2.0๐โ^2.0(t - tโ)^2)\]
Examples
julia> Ricker(2., 0., 0.0, 0.0, 0.0, 1)
+0.1353352832366127
Ricker(x, xโ, y, yโ, t, tโ, ๐โ, ฯโ)
Compute the Ricker function with 2D spatial support.
\[f = \exp{(-((x-xโ)^2)/2.0/ฯโ^2)} (1.0 - 2.0 (\pi ๐โ (t - tโ))^2) \exp(-ฯ^2.0๐โ^2.0(t - tโ)^2)\]
Examples
julia> Ricker(2., 0., 2., 0., 0.0, 0.0, 0.0, 1)
+0.01831563888873418
Function Documentation: Rheology
Missing docstring for f_bulk
. Check Documenter's build log for details.
Function Documentation: Treatment
SeismicQ.Spec
โ FunctionSpec(trace,t0,dt,Nt,tp,ts,\Deltaph)
Returns the amplitude spectrums of the P ans S phases where amplitudes are significant
trace: the trace recorded at a given virtual station, starting at -t0, with time sampling dt, Nt samples
tp: picked P-wave phase (s)
ts: picked S-wave phase (s)
ฮph: width of the phases (s)
Vec2dP: modulus of the fft coeffs of P phase where they are larger than max(Vec2dp)/10
@@ -21,7 +21,7 @@
phase P is picked at 0.7 s
phase S is picked at 1.25 s
phase width is set to 0.35
-+ Figure with 8 subplots
SeismicQ.ComputeQgraph
โ Function(x,y)=ComputeQgraph(amp1,amp2,freq,index,d1,d2,V)
Returns x and y to plot Q-graph for a given phase using the results of Spec() for two different traces from two stations
y=V/(ฯ(d2-d1))*ln(amp2(f)/amp1(f)
++ Figure with 8 subplots
SeismicQ.ComputeQgraph
โ Function(x,y)=ComputeQgraph(amp1,amp2,freq,index,d1,d2,V)
Returns x and y to plot Q-graph for a given phase using the results of Spec() for two different traces from two stations
y=V/(ฯ(d2-d1))*ln(amp2(f)/amp1(f)
x=f
Considering two attenuated waves at two different distances from the source (d1<d2), we obtain the following relation:
@@ -31,7 +31,7 @@
for the developpment of these routines. In an homogeneous Q medium the graph should be linear. In more complex attenuation media,
the graph could be non-linear?
- Velocity is considered constant: the current code does not account for possible dispersion...
Examples
julia>
SeismicQ.Getfreq
โ FunctionGetfreq(dt,Nt)
Returns the frequency vector corresponding to the fft results
dt is the time sample in s
+ Velocity is considered constant: the current code does not account for possible dispersion...
Examples
julia>
SeismicQ.Getfreq
โ FunctionGetfreq(dt,Nt)
Returns the frequency vector corresponding to the fft results
dt is the time sample in s
Nt is the number of samples in the trace given to fft()
The frequency increment is 1/(Nt*dt)
Vector goes beyond Nyquist Frequency as fft also does. Only the first half of the vectors are useful for us
Examples
julia> Getfreq(1e-3,2000)
@@ -52,5 +52,5 @@
998.5
999.0
999.5
- 1000.0
SeismicQ.GenAttenuatedRicker
โ Functiontime_vec,acc_vec = GenAttenuatedRicker(listโ,ฮt,Nt,Vp,Vs,ฮฑp,ฮฑs,๐โ) ;
Function that generates a seismic trace (Ricker wavelet) of P and S waves. This wave is attenuated along time and the function creates a matrix of wave amplitude as a function of time and distance to the source. The function takes as inputs: listโ : vector of geophone distances to the source [m] ฮt : time step of the wave signal [s] Nt : number of time steps of the wave signal Vp : P-wave velocity [m/s] Vs : S-wave velocity [m/s] ฮฑp : attenuation factor for P-wave ฮฑs : attenuation factor for S-wave ๐โ : central frequency of the source [Hz]
and return: timevec : vector containing the time steps of the received wave signal accvec : matrix of wave acceleration at each geophone position
Examples
julia> time_vec,acc_vec = GenAttenuatedRicker(0:1000:5000,1e-3,2000,7000,4000,2e-4,4e-4,10.0)
-