pylops_distributed.waveeqprocessing.MDC¶
-
pylops_distributed.waveeqprocessing.
MDC
(G, nt, nv, dt=1.0, dr=1.0, twosided=True, saveGt=True, conj=False, prescaled=False, compute=(False, False), todask=(False, False))[source]¶ Multi-dimensional convolution.
Apply multi-dimensional convolution between two datasets. Model and data should be provided after flattening 2- or 3-dimensional arrays of size \([n_t \times n_r (\times n_{vs})]\) and \([n_t \times n_s (\times n_{vs})]\) (or \(2*n_t-1\) for
twosided=True
), respectively.Parameters: - G :
dask.array.ndarray
Multi-dimensional convolution kernel in frequency domain of size \([n_{fmax} \times n_s \times n_r]\)
- nt :
int
Number of samples along time axis
- nv :
int
Number of samples along virtual source axis
- dt :
float
, optional Sampling of time integration axis
- dr :
float
, optional Sampling of receiver integration axis
- twosided :
bool
, optional MDC operator has both negative and positive time (
True
) or only positive (False
)- saveGt :
bool
, optional Save
G
andG^H
to speed up the computation of adjoint ofpylops_distributed.signalprocessing.Fredholm1
(True
) or createG^H
on-the-fly (False
) Note thatsaveGt=True
will be faster but double the amount of required memory- conj :
str
, optional Perform Fredholm integral computation with complex conjugate of
G
- prescaled :
bool
, optional Apply scaling to kernel (
False
) or not (False
) when performing spatial and temporal summations. In caseprescaled=True
, the kernel is assumed to have been pre-scaled when passed to the MDC routine.- compute :
tuple
, optional Compute the outcome of forward and adjoint or simply define the graph and return a
dask.array
- todask :
tuple
, optional Apply
dask.array.from_array
to model and data before applying forward and adjoint respectively
Notes
Refer to
pylops.waveeqprocessing.MDC
for implementation details.- G :