pylops.utils.signalprocessing.dip_estimateยถ

pylops.utils.signalprocessing.dip_estimate(d, dz=1.0, dx=1.0, dy=None, smooth=5, eps=0.0, anisotropies=None, batch_size=1000000)[source]ยถ

Local dip estimation

Local dips are estimated using the Structure Tensor algorithm [1].

Note

For stability purposes, it is important to ensure that the orders of magnitude of the samplings are similar.

Parameters:
dnumpy.ndarray

Input dataset of size \(n_z \times n_x\)

dzfloat, optional

Sampling in \(z\)-axis, \(\Delta z\)

dxfloat, optional

Sampling in \(x\)-axis, \(\Delta x\)

dyfloat, optional

Added in version 2.9.0.

Sampling in \(y\)-axis, \(\Delta y\). Defaults to 1.0 when d is 3d; ignored when d is 2d.

smoothfloat or numpy.ndarray, optional

Standard deviation for Gaussian kernel. The standard deviations of the Gaussian filter are given for each axis as a sequence, or as a single number, in which case it is equal for all axes.

epsfloat, optional

Regularization term. All anisotropies where \(\lambda_\text{max} < \epsilon\) are also set to zero. See Notes. When using with small values of smooth, start from a very small number (e.g. 1e-10) and start increasing by a power of 10 until results are satisfactory.

anisotropiesbool, optional

Added in version 2.9.0.

Return anisotropies (True) or not (False). Ignored when d is 2d as anisotropies are always returned.

batch_sizeint, optional

Added in version 2.9.0.

Number of grid points being processed together if dips==False and/or anisotropies=True; this is done to avoid forming the smoothed gradient-square tensor for all grid points at once and computing the corresponding eigenvalues and eigenvectors. If None, operates on all points at once.

Returns:
dipsnumpy.ndarray

Estimated local dips. The unit is radians, in the range of \(-\frac{\pi}{2}\) to \(\frac{\pi}{2}\).

anisotropiesnumpy.ndarray

Estimated local linearities (\(1-\lambda_2/\lambda_1\)) (in 2d) or set of local linearities and planarities (\((\lambda_2-\lambda_3)/\lambda_1\)) in 3d, where \(\lambda_1 \ge \lambda_2 \ge \lambda_3\).

Notes

Thin wrapper around pylops.utils.signalprocessing.slope_estimate with dips=True. See the Notes of pylops.utils.signalprocessing.slope_estimate for details.

[1]

Van Vliet, L. J., Verbeek, P. W., โ€œEstimators for orientation and anisotropy in digitized imagesโ€, Journal ASCI Imaging Workshop. 1995.

Examples using pylops.utils.signalprocessing.dip_estimateยถ

Slope estimation via Structure Tensor algorithm

Slope estimation via Structure Tensor algorithm