Magnetic Processing¶
All the available processing techniques specific to magnetic surveys can be apply to a dataset through a simple command line of the form:
>>> dataset.ProcessingTechnique(option1=10, option2=True, option3='relative',...)
This section describes the different available processing specific to magnetic survey data.
General consideration¶
Spectral domain¶
As most of the computation are done in the spectral domain, classic pre-processing and post-processing operations are automatically performed:
Filling gaps
To use the Fast Fourier Transform algorithm, the dataset must not contain gaps or ‘NaN’ (Not A Number) values. If the data set grid is not interpolated and contains NaNs, the blanks will be automatically filled using profile by profile linear interpolation prior to the Fourier Transform. After the data filtering, the gaps will be automatically unfilled using NaNs.
Apodization
To limit Gibbs phenomenon at jump discontinuities, the dataset edges are extended and then smoothed using a cosine window. The factor of apodization (0, 5, 10, 15, 20 or 25%) gives the dataset extension size. Values in the extension will be attenuated using a cosine:
After processing, only the filtered values in the original dataset extension are kept so that the original data size is respected.
Directional derivatives computation
The nth directional derivatives of the a potential field are computed in the spectral domain using [BLAK96]:
![\mathcal{F} \left[ \frac{\partial^n T}{\partial x^n} \right] = (ik_x)^n \mathcal{F} \left[ T \right],
\mathcal{F} \left[ \frac{\partial^n T}{\partial y^n} \right] = (ik_y)^n \mathcal{F} \left[ T \right],
\mathcal{F} \left[ \frac{\partial^n T}{\partial z^n} \right] = |k|^n \mathcal{F} \left[ T \right].](_images/math/fffb98e95ca7396776ddf5516a7b1466c94f2920.png)
Logarithmic transformation¶
The logarithmic transformation is contrast enhancement filter.
Originally used for geological magnetic data, it enhances information present in the data at low-amplitude values while preserving the relative amplitude information via logarithmic transformation procedure [MPBL01].
Filter applications: (magnetic) contrast enhancement
Examples¶
>>> dataset.logtransform(multfactor=1e3, setnan=False, valfilt=False)
Fig. 63 Log Transform - Raw dataset.¶ |
Fig. 64 Log Transform - Filtered dataset.¶ |
Fig. 65 Log Transform - Raw dataset histogram.¶ |
Fig. 66 Log Transform - Filtered dataset histogram.¶ |
Principle¶
Contrast in magnetic susceptibility and magnetic remanence are the physical rock properties that controls magnetic anomalies, as well as the geometry and the position of the source body.
Magnetic mineral content variation and borehole magnetic susceptibility are know to be best represented by a log-normal distribution. Assuming a that a similar distribution can represent lithologies on magnetic anomaly maps, then log transformation of the magnetic data should serve to normalize the distribution and highlight features having common amplitude.
The log-normal transformation of magnetic data
is defined as [MPBL01]:

A multiplying factor (multfactor) can be used to increase/decrease the number of data that falls into the condition
, i.e. the number of data that are nulled.
Parameters¶
Name |
Description |
Type |
Value |
|---|---|---|---|
multfactor |
Multiplying factor that can be used to increase/decrease the number of data that falls into the condition [-1< f >1]. |
float |
x5, x10, x20, x100… |
setnan |
Flag to replace values by NaNs instead of zeros. |
bool |
|
valfilt |
Flag to apply filter on the ungridded data values rather than on the gridded data. |
bool |
|
Pole reduction¶
Classic reduction to the pole.
The reduction to the magnetic pole is a way to facilitate magnetic data interpretation and comparison. It simulates the anomaly that would be measured at the north magnetic pole (inclination of the magnetic field is maximum, i.e. vertical) [BLAK96].
Filter applications: (magnetic) ease anomaly interpretation
Examples¶
>>> dataset.polereduction(apod=5, inclination=65, declination=0, azimuth=10)
Principle¶
Due to the dipolar nature of the geomagnetic field, magnetic anomalies (if not located at the magnetic poles) are asymmetric with a geometry that depends on the ambient magnetic field inclination (
).
The filter symmetrize the anomalies and place them directly above the source. In other words, the reduction to the pole simulates the anomaly that would be measured at the north magnetic pole. A similar processing (reduction to the equator) is used when data are recored at low magnetic inclinations.
The computation is done in the spectral (frequency) domain using Fast Fourier Transform. For magnetization and ambient field uniform throughout the study area the transformation is given in the spectral domain by [BLAK96]:

