pylops.avo.prestack.PrestackInversion#
- pylops.avo.prestack.PrestackInversion(data, theta, wav, m0=None, linearization='akirich', explicit=False, simultaneous=False, epsI=None, epsR=None, dottest=False, returnres=False, epsRL1=None, kind='centered', vsvp=0.5, **kwargs_solver)[source]#
Pre-stack linearized seismic inversion.
Invert pre-stack seismic operator to retrieve a set of elastic property profiles from band-limited seismic pre-stack data (i.e., angle gathers). Depending on the choice of input parameters, inversion can be trace-by-trace with explicit operator or global with either explicit or linear operator.
- Parameters
- data
np.ndarray
Band-limited seismic post-stack data of size \([(n_\text{lins} \times) \, n_{t_0} \times n_{\theta} \, (\times n_x \times n_y)]\)
- theta
np.ndarray
Incident angles in degrees
- wav
np.ndarray
Wavelet in time domain (must had odd number of elements and centered to zero)
- m0
np.ndarray
, optional Background model of size \([n_{t_0} \times n_{m} \,(\times n_x \times n_y)]\)
- linearization{“akirich”, “fatti”, “PS”} or
list
, optional “akirich”: Aki-Richards. See
pylops.avo.avo.akirichards
.“fatti”: Fatti. See
pylops.avo.avo.fatti
.“PS”: PS. See
pylops.avo.avo.ps
.List which is a combination of previous options (required only when
m0 is None
).
- explicit
bool
, optional Create a chained linear operator (
False
, preferred for large data) or aMatrixMult
linear operator with dense matrix (True
, preferred for small data)- simultaneous
bool
, optional Simultaneously invert entire data (
True
) or invert trace-by-trace (False
) when usingexplicit
operator (note that the entire data is always inverted when working with linear operator)- epsI
float
orlist
, optional Damping factor(s) for Tikhonov regularization term. If a list of \(n_{m}\) elements is provided, the regularization term will have different strenght for each elastic property
- epsR
float
, optional Damping factor for additional Laplacian regularization term
- dottest
bool
, optional Apply dot-test
- returnres
bool
, optional Return residuals
- epsRL1
float
, optional Damping factor for additional blockiness regularization term
- kind
str
, optional Derivative kind (
forward
orcentered
).- vsvp
float
ornp.ndarray
\(V_S/V_P\) ratio (constant or time/depth variant)
- **kwargs_solver
Arbitrary keyword arguments for
scipy.linalg.lstsq
solver (ifexplicit=True
andepsR=None
) orscipy.sparse.linalg.lsqr
solver (ifexplicit=False
and/orepsR
is notNone
))
- data
- Returns
- minv
np.ndarray
Inverted model of size \([n_{t_0} \times n_{m} \,(\times n_x \times n_y)]\)
- datar
np.ndarray
Residual data (i.e., data - background data) of size \([n_{t_0} \times n_{\theta} \,(\times n_x \times n_y)]\)
- minv
Notes
The different choices of cost functions and solvers used in the seismic pre-stack inversion module follow the same convention of the seismic post-stack inversion module.
Refer to
pylops.avo.poststack.PoststackInversion
for more details.