Class EarthMagneticFluxDensityEstimator

java.lang.Object
com.irurueta.navigation.inertial.wmm.EarthMagneticFluxDensityEstimator

public class EarthMagneticFluxDensityEstimator extends Object
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 Details

    • EarthMagneticFluxDensityEstimator

      private EarthMagneticFluxDensityEstimator()
      Private constructor to prevent instantiation.
  • Method Details

    • estimate

      public static void estimate(double magnitude, double declination, double dip, NEDMagneticFluxDensity result)
      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.
      result - instance where magnetic flux will be stored resolved around NED frame.
    • estimate

      public static void estimate(double magnitude, com.irurueta.units.Angle declination, com.irurueta.units.Angle dip, NEDMagneticFluxDensity result)
      Estimates Earth magnetic flux density.
      Parameters:
      magnitude - magnitude of magnetic field expressed in Teslas (T).
      declination - declination angle.
      dip - dip (or inclination) angle.
      result - instance where magnetic flux will be stored resolved around NED frame.
    • estimate

      public static NEDMagneticFluxDensity estimate(double magnitude, double declination, double dip)
      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.
    • getDeclination

      public static double getDeclination(NEDMagneticFluxDensity b)
      Gets declination angle expressed in radians.
      Parameters:
      b - a magnetic flux density resolved around NED frame.
      Returns:
      declination angle.
    • getDeclinationAsAngle

      public static void getDeclinationAsAngle(NEDMagneticFluxDensity b, com.irurueta.units.Angle result)
      Gets declination angle.
      Parameters:
      b - a magnetic flux density resolved around NED frame.
      result - instance where declination angle will be stored.
    • getDeclinationAsAngle

      public static com.irurueta.units.Angle getDeclinationAsAngle(NEDMagneticFluxDensity b)
      Gets declination angle.
      Parameters:
      b - a magnetic flux density resolved around NED frame.
      Returns:
      declination angle.
    • getDip

      public static double getDip(NEDMagneticFluxDensity b)
      Gets dip (a.k.a. inclination) angle expressed in radians.
      Parameters:
      b - a magnetic flux density resolved around NED frame.
      Returns:
      dip angle.
    • getDipAsAngle

      public static void getDipAsAngle(NEDMagneticFluxDensity b, com.irurueta.units.Angle result)
      Gets dip (a.k.a. inclination) angle expressed in radians.
      Parameters:
      b - a magnetic flux density resolved around NED frame.
      result - instance where dip angle will be stored.
    • getDipAsAngle

      public static com.irurueta.units.Angle getDipAsAngle(NEDMagneticFluxDensity b)
      Gets dip (a.k.a. inclination) angle expressed in radians.
      Parameters:
      b - a magnetic flux density resolved around NED frame.
      Returns:
      dip angle.
    • 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.