pylops.avo.avo.AVOLinearModellingยถ
- class pylops.avo.avo.AVOLinearModelling(theta, vsvp=0.5, nt0=1, spatdims=None, linearization='akirich', dtype='float64', name='A')[source]ยถ
AVO Linearized modelling.
Create operator to be applied to a combination of elastic parameters for generation of seismic pre-stack reflectivity.
- Parameters:
- theta
numpy.ndarray Incident angles in degrees
- vsvp
numpy.ndarrayorfloat \(V_S/V_P\) ratio
- nt0
int, optional Number of samples (if
vsvpis a scalar)- spatdims
intortuple, optional Number of samples along spatial axis (or axes) (
Noneif only one dimension is available)- linearization{โakirichโ, โfattiโ, โPSโ}, optional
โakirichโ: Aki-Richards. See
pylops.avo.avo.akirichards.โfattiโ: Fatti. See
pylops.avo.avo.fatti.โPSโ: PS. See
pylops.avo.avo.ps.
- dtype
str, optional Type of elements in input array.
- name
str, optional Added in version 2.0.0.
Name of operator (to be used by
pylops.utils.describe.describe)
- theta
- Attributes:
- ntheta
int Number of angles.
- G
numpy.ndarray AVO coefficients of shape \([n_{\theta} \times N \times 1 \times \ldots \times 1]\) where \(N=2,\, 3\) is the number of elastic parameters and the remaining dimensions are singleton dimensions to account for spatial axes.
- dims
tuple Shape of the array after the adjoint, but before flattening.
For example,
x_reshaped = (Op.H * y.ravel()).reshape(Op.dims).- dimsd
tuple Shape of the array after the forward, but before flattening.
For example,
y_reshaped = (Op * x.ravel()).reshape(Op.dimsd).- shape
tuple Operator shape.
- ntheta
- Raises:
- NotImplementedError
If
linearizationis not an implemented linearization
Notes
The AVO linearized operator performs a linear combination of three (or two) elastic parameters arranged in input vector \(\mathbf{m}\) of size \(n_{t_0} \times N\) to create the so-called seismic reflectivity:
\[r(t, \theta, x, y) = \sum_{i=1}^N G_i(t, \theta) m_i(t, x, y) \qquad \forall \,t,\theta\]where \(N=2,\, 3\). Note that the reflectivity can be in 1d, 2d or 3d and
spatdimscontains the dimensions of the spatial axis (or axes) \(x\) and \(y\).Methods
__init__(theta[, vsvp, nt0, spatdims, ...])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()