pylops.utils.signalprocessing.pwd_slope_estimate#

pylops.utils.signalprocessing.pwd_slope_estimate(d, niter=5, liter=20, order=2, smoothing='triangle', nsmooth=(10, 10), damp=0.0)[source]#

Plane-Wave Destruction (PWD) local slope estimation.

Local slopes are estimated using the Plane-Wave Destruction (PWD) algorithm [1] [2] with optional structure-aligned smoothing preconditioning. Slopes are returned as \(\tan\theta\), defined in a RHS coordinate system with \(z\)-axis pointing downward.

This algorithm relies on kernels defined in pylops.utils._pwd2d_numba. When Numba is available the implementation is JIT-accelerated; otherwise a pure-Python fallback is used.

Parameters
dnumpy.ndarray

Input 2D array of shape (nz, nx).

niterint, optional

Number of outer PWD iterations. Default is 5.

literint, optional

Maximum number of inner least-squares iterations. Default is 20.

orderint, optional

Accuracy order of the all-pass filters. Use 1 (3-tap) or 2 (5-tap). Default is 2.

smoothingstr, optional

Preconditioning choice: "triangle" (default) that applies a triangular smoother (two boxcar passes), or "boxcar" that applies a single-pass boxcar.

nsmoothtuple of int, optional

Smoothing lengths (ny, nx) for the preconditioner. Default (10, 10).

dampfloat, optional

Damping factor for the least-squares solve. Default 0.0.

Returns
sigmanumpy.ndarray

Estimated slope field of shape (nz, nx) in samples per trace (\(\Delta z / \Delta x\)).

Raises
ValueError

If order is not 1 or 2.

ValueError

If input array d is not 2-D.

1

Claerbout, J., and Brown, M., “Two-dimensional textures and prediction-error filters”, EAGE Annual Meeting, Expanded Abstracts. 1999.

2

Fomel, S., “Applications of plane‐wave destruction filters”, Geophysics. 2002.

Examples using pylops.utils.signalprocessing.pwd_slope_estimate#

PWD-based slope estimation and structural smoothing

PWD-based slope estimation and structural smoothing