Class EarthMagneticFluxDensityEstimator
java.lang.Object
com.irurueta.navigation.inertial.wmm.EarthMagneticFluxDensityEstimator
Estimates Earth magnetic flux density resolved around NED frame at a
given Earth location.
Magnetic flux density depends of magnitude of the magnetic field,
the declination and the dip angle.
Magnitude typically varies from about 30 µT at the equator to about 60 µT
at the poles.
The dip (or inclination) angle is essentially the magnetic latitude and
it is typically within about 10º of the geodetic latitude.
The declination angle gives the bearing of the magnetic field from
true north, and is the only of the three parameters needed to determine a
user's heading form magnetic field measurements.
The declination angle may be calculated as a function of position and
time using global models, such as the 275-coefficient International
Geomagnetic Reference Field (IGRF) or the 336-coefficient U.D/U.K
World Magnetic Model (WMM).
IGRF: https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html WMM: https://www.ngdc.noaa.gov/geomag/WMM
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Private constructor to prevent instantiation. -
Method Summary
Modifier and TypeMethodDescriptionprivate static double
convertAngle
(com.irurueta.units.Angle angle) Converts an angle instance into radians.static NEDMagneticFluxDensity
estimate
(double magnitude, double declination, double dip) Estimates Earth magnetic flux density.static void
estimate
(double magnitude, double declination, double dip, NEDMagneticFluxDensity result) Estimates Earth magnetic flux density.static NEDMagneticFluxDensity
estimate
(double magnitude, com.irurueta.units.Angle declination, com.irurueta.units.Angle dip) Estimates Earth magnetic flux density.static void
estimate
(double magnitude, com.irurueta.units.Angle declination, com.irurueta.units.Angle dip, NEDMagneticFluxDensity result) Estimates Earth magnetic flux density.static double
Gets declination angle expressed in radians.static com.irurueta.units.Angle
Gets declination angle.static void
getDeclinationAsAngle
(NEDMagneticFluxDensity b, com.irurueta.units.Angle result) Gets declination angle.static double
Gets dip (a.k.a. inclination) angle expressed in radians.static com.irurueta.units.Angle
Gets dip (a.k.a. inclination) angle expressed in radians.static void
getDipAsAngle
(NEDMagneticFluxDensity b, com.irurueta.units.Angle result) Gets dip (a.k.a. inclination) angle expressed in radians.
-
Constructor Details
-
EarthMagneticFluxDensityEstimator
private EarthMagneticFluxDensityEstimator()Private constructor to prevent instantiation.
-
-
Method Details
-
estimate
Estimates Earth magnetic flux density.- Parameters:
magnitude
- magnitude of magnetic field expressed in Teslas (T).declination
- declination angle expressed in radians.dip
- dip (or inclination) angle expressed in radians.- Returns:
- Earth magnetic flux density resolved around NED frame.
-
estimate
public static NEDMagneticFluxDensity estimate(double magnitude, com.irurueta.units.Angle declination, com.irurueta.units.Angle dip) Estimates Earth magnetic flux density.- Parameters:
magnitude
- magnitude of magnetic field expressed in Teslas (T).declination
- declination angle.dip
- dip (or inclination) angle.- Returns:
- Earth magnetic flux density resolved around NED frame.
-
convertAngle
private static double convertAngle(com.irurueta.units.Angle angle) Converts an angle instance into radians.- Parameters:
angle
- angle to be converted.- Returns:
- converted value into radians.