pymarchenko.neumarchenko.NeumannMarchenko#
- class pymarchenko.neumarchenko.NeumannMarchenko(R, dt=0.004, nt=None, dr=1.0, nfmax=None, wav=None, toff=0.0, nsmooth=10, dtype='float64', saveRt=True, prescaled=False)[source]#
Iterative Marchenko redatuming
Solve multi-dimensional Marchenko redatuming problem using Neumann iterative substitution.
- Parameters:
- R
numpy.ndarray
Multi-dimensional reflection response in time or frequency domain of size \([n_s \times n_r \times n_t/n_{fmax}]\). If provided in time,
R
should not be of complex type. If provided in frequency,R
should contain the positive time axis followed by the negative one. Note that the reflection response should have already been multiplied by 2.- dt
float
, optional Sampling of time integration axis
- nt
float
, optional Number of samples in time (not required if
R
is in time)- dr
float
, optional Sampling of receiver integration axis
- nfmax
int
, optional Index of max frequency to include in deconvolution process
- wav
numpy.ndarray
, optional Wavelet to apply to direct arrival when created using
trav
- toff
float
, optional Time-offset to apply to traveltime
- nsmooth
int
, optional Number of samples of smoothing operator to apply to window
- dtype
bool
, optional Type of elements in input array.
- saveRt
bool
, optional Save
R
andR^H
to speed up the computation of adjoint ofpylops.signalprocessing.Fredholm1
(True
) or createR^H
on-the-fly (False
) Note thatsaveRt=True
will be faster but double the amount of required memory- prescaled
bool
, optional Apply scaling to
R
(False
) or not (False
) when performing spatial and temporal summations within thepylops.waveeqprocessing.MDC
operator. In caseprescaled=True
, theR
is assumed to have been pre-scaled by the user.
- R
- Raises:
- TypeError
If
t
is notnumpy.ndarray
.
Notes
Marchenko redatuming is a method that allows to produce correct subsurface-to-surface responses given the availability of a reflection data and a macro-velocity model [1].
The Marchenko equations can be solved via Neumann iterative substitution:
\[\mathbf{f_m^+} = \Theta \mathbf{R^*} (\Theta \mathbf{R} \mathbf{f_d^+} + \Theta \mathbf{R} \mathbf{f_m^+})\]and isolating \(\mathbf{f_m^+}\):
\[(\mathbf{I} - \Theta \mathbf{R^*}\Theta \mathbf{R}) \mathbf{f_m^+} = \Theta \mathbf{R^*} \Theta \mathbf{R} \mathbf{f_d^+}\]We can then expand the term within parenthesis as a Neumann series and write:
\[\mathbf{f^+} = \sum_{k=0}^\inf (\Theta \mathbf{R^*}\Theta \mathbf{R})^k \mathbf{f_d^+}\]Finally the subsurface Green’s functions can be obtained applying the following operator to the retrieved focusing functions
\[\begin{split}\begin{bmatrix} -\mathbf{g^-} \\ \mathbf{g^{+ *}} \end{bmatrix} = \mathbf{I} - \begin{bmatrix} \mathbf{0} & \mathbf{R} \\ \mathbf{R^*} & \mathbf{0} \end{bmatrix} \begin{bmatrix} \mathbf{f^-} \\ \mathbf{f^+} \end{bmatrix}\end{split}\]Here \(\mathbf{R}\) is the monopole-to-particle velocity seismic response (already multiplied by 2).
[1]Wapenaar, K., Thorbecke, J., Van der Neut, J., Broggini, F., Slob, E., and Snieder, R., “Marchenko imaging”, Geophysics, vol. 79, pp. WA39-WA57. 2014.
- Attributes:
Methods
__init__
(R[, dt, nt, dr, nfmax, wav, toff, ...])apply_onepoint
(trav[, G0, nfft, rtm, ...])Marchenko redatuming for one point
Examples using pymarchenko.neumarchenko.NeumannMarchenko
#
1. Marchenko redatuming by iterative substitution