Class ReferenceEllipsoid

  • All Implemented Interfaces:
    Serializable, BodyShape, EarthShape

    public class ReferenceEllipsoid
    extends OneAxisEllipsoid
    implements EarthShape
    A Reference Ellipsoid for use in geodesy. The ellipsoid defines an ellipsoidal potential called the normal potential, and its gradient, normal gravity.

    These parameters are needed to define the normal potential:

    • a, semi-major axis
    • f, flattening
    • GM, the gravitational parameter
    • ω, the spin rate

    References:

    1. Martin Losch, Verena Seufer. How to Compute Geoid Undulations (Geoid Height Relative to a Given Reference Ellipsoid) from Spherical Harmonic Coefficients for Satellite Altimetry Applications. , 2003. mitgcm.org/~mlosch/geoidcookbook.pdf
    2. Weikko A. Heiskanen, Helmut Moritz. Physical Geodesy. W. H. Freeman and Company, 1967. (especially sections 2.13 and equation 2-144)
    3. Department of Defense World Geodetic System 1984. 2000. NIMA TR 8350.2 Third Edition, Amendment 1.
    Author:
    Evan Ward
    See Also:
    Serialized Form
    • Constructor Detail

      • ReferenceEllipsoid

        public ReferenceEllipsoid​(double ae,
                                  double f,
                                  Frame bodyFrame,
                                  double GM,
                                  double spin)
        Creates a new geodetic Reference Ellipsoid from four defining parameters.
        Parameters:
        ae - Equatorial radius, in m
        f - flattening of the ellipsoid.
        bodyFrame - the frame to attach to the ellipsoid. The origin is at the center of mass, the z axis is the minor axis.
        GM - gravitational parameter, in m3/s2
        spin - ω in rad/s
    • Method Detail

      • getGM

        public double getGM()
        Gets the gravitational parameter that is part of the definition of the reference ellipsoid.
        Returns:
        GM in m3/s2
      • getSpin

        public double getSpin()
        Gets the rotation of the ellipsoid about its axis.
        Returns:
        ω in rad/s
      • getNormalGravity

        public double getNormalGravity​(double latitude)
        Gets the normal gravity, that is gravity just due to the reference ellipsoid's potential. The normal gravity only depends on latitude because the ellipsoid is axis symmetric.

        The normal gravity is a vector, having both magnitude and direction. This method only give the magnitude.

        Parameters:
        latitude - geodetic latitude, in radians. That is the angle between the local normal on the ellipsoid and the equatorial plane.
        Returns:
        the normal gravity, γ, at the given latitude in m/s2. This is the acceleration felt by a mass at rest on the surface of the reference ellipsoid.
      • getC2n0

        public double getC2n0​(int n)
        Get the fully normalized coefficient C2n,0 for the normal gravity potential.
        Parameters:
        n - index in C2n,0, n >= 1.
        Returns:
        normalized C2n,0 of the ellipsoid
        See Also:
        "Department of Defense World Geodetic System 1984. 2000. NIMA TR 8350.2 Third Edition, Amendment 1.", "DMA TR 8350.2. 1984."
      • getEllipsoid

        public ReferenceEllipsoid getEllipsoid()
        Description copied from interface: EarthShape
        Get the underlying ellipsoid model that defines latitude and longitude. If the height component of a GeodeticPoint is not needed, then using the ellipsoid will provide the quickest transformation.
        Specified by:
        getEllipsoid in interface EarthShape
        Returns:
        the reference ellipsoid. May be this, but never null.
      • getWgs84

        public static ReferenceEllipsoid getWgs84​(Frame bodyFrame)
        Get the WGS84 ellipsoid, attached to the given body frame.
        Parameters:
        bodyFrame - the earth centered fixed frame
        Returns:
        a WGS84 reference ellipsoid
      • getGrs80

        public static ReferenceEllipsoid getGrs80​(Frame bodyFrame)
        Get the GRS80 ellipsoid, attached to the given body frame.
        Parameters:
        bodyFrame - the earth centered fixed frame
        Returns:
        a GRS80 reference ellipsoid