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
GandG^Hto speed up the computation of adjoint ofpylops_distributed.signalprocessing.Fredholm1(True) or createG^Hon-the-fly (False) Note thatsaveGt=Truewill 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_arrayto model and data before applying forward and adjoint respectively
Notes
Refer to
pylops.waveeqprocessing.MDCfor implementation details.- G :