pylops.avo.poststack.PoststackLinearModelling(wav, nt0, spatdims=None, explicit=False, sparse=False, kind='centered', name=None)[source]#

Post-stack linearized seismic modelling operator.

Create operator to be applied to an elastic parameter trace (or stack of traces) for generation of band-limited seismic post-stack data. The input model and data have shape \([n_{t_0} \,(\times n_x \times n_y)]\).


Wavelet in time domain (must have odd number of elements and centered to zero). If 1d, assume stationary wavelet for the entire time axis. If 2d, use as non-stationary wavelet (user must provide one wavelet per time sample in an array of size \([n_{t_0} \times n_\text{wav}]\) where \(n_\text{wav}\) is the length of each wavelet). Note that the dtype of this variable will define that of the operator


Number of samples along time axis

spatdimsint or tuple, optional

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

explicitbool, optional

Create a chained linear operator (False, preferred for large data) or a MatrixMult linear operator with dense matrix (True, preferred for small data)

sparsebool, optional

Create a sparse matrix (True) or dense (False) when explicit=True

kindstr, optional

Derivative kind (forward or centered).

namestr, optional

New in version 2.0.0.

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


post-stack modelling operator.


If wav is two dimensional but does not contain nt0 wavelets


Post-stack seismic modelling is the process of constructing seismic post-stack data from a profile of an elastic parameter of choice in time (or depth) domain. This can be easily achieved using the following forward model:

\[d(t, \theta=0) = w(t) * \frac{\mathrm{d}\ln m(t)}{\mathrm{d}t}\]

where \(m(t)\) is the elastic parameter profile and \(w(t)\) is the time domain seismic wavelet. In compact form:

\[\mathbf{d}= \mathbf{W} \mathbf{D} \mathbf{m}\]

In the special case of acoustic impedance (\(m(t)=AI(t)\)), the modelling operator can be used to create zero-offset data:

\[d(t, \theta=0) = \frac{1}{2} w(t) * \frac{\mathrm{d}\ln m(t)}{\mathrm{d}t}\]

where the scaling factor \(\frac{1}{2}\) can be easily included in the wavelet.