pylops.utils.signalprocessing.slope_estimate¶
-
pylops.utils.signalprocessing.
slope_estimate
(d, dz, dx, smooth=20)[source]¶ Local slope estimation
Local slopes are estimated using the Structure Tensor algorithm [1]. Note that slopes are returned as \(arctan(\theta)\) where \(\theta\) is an angle defined in a RHS coordinate system with z axis pointing upward.
Parameters: Returns: - slopes :
np.ndarray
Estimated local slopes
- linearity :
np.ndarray
Estimated linearity
Notes
For each pixel of the input dataset \(\mathbf{d}\) the local gradients \(d \mathbf{d} / dz\) and \(g_z = d\mathbf{d} \ dx\) are computed and used to define the following three quantities: \(g_{zz} = (d\mathbf{d} / dz) ^ 2\), \(g_{xx} = (d\mathbf{d} / dx) ^ 2\), and \(g_{zx} = d\mathbf{d} / dz * d\mathbf{d} / dx\). Such quantities are spatially smoothed and at each pixel their smoothed versions are arranged in a \(2 \times 2\) matrix called the smoothed gradient-square tensor:
\[\begin{split}\mathbf{G} = \begin{bmatrix} g_{zz} & g_{zx} \\ g_{zx} & g_{xx} \end{bmatrix}\end{split}\]Local slopes can be expressed as \(p = arctan(\frac{\lambda_{max} - g_{xx}}{g_{zx}})\).
[1] Van Vliet, L. J., Verbeek, P. W., “Estimators for orientation and anisotropy in digitized images”, Journal ASCI Imaging Workshop. 1995. - slopes :