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.lsqr
iterative 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=False
ortwosided=True
andadd_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
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- **kwargs_cgls
Arbitrary keyword arguments for
pylops_distributed.optimization.cg.cgls
solver
Returns: - minv :
dask.array.ndarray
Inverted model of size \([n_t \times n_r (\times n_{vs})]\) for
twosided=False
or \([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=False
or \([2*n_t-1 \times n_r (\times n_r) ]\) fortwosided=True
See also
MDC
- Multi-dimensional convolution
Notes
Refer to
pylops.waveeqprocessing.MDD
for implementation details. Note that this implementation is currently missing thewav
andcausality_precond=False
options.- G :