pylops.signalprocessing.PWSmoother2D¶
- class pylops.signalprocessing.PWSmoother2D(dims, sigma, radius=8, alpha=0.9, dtype='float64', name='P')[source]¶
2D Structure-aligned smoother.
This operator builds a symmetric, positive semi-definite (PSD) smoother aligned over local structural dips (
sigma). It is defined as:\[S = P^H P\]where \(P\) is a
pylops.signalprocessing.PWSprayer2Doperator that propagates values along local slopes. The compositionP.H @ Pproduces a correlation-like operator that smooths preferentially along the defined slopes.The resulting operator can be used as a regularizer or preconditioner in inverse problems to enforce structural smoothness.
- Parameters:
- dims
tupleofint Number of samples for each dimension -
(nz, nx).- sigma
numpy.ndarray Local slope field of shape
(nz, nx)defined in samples per trace (\(\Delta z / \Delta x\)).- radius
int, optional Maximum number of steps along each \(\pm x\) direction to spray or gather. Controls the spatial extent of spreading. Default is
8.- alpha
float, optional Geometric decay factor per step (\(0 < \alpha \leq 1\)). Higher values propagate energy farther. Default is
0.9.- dtype
str, optional Type of elements in input array.
- name
str, optional Name of operator (to be used by
pylops.utils.describe.describe)
- dims
- Attributes:
See also
PWSprayer2DForward sprayer/gather operator
pwd_slope_estimateLocal slope estimation using plane-wave destruction
Notes
The smoother is symmetric by construction.
Effective correlation length along dip increases with larger
radiusand higheralpha.Across-dip coupling is minimal (only through interpolation and dip variability).
Methods
__init__(dims, sigma[, radius, alpha, ...])adjoint()apply_columns(cols)Apply subset of columns of operator
cond([uselobpcg])Condition number of linear operator.
conj()Complex conjugate operator
div(y[, niter, densesolver])Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\).
dot(x)Matrix-matrix or matrix-vector multiplication.
eigs([neigs, symmetric, niter, uselobpcg])Most significant eigenvalues of linear operator.
matmat(X)Matrix-matrix multiplication.
matvec(x)Matrix-vector multiplication.
reset_count()Reset counters
rmatmat(X)Matrix-matrix multiplication.
rmatvec(x)Adjoint matrix-vector multiplication.
todense([backend])Return dense matrix.
toimag([forw, adj])Imag operator
toreal([forw, adj])Real operator
tosparse()Return sparse matrix.
trace([neval, method, backend])Trace of linear operator.
transpose()
Examples using pylops.signalprocessing.PWSmoother2D¶
PWD-based slope estimation and structural smoothing