fracspy.modelling.trueamp_kirchhoff.TAKirchhoff#
- class fracspy.modelling.trueamp_kirchhoff.TAKirchhoff(z, x, t, recs, wav, wavcenter, y=None, wavfilter=False, trav=None, amp=None, engine='numpy', dtype='float64', name='K')[source]#
True-amplitude Kirchhoff single-sided, demigration operator.
True-amplitude Kirchhoff-based demigration/migration operator for single-sided propagation (from subsurface to surface). Uses a high-frequency approximation of Green’s function propagators based on
trav
andamp
.- Parameters:
- z
numpy.ndarray
Depth axis
- x
numpy.ndarray
Spatial axis
- t
numpy.ndarray
Time axis for data
- recs
numpy.ndarray
Receivers in array of size \(\lbrack 2 (3) \times n_r \rbrack\) The first axis should be ordered as (
y
,)x
,z
.- vel
numpy.ndarray
orfloat
Velocity model of size \(\lbrack (n_y\,\times)\; n_x \times n_z \rbrack\) (or constant)
- wav
numpy.ndarray
Wavelet.
- wavcenter
int
Index of wavelet center
- y
numpy.ndarray
Additional spatial axis (for 3-dimensional problems)
- wavfilter
bool
, optional Apply wavelet filter (
True
) or not (False
)- trav
numpy.ndarray
ortuple
, optional Traveltime table of size \(\lbrack (n_y) n_x n_z \times n_r \rbrack\).
- amp
numpy.ndarray
, optional Amplitude table of size \(\lbrack (n_y) n_x n_z \times n_r \rbrack\).
- engine
str
, optional Engine used for computations (
numpy
ornumba
).- dtype
str
, optional Type of elements in input array.
- name
str
, optional Name of operator (to be used by
pylops.utils.describe.describe
)
- z
- Attributes:
Notes
The True-amplitude Kirchhoff single-sided demigration operator synthesizes seismic data given a propagation velocity model \(v\) and a source distribution \(m\).
In forward mode:
\[d(\mathbf{x_r}, \mathbf{x_s}, t) = \widetilde{w}(t) * \int_V G(\mathbf{x_r}, \mathbf{x_s}, t) m(\mathbf{x_s})\,\mathrm{d}\mathbf{x_s}\]where \(m(\mathbf{x_s})\) represents the source distribution at every location in the subsurface, \(G(\mathbf{x_r}, \mathbf{x_s}, t)\) is the Green’s function from source-to-receiver, and finally \(\widetilde{w}(t)\) is a filtered version of the wavelet \(w(t)\) [1] (or the wavelet itself when
wavfilter=False
). In our implementation, the following high-frequency approximation of the Green’s functions is adopted:\[G(\mathbf{x_r}, \mathbf{x}, \omega) = a(\mathbf{x_r}, \mathbf{x}) e^{j \omega t(\mathbf{x_r}, \mathbf{x})}\]where \(a(\mathbf{x_r}, \mathbf{x})\) is the amplitude and \(t(\mathbf{x_r}, \mathbf{x})\) is the traveltime. These must be pre-computed and passed directly to the operator.
Finally, the adjoint of the demigration operator is a migration operator which projects the data in the model domain creating an image of the source distribution.
[1]Safron, L. “Multicomponent least-squares Kirchhoff depth migration”, MSc Thesis, 2018.
Methods
__init__
(z, x, t, recs, wav, wavcenter[, y, ...])adjoint
()apply_columns
(cols)Apply subset of columns of operator
cond
([uselobpcg])Condition number of linear operator.
conj
()Complex conjugate operator
div
(y[, niter, densesolver])Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\).
dot
(x)Matrix-matrix or matrix-vector multiplication.
eigs
([neigs, symmetric, niter, uselobpcg])Most significant eigenvalues of linear operator.
matmat
(X)Matrix-matrix multiplication.
matvec
(x)Matrix-vector multiplication.
reset_count
()Reset counters
rmatmat
(X)Matrix-matrix multiplication.
rmatvec
(x)Adjoint matrix-vector multiplication.
todense
([backend])Return dense matrix.
toimag
([forw, adj])Imag operator
toreal
([forw, adj])Real operator
tosparse
()Return sparse matrix.
trace
([neval, method, backend])Trace of linear operator.
transpose
()