pylops_distributed.waveeqprocessing.Demigration¶
-
pylops_distributed.waveeqprocessing.Demigration(z, x, t, srcs, recs, vel, wav, wavcenter, y=None, mode='eikonal', trav=None, nprocesses=None, client=None)[source]¶ Demigration operator.
Seismic demigration/migration operator.
Parameters: - 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.ndarrayorfloat Velocity model of size \(\lbrack (n_y \times) n_x \times n_z \rbrack\) (or constant)
- wav :
numpy.ndarray Wavelet
- wavcenter :
int Index of wavelet center
- y :
numpy.ndarray Additional spatial axis (for 3-dimensional problems)
- mode :
str, optional Computation mode (
analytic,eikonalorbyot, see Notes for more details)- trav :
numpy.ndarrayordask.array.core.Array, optional Traveltime table of size \(\lbrack n_r*n_s \times (n_y*) n_x*n_z \rbrack\) To be provided only when
mode='byot'- nprocesses :
str, optional Number of processes to split computations
- client :
dask.distributed.client.Client, optional Dask client. If provided, the traveltime computation will be persisted.
Returns: - demop :
pylops.LinearOperator Demigration/Migration operator
Raises: - NotImplementedError
If
modeis neitheranalytic,eikonal, orbyot
Notes
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
modethe Green’s function will be computed and applied differently:mode=analyticormode=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 usingtravinput 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.
- z :