where
is the Fourier Transform of the anomaly reduced to the pole,
is the Fourier Transform of the measured total field anomaly and
is the pole reduction operator defined as:

with

where
is the unit-vector in the direction of the total magnetization (remanant + induced) of the source;
is the unit-vector in the direction of the ambient field;
is the radial wavenumber and
and
are the wavenumber in the x and y-direction respectively.
The remanent magnetization of the source is usually small compared to the induced magnetization and can be neglected.
The total magnetization is hence purely inductive so
and the previous equation simplifies in:
![\mathcal{F}_{f}\{k_x, k_y\} = \frac{|k|^2}{
\left[ |k| f_z
+ i( k_x f_x + k_y f_y ) \right]^2}, |k| \ne 0](_images/math/cca59e68ff532dd0ee5789404d0d836da181a9d9.png)
By default, the remanent magnetization is neglected in the filter (incl_mag=None, decl_mag=None).
Algorithm¶
Fig. 67 Reduction to the Pole - Reduction to the Pole Algorithm.¶
Reduction to the Pole algorithm where
and
are the wavenumbers corresponding to the x and y-direction respectively;
is the ambient magnetic field inclination;
is the ambient magnetic field declination;
is the survey x-axis azimuth.
See General consideration for the definition of filling gaps and apodization methods.
Parameters¶
Name |
Description |
Type |
Value |
|---|---|---|---|
apod |
Apodization factor (in %), to limit Gibbs phenomenon at jump discontinuities. |
float |
0, 5, 10, 20, 25, … |
inclination |
Magnetic inclination ( |
float |
65, 45 … |
declination |
Magnetic declination ( |
float |
|
azimuth |
Survey profiles azimuth ( |
float |
|
magazimuth |
Survey profiles magnetic azimuth ( |
float |
0, 10, 30…, |
Continuation¶
Upward or downward continuation of potential field data (magnetic or gravimetric).
The filter computes the data that would be measured at an upper (upward continuation) or lower (downward continuation) survey altitude. The computation is done in the spectral (frequency) domain using the Fast Fourier Transform [BLAK96].
Filter applications: (magnetic) ease anomaly interpretation, background removal, data smoothing, merging surveys at different altitudes
Examples¶
>>> continuation(apod=0, configuration='TotalField', distance=+0.5)
Fig. 69 Continuation - Raw dataset.¶ |
Fig. 70 Continuation - Filtered dataset.¶ |
Fig. 71 Continuation - Raw dataset histogram.¶ |
Fig. 72 Continuation - Filtered dataset histogram.¶ |
Principle¶
The (upward or downward) continuation transforms the potential field measured at one altitude to the field that would be measured at another altitude, farther (upward continuation) or closer (downward continuation) from the magnetic sources.
Assuming that all the magnetic sources are located below the observation surface,
the continuation at a new observation altitude
of a survey acquired at an original altitude
is given in the spectral domain by [BLAK96]:

where:
is the Fourier Transform of the measured data at the original altitude of observation
;
is the Fourier Transform of the anomaly at the new altitude of observation
;
is the altitude increase between the original and new altitude of observation;
is the radial wavenumber where
and
are the wavenumber in the x and y-direction respectively.
The given altitude increase (
) is an algebraic value:
If
, the new altitude of observation is above the original altitude: the operation is an upward continuation;if
, the new altitude of observation is below the original altitude: the operation is a downward continuation.
If the sensor configuration is in total-field vertical gradient, the data can be transformed to total-field data (totalfieldconversionflag=True) using
(see Sensor configuration conversion).
The upward continuation attenuates anomalies with respect to the wavelength in way that accentuates anomalies caused by deep sources and attenuates at the anomalies caused by shallow sources. It is hence a smoothing operator.
The downward continuation accentuates the shallowest components. It reduces spread of anomalies and corrects anomalies coalescences. It is useful to discriminates the number of body source at the origin of a one big anomaly. It is an unsmoothing operator that is instable as small changes in the data can cause large and unrealistic variations so it is to be used with caution. Low-pass filtering before the downward continuation can be a solution to increase the filter stability.
Note
Algorithm unstability
Unlike the upward continuation, the downward continuation is unstable process as it is an unsmoothing process that tends to accentuate small changes in the shallow components. So “Any errors present and perhaps undetected in the measured data may appear in the calculated field as large and unrealistic variations.” [BLAK96]
Algorithm¶
Fig. 73 Continuation - Continuation Algorithm.¶
See General consideration for the definition of filling gaps and apodization methods.
Parameters¶
Name |
Description |
Type |
Value |
|---|---|---|---|
apod |
Apodization factor (%), to limit Gibbs phenomenon at jump discontinuities. |
float |
0, 5, 10, 20, 25, … |
distance |
Continuation distance (in m). Positive for upward continuation and negative for downward continuation. |
float |
0.5, 2, 10, … |
totalfieldconversionflag |
Flag to proceed to the conversion to total-field data after continuation |
bool |
|
separation |
Sensor separation if |
float |
0.7, 1, … |
Analytic signal¶
Computes the 3-D Analytic Signal.
The Analytic Signal (also known as the total gradient magnitude or energy envelope) is a way to ease magnetic source characterization independently from the direction of its magnetization.
Filter applications: magnetic source depth estimation
Examples¶
>>> dataset.analyticsignal(apod=0)
Fig. 75 Analytic Signal - Raw dataset.¶ |
Fig. 76 Analytic Signal - Filtered dataset.¶ |
Fig. 77 Analytic Signal - Raw dataset histogram.¶ |
Fig. 78 Analytic Signal - Filtered dataset histogram.¶ |
Principle¶
For a magnetization and an ambient field uniform throughout the study area, the amplitude of the analytic signal (or total gradient magnitude or energy envelope) of a potential field anomaly
is given by [RoVP92]:

The directional derivatives are computes in the spectral domain (see General consideration) and transformed back to the spatial domain using an inverse Fourier Transform to computed the analytic signal amplitude.
Algorithm¶
Fig. 79 Analytic Signal - Analytic Signal Algorithm.¶
See General consideration for the definition of filling gaps and apodization methods.
Parameters¶
Name |
Description |
Type |
Value |
|---|---|---|---|
apod |
Apodization factor (%), to limit Gibbs phenomenon at jump discontinuities. |
float |
0, 5, 10, 20, 25, … |
Euler deconvolution¶
Classic Euler deconvolution.
Euler deconvolution is a method to estimate the depth of magnetic sources that do not required reduced-to-the-pole data.
Examples¶
Manual target picking
Sliding window target picking
Displaying results
The
eulerdeconvolution()method returns the results of the Euler deconvolution as a list containing the source position, the associated structural index, the residual of the least-square estimation and the used dataset sub-window extent:>>> print(results[0]) [20.078, 17.80, 0.99, 3, 0.94343, 15.0, 25.0, 10.0, 25.0]The sub-window extents and source positions can be display onto the dataset using the following commands sequence:
>>> # Importing the sub-window-to-rectangle conversion tool >>> import geophpy.plotting.plot as gplt>>> # Extracting source positions and sub-windows extents >>> sources = np.asarray(results)[:,:2].tolist() >>> window_extents = np.asarray(results)[:,5:].tolist()>>> # Converting sub-windows extents to rectangles >>> rects = gplt.extents2rectangles(window_extents)>>> # Plotting results >>> dataset.plot(plottype='2D-SURFACE', rects=rects, points=sources)
Principle¶
Euler deconvolution is a method to estimate position and depth of magnetic sources. It is based on the assumption that magnetic field is homogeneous of degree N, so that the total magnetic field and its originating magnetic source are related by the following equation [RAGM90]:

where
is the position of a source;
is the total-field detected at
;
is the regional value of the field and
is a non-negative integer known as the structural index (or degree of homogeneity).
For a set of
observation points of the total-field, the equation can be reformulated as a linear system of equations and expressed in matrix form as:

where
is the ith observation of the total-field anomaly at the coordinates
.
This system of has the form
and can be solved in least-square sense in the overdetermined case,
leading to least-square estimates of
.
Directional derivatives computation
The directional derivatives are computes in the spectral domain (see General consideration) and transformed back to the spatial domain using an inverse Fourier Transform.
Structural Index (SI)
The structural index is a measure of the rate of change with distance of a field. It is an integer value that depends on the source model geometry and is “not a tuning parameter” [ReEW14]. Valid structural index values are referenced in the following table.
Source Model |
SI |
|
|---|---|---|
Point, sphere |
3 |
|
Line, cylinder, thin bed fault |
2 |
|
Thin sheet edge, thin sill, thin dike |
1 |
|
Contact of infinite depth extent |
0 |
A wrong value of the SI will lead to errors in the depth estimation of the source: a too high value will yield over-estimated depths and vice versa.
Note
Structural Index estimation
Although it is not recommended, the structural index can be estimated in least-square sense as a parameter of the linear system by setting structind=None.
For now, this estimation may results in non-realistic (non integer) values for the structural index. In the future it will be constrained to select only allowed (integer) values.
Set of observation points
The set of observation points can be:
specified manually by giving a set of windows extent (xmin, xmax, ymin and xmax for each window of interest),
or automatically by using a sliding windows of a given size (
xstep*ystep).
Algorithm¶
… TBD …
See General consideration for the definition of filling gaps and apodization methods.
Parameters¶
Name |
Description |
Type |
Value |
|---|---|---|---|
apod |
Apodization factor (%), to limit Gibbs phenomenon at jump discontinuities. |
float |
0, 5, 10, 20, 25, … |
structuind |
Structural Index, depends on the source geometry. |
int |
0, 1, 2, 3 or |
windows |
List containing the satial extent of each sub-window to be considered for the deconvolution |
list (of float) |
[15,25,10,25], [35,42,8,15], …] or |
xstep |
Size, in number of sample, of the sub-windows in the x-direction. Only if |
float |
10, 33, … or |
ystep |
Size, in number of sample, of the sub-windows in the y-direction. Only if |
float |
10, 33, … or |
Sensor configuration conversion¶
Conversion between the different sensor’s configurations.
Magnetic data are all derived from the same potential and thereby contains in the same information, making theoretical conversion from one sensor configuration to another is possible.
Examples¶
Principle¶
Du to the “potential field nature” of the magnetic field, the same information is theoretically contained in the measure of the total-field anomaly, the total-field gradient and the vertical component of the anomaly. Conversion from one sensor configuration to another is theoretically possible even in practice the (inevitable) measurement noise can make it difficult.
Sensor’s configurations
Different sensor’s configurations exist to conduct magnetic surveys. Three most commonly used are the total-field, the total-field vertical gradient and the fluxgate sensor’s configurations :
Total-field magnetometers measure the magnitude of the total magnetic field regardless of the magnetic vector direction. They give a scalar measure of the total strength of an ambient magnetic field at any given point and are hence sometimes referred to as scalar magnetometers [AsGA08].
Total-field gradiometers simply refers to total-field magnetometers in vertical gradient configuration, i.e two total-field sensors one on top of the other.
Fluxgate magnetometers measure the component of the ambient magnetic field in a particular direction (the sensor’s axis only) and are hence sometimes referred to as vector magnetometers [AsGA08]. Fluxgate gradiometers are composed of two sensors one on top of the other and measure directly the difference of the vertical component of the ambient magnetic field.
Conversion between configurations
A simple linear transformation combining a Continuation and a subtraction allow the conversion between the different sensor’s configuration. For an ambient field uniform throughout the study area the transformation of the different sensor’s configurations is defined in the spectral domain by [TaDD97]:
- Total-field and total-field vertical gradient
Conversion of a measure obtained using a total-field magnetometer to the measure that would be obtained using a total-field magnetometer in vertical gradient configuration (i.e. with two sensors, one on top of the ohers) is defined in the spectral domain as:

The reverse transformation (from total-field vertical gradient to total-field) can simply be computed using the inverse expression:

- Total-field vertical gradient and fluxgate
Conversion of a measure obtained using a total-field magnetometer in vertical gradient configuration to the measure that would be obtained using a fluxgate gradiometer is defined in the spectral domain as:

The reverse transformation (from fluxgate vertical gradient to total-field vertical gradient) can simply be computed using the inverse expression:

- Total-field and fluxgate
Conversion of a measure obtained using a total-field magnetometer to the measure that would be obtained using a fluxgate gradiometer is defined in the spectral domain as the combination of the previous transformation :

The reverse transformation (from fluxgate vertical gradient to total-field) can simply be computed using the inverse expression:

Where
is the difference of altitude between the bottom sensors in the initial and final configuration;
is the difference of altitude between top and bottom sensors in gradient configuration;
is the radial wavenumber with
and
are the wavenumbers in the x and y-direction respectively;
is the ambient magnetic field inclination;
is the ambient magnetic field declination;
is the survey x-axis azimuth;
is the unit-vector in the x-direction of the ambient field;
is the unit-vector in the y-direction of the ambient field;
is the unit-vector in the z-direction of the ambient field.
Algorithm¶
See General consideration for the definition of filling gaps and apodization methods.
) definition.

, in degree). The angle between the profile direction and the Magnetic North (positive east of north).