pylops.signalprocessing.PWSprayer2D¶
- class pylops.signalprocessing.PWSprayer2D(dims, sigma, radius=8, alpha=0.9, dtype='float64', name='P')[source]¶
2D Plane-Wave Sprayer.
Spray (or paint) each input value along local structural slopes in \(\pm x\) direction with exponential decay in forward mode, and gather contributions back along the same slope trajectories in adjoint mode. Together, this pair of operators defines a linear operator that propagates information preferentially along structural dips (implemented in
pylops.signalprocessing.PWSmoother2D).- 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
PWSmoother2DStructure-aligned smoother
pwd_slope_estimateLocal slope estimation using plane-wave destruction
Notes
The forward operator distributes each sample along rays following local slope \(\sigma(z,x)\), using bilinear interpolation in depth.
The adjoint operator gathers contributions back from the same rays, making this a true linear operator pair.
Effective smoothing along dip grows with larger
radiusand higheralpha.
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.PWSprayer2D¶
PWD-based slope estimation and structural smoothing