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:
thetanumpy.ndarray

Incident angles in degrees

vsvpnumpy.ndarray or float

\(V_S/V_P\) ratio

nt0int, optional

Number of samples (if vsvp is a scalar)

spatdimsint or tuple, optional

Number of samples along spatial axis (or axes) (None if only one dimension is available)

linearization{โ€œakirichโ€, โ€œfattiโ€, โ€œPSโ€}, optional
dtypestr, optional

Type of elements in input array.

namestr, optional

Added in version 2.0.0.

Name of operator (to be used by pylops.utils.describe.describe)

Attributes:
nthetaint

Number of angles.

Gnumpy.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.

dimstuple

Shape of the array after the adjoint, but before flattening.

For example, x_reshaped = (Op.H * y.ravel()).reshape(Op.dims).

dimsdtuple

Shape of the array after the forward, but before flattening.

For example, y_reshaped = (Op * x.ravel()).reshape(Op.dimsd).

shapetuple

Operator shape.

Raises:
NotImplementedError

If linearization is 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 spatdims contains 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()