Skip to content

Add common amplitude-based filters for potential field interpretation (THDR, TDR, θ, TDX, etc.) #559

@ErosKerouak

Description

@ErosKerouak

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:

  1. Total Horizontal Derivative (THDR)
THDR = np.sqrt((dδ_dx)**2 + (dδ_dy)**2)
  1. Tilt Derivative (TDR)
TDR = np.arctan(dδ_dz / THDR)
  1. Theta Map (θ)
theta = np.arctan(np.abs(dδ_dz) / THDR)
  1. Horizontal Tilt Angle (TDX)
TDX = np.arctan(THDR / np.abs(dδ_dz))
  1. Gradient of the Tilt Derivative (TDR_THDR)
TDR_THDR = np.sqrt((dTDR_dx)**2 + (dTDR_dy)**2)
  1. 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):

Filtering Techniques


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.


Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementIdea or request for a new feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions