pylops.waveeqprocessing.Demigration(z, x, t, srcs, recs, vel, wav, wavcenter, y=None, trav=None, mode='eikonal')[source]

Demigration operator.

Seismic demigration/migration operator.

z : numpy.ndarray

Depth axis

x : numpy.ndarray

Spatial axis

t : numpy.ndarray

Time axis for data

srcs : numpy.ndarray

Sources in array of size \(\lbrack 2/3 \times n_s \rbrack\)

recs : numpy.ndarray

Receivers in array of size \(\lbrack 2/3 \times n_r \rbrack\)

vel : numpy.ndarray or float

Velocity model of size \(\lbrack (n_y \times) n_x \times n_z \rbrack\) (or constant)

wav : numpy.ndarray


wavcenter : int

Index of wavelet center

y : numpy.ndarray

Additional spatial axis (for 3-dimensional problems)

mode : str, optional

Computation mode (analytic, eikonal or byot, see Notes for more details)

trav : numpy.ndarray, optional

Traveltime table of size \(\lbrack (n_y*) n_x*n_z \times n_r \rbrack\) (to be provided if mode='byot')

demop : pylops.LinearOperator

Demigration/Migration operator


If mode is neither analytic, eikonal, or byot


The demigration operator synthetizes seismic data given from a propagation velocity model \(v\) and a reflectivity model \(m\). In forward mode:

\[d(\mathbf{x_r}, \mathbf{x_s}, t) = w(t) * \int_V G(\mathbf{x}, \mathbf{x_s}, t) G(\mathbf{x_r}, \mathbf{x}, t) m(\mathbf{x}) d\mathbf{x}\]

where \(m(\mathbf{x})\) is the model and it represents the reflectivity at every location in the subsurface, \(G(\mathbf{x}, \mathbf{x_s}, t)\) and \(G(\mathbf{x_r}, \mathbf{x}, t)\) are the Green’s functions from source-to-subsurface-to-receiver and finally \(w(t)\) is the wavelet. Depending on the choice of mode the Green’s function will be computed and applied differently:

  • mode=analytic or mode=eikonal: traveltime curves between source to receiver pairs are computed for every subsurface point and Green’s functions are implemented from traveltime look-up tables, placing the reflectivity values at corresponding source-to-receiver time in the data.
  • byot: bring your own table. Traveltime table provided directly by user using trav input parameter. Green’s functions are then implemented in the same way as previous options.

The adjoint of the demigration operator is a migration operator which projects data in the model domain creating an image of the subsurface reflectivity.