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
ConstructorsModifierConstructorDescriptionprivatePrivate constructor to prevent instantiation. -
Method Summary
Modifier and TypeMethodDescriptionprivate static doubleconvertAngle(com.irurueta.units.Angle angle) Converts an angle instance into radians.static NEDMagneticFluxDensityestimate(double magnitude, double declination, double dip) Estimates Earth magnetic flux density.static voidestimate(double magnitude, double declination, double dip, NEDMagneticFluxDensity result) Estimates Earth magnetic flux density.static NEDMagneticFluxDensityestimate(double magnitude, com.irurueta.units.Angle declination, com.irurueta.units.Angle dip) Estimates Earth magnetic flux density.static voidestimate(double magnitude, com.irurueta.units.Angle declination, com.irurueta.units.Angle dip, NEDMagneticFluxDensity result) Estimates Earth magnetic flux density.static doubleGets declination angle expressed in radians.static com.irurueta.units.AngleGets declination angle.static voidgetDeclinationAsAngle(NEDMagneticFluxDensity b, com.irurueta.units.Angle result) Gets declination angle.static doubleGets dip (a.k.a. inclination) angle expressed in radians.static com.irurueta.units.AngleGets dip (a.k.a. inclination) angle expressed in radians.static voidgetDipAsAngle(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.