-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Description of the desired feature:
These filters are frequently applied in gravity and magnetic interpretation workflows and can complement the existing total_gradient_amplitude
function already available in harmonica
.
I'd like to contribute a set of widely used filters derived from the directional derivatives of potential field data. These filters are frequently applied in gravity and magnetic interpretation workflows and would complement the existing total_gradient_amplitude
function in harmonica
, which already provides the Analytic Signal Amplitude (ASA).
Proposed filters:
- Total Horizontal Derivative (THDR)
THDR = np.sqrt((dδ_dx)**2 + (dδ_dy)**2)
- Tilt Derivative (TDR)
TDR = np.arctan(dδ_dz / THDR)
- Theta Map (θ)
theta = np.arctan(np.abs(dδ_dz) / THDR)
- Horizontal Tilt Angle (TDX)
TDX = np.arctan(THDR / np.abs(dδ_dz))
- Gradient of the Tilt Derivative (TDR_THDR)
TDR_THDR = np.sqrt((dTDR_dx)**2 + (dTDR_dy)**2)
- Tilt Angle of the Horizontal Gradient (TAHG)
TAHG = np.arctan(dTHDR_dz / np.sqrt((dTHDR_dx)**2 + (dTHDR_dy)**2))
All of these filters are combinations of the first- and second-order derivatives already available in harmonica
(derivative_easting
, derivative_northing
, and derivative_upward
). Each function would return an xarray.DataArray
, and can be implemented using standard NumPy/Xarray operations.
I'm happy to start by submitting one or two of them depending on your preference for modularity and scope.
A summary figure of the definitions can be seen below (adapted from Ferreira et al., 2010):
Are you willing to help implement and maintain this feature?
Yes. I already have working versions of these filters and would be happy to maintain and update them as needed.