# pylops.avo.prestack.PrestackLinearModelling¶

pylops.avo.prestack.PrestackLinearModelling(wav, theta, vsvp=0.5, nt0=1, spatdims=None, linearization='akirich', explicit=False)[source]

Pre-stack linearized seismic modelling operator.

Create operator to be applied to elastic property profiles for generation of band-limited seismic angle gathers from a linearized version of the Zoeppritz equation.

Parameters: wav : np.ndarray Wavelet in time domain (must had odd number of elements and centered to zero) theta : np.ndarray Incident angles in degrees vsvp : float or np.ndarray VS/VP ratio (constant or time/depth variant) nt0 : int, optional number of samples (if vsvp is a scalar) spatdims : int or tuple, optional Number of samples along spatial axis (or axes) (None if only one dimension is available) linearization : str, optional choice of linearization, akirich: Aki-Richards, fatti: Fatti explicit : bool, optional Create a chained linear operator (False, preferred for large data) or a MatrixMult linear operator with dense matrix (True, preferred for small data) Preop : LinearOperator pre-stack modelling operator. NotImplementedError If linearization is not an implemented linearization

Notes

Pre-stack seismic modelling is the process of constructing seismic pre-stack data from three (or two) profiles of elastic parameters in time (or depth) domain arranged in an input vector $$\mathbf{m}$$ of size $$nt0 \times N$$. This can be easily achieved using the following forward model:

$d(t, \theta) = w(t) * \sum_{i=1}^N G_i(t, \theta) m_i(t)$

where $$w(t)$$ is the time domain seismic wavelet. In compact form:

$\mathbf{d}= \mathbf{G} \mathbf{m}$

On the other hand, pre-stack inversion aims at recovering the different profiles of elastic properties from the band-limited seismic pre-stack data.