pylops_distributed.waveeqprocessing.MDC¶
-
class
pylops_distributed.waveeqprocessing.MDC(G, nt, nv, dt=1.0, dr=1.0, twosided=True, saveGt=False, conj=False, prescaled=False, chunks=(None, None), compute=(False, False), todask=(False, False), dtype=None)[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- dtype :
str, optional Type of elements in input array. If
None, automatically inferred fromG
Notes
Refer to
pylops.waveeqprocessing.MDCfor implementation details.Methods
__init__(G, nt, nv[, dt, dr, twosided, …])Initialize this LinearOperator. adjoint()Hermitian adjoint. apply_columns(cols)Apply subset of columns of operator cond([uselobpcg])Condition number of linear operator. conj()Complex conjugate operator div(y[, niter])Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\). dot(x)Matrix-vector multiplication. eigs([neigs, symmetric, niter, uselobpcg])Most significant eigenvalues of linear operator. matmat(X)Matrix-matrix multiplication. matvec(x)Matrix-vector multiplication. rmatmat(X)Adjoint matrix-matrix multiplication. rmatvec(x)Adjoint Matrix-vector multiplication. todense()Return dense matrix. tosparse()Return sparse matrix. transpose()Transpose this linear operator. - G :