pylops_distributed.waveeqprocessing.MDD¶
-
pylops_distributed.waveeqprocessing.MDD(G, d, dt=0.004, dr=1.0, nfmax=None, wav=None, twosided=True, adjoint=False, dottest=False, saveGt=False, add_negative=True, **kwargs_cgls)[source]¶ Multi-dimensional deconvolution.
Solve multi-dimensional deconvolution problem using
scipy.sparse.linalg.lsqriterative solver.Parameters: - G :
dask.array.ndarray Multi-dimensional convolution kernel in frequency domain of size \([n_{f,max} \times n_s \times n_r]\)
- d :
dask.array.ndarray Data in time domain \([n_t \times n_s (\times n_vs)]\) if
twosided=Falseortwosided=Trueandadd_negative=True(with only positive times) or size \([2*n_t-1 \times n_s (\times n_vs)]\) iftwosided=True- dt :
float, optional Sampling of time integration axis
- dr :
float, optional Sampling of receiver integration axis
- nfmax :
int, optional Index of max frequency to include in deconvolution process
- wav :
numpy.ndarray, optional Wavelet to convolve to the inverted model and psf (must be centered around its index in the middle of the array). If
None, the outputs of the inversion are returned directly.- twosided :
bool, optional MDC operator and data both negative and positive time (
True) or only positive (False)- add_negative :
bool, optional Add negative side to MDC operator and data (
True) or not (False)- operator and data are already provided with both positive and negative sides. To be used only withtwosided=True.- adjoint :
bool, optional Compute and return adjoint(s)
- dottest :
bool, optional Apply dot-test
- 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- **kwargs_cgls
Arbitrary keyword arguments for
pylops_distributed.optimization.cg.cglssolver
Returns: - minv :
dask.array.ndarray Inverted model of size \([n_t \times n_r (\times n_{vs})]\) for
twosided=Falseor \([2*n_t-1 \times n_r (\times n_vs)]\) fortwosided=True- madj :
dask.array.ndarray Adjoint model of size \([n_t \times n_r (\times n_{vs})]\) for
twosided=Falseor \([2*n_t-1 \times n_r (\times n_r) ]\) fortwosided=True
See also
MDC- Multi-dimensional convolution
Notes
Refer to
pylops.waveeqprocessing.MDDfor implementation details. Note that this implementation is currently missing thewavandcausality_precond=Falseoptions.- G :