magali.MagneticMomentBz#

class magali.MagneticMomentBz(location)[source]#

Estimate the magnetic dipole moment vector from Bz measurements.

Uses the Bz component of the magnetic field to fit a point dipole model through a linear inversion [Souza-Junior2024], returning the dipole moment vector that best fits the data in a least-squares sense. Requires prior knowledge of the dipole location.

Parameters:
locationtuple = (float, float, float)

Coordinates (x, y, z) of the dipole location, in µm.

References

[Souza-Junior2024]

Attributes:
dipole_moment_1d-array

Estimated dipole moment vector (mx, my, mz) in A.m². Only available after fit is called.

Methods

fit(coordinates, data)

Fit the magnetic dipole model to Bz data.

jacobian(coordinates)

Compute the Jacobian matrix for the linear point dipole model.

Method documentation#

MagneticMomentBz.fit(coordinates, data)[source]#

Fit the magnetic dipole model to Bz data.

Parameters:
coordinatestuple = (x, y, z)

Arrays with the x, y, and z coordinates of the observations points. The arrays can have any shape as long as they all have the same shape.

dataarray

Array with the observed Bz component of the magnetic field (in nT) at the locations provided in coordinates. Must have the same shape as the coordinate arrays.

Returns:
self

This estimator instance, updated with the estimated dipole moment vector in the dipole_moment_ attribute.

MagneticMomentBz.jacobian(coordinates)[source]#

Compute the Jacobian matrix for the linear point dipole model.

The Jacobian is a matrix with derivatives of the forward modeling function (the magnetic field of a dipole) with regard to the parameters (the 3 dipole moment components) for each data point.

Parameters:
coordinatestuple = (x, y, z)

Arrays with the x, y, and z coordinates of the observations points. The arrays can have any shape as long as they all have the same shape.

Returns:
jacobian2d-array

The N x 3 Jacobian matrix, with N being the number of observations, in nT/(A.m²) units.