pymarchenko.raymarchenko.RayleighMarchenko#
- class pymarchenko.raymarchenko.RayleighMarchenko(VZplus, VZminus, dt=0.004, nt=None, dr=1.0, nfmax=None, wav=None, toff=0.0, nsmooth=10, dtype='float64', saveVt=True, prescaled=False)[source]#
Rayleigh-Marchenko redatuming
Solve multi-dimensional Rayleigh-Marchenko redatuming problem using
scipy.sparse.linalg.lsqriterative solver.- Parameters:
- VZplus
numpy.ndarray Multi-dimensional downgoing particle velocity data in time or frequency domain of size \([n_s \times n_r \times n_t/n_{fmax}]\). If provided in time,
VZplusshould not be of complex type. If provided in frequency,VZplshould contain the positive time axis followed by the negative one.- VZminus
numpy.ndarray Multi-dimensional upgoing particle velocity data in time or frequency domain of size \([n_s \times n_r \times n_t/n_{fmax}]\). If provided in time,
VZminusshould not be of complex type. If provided in frequency,VZminusshould contain the positive time axis followed by the negative one.- dt
float, optional Sampling of time integration axis
- nt
float, optional Number of samples in time (not required if
Ris 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.
- saveVt
bool, optional Save
VZplusandVZplus^H(andVZminusandVZminus^H) to speed up the computation of adjoint ofpylops.signalprocessing.Fredholm1(True) or createVZplus^HandVZminus^Hon-the-fly (False) Note thatsaveVt=Truewill be faster but double the amount of required memory- prescaled
bool, optional Apply scaling to
VzplusandVZminus(False) or not (False) when performing spatial and temporal summations within thepylops.waveeqprocessing.MDCoperator.
- VZplus
- Raises:
- TypeError
If
tis notnumpy.ndarray.
Notes
Rayleigh-Marchenko redatuming is a method that allows to produce correct subsurface-to-surface responses given the availability of up- and down- separated particle velocity data and a macro-velocity model [1].
The Rayleigh-Marchenko equations can be written in a compact matrix form and solved by means of iterative solvers such as LSQR:
\[\begin{split}\begin{bmatrix} -\Theta \mathbf{V}_z^- \mathbf{f_d^+} \\ -\Theta \mathbf{V}_z^{+*} \mathbf{f_d^+} \end{bmatrix} = \begin{bmatrix} \Theta \mathbf{V}_z^+ & \Theta \mathbf{V}_z^- \\ \Theta \mathbf{V}_z^{-*} & \Theta \mathbf{V}_z^{+*} \end{bmatrix} \begin{bmatrix} \mathbf{f^-} \\ \mathbf{f_m^+} \end{bmatrix}\end{split}\]Finally the subsurface Green’s functions can be obtained applying the following operator to the retrieved focusing functions
\[\begin{split}\begin{bmatrix} -\mathbf{p}^- \\ \mathbf{p}^{+*} \end{bmatrix} = \begin{bmatrix} \mathbf{V}_z^+ & \mathbf{V}_z^- \\ \mathbf{V}_z^{-*} & \mathbf{V}_z^{+*} \end{bmatrix} \begin{bmatrix} \mathbf{f^-} \\ \mathbf{f^+} \end{bmatrix}\end{split}\][1]Ravasi, M., “Rayleigh-Marchenko redatuming for target-oriented, true-amplitude imaging”, Geophysics, vol. 82, pp. S439-S452. 2017.
- Attributes:
Methods
__init__(VZplus, VZminus[, dt, nt, dr, ...])apply_multiplepoints(travsrc, travrec[, G0, ...])Rayleigh-Marchenko redatuming for multiple points
apply_onepoint(travsrc, travrec[, G0, nfft, ...])Rayleigh-Marchenko redatuming for one point