Package org.orekit.models.earth
Class ReferenceEllipsoid
- java.lang.Object
-
- org.orekit.bodies.Ellipsoid
-
- org.orekit.bodies.OneAxisEllipsoid
-
- org.orekit.models.earth.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:
- 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
- Weikko A. Heiskanen, Helmut Moritz. Physical Geodesy. W. H. Freeman and Company, 1967. (especially sections 2.13 and equation 2-144)
- Department of Defense World Geodetic System 1984. 2000. NIMA TR 8350.2 Third Edition, Amendment 1.
- Author:
- Evan Ward
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ReferenceEllipsoid(double ae, double f, Frame bodyFrame, double GM, double spin)
Creates a new geodetic Reference Ellipsoid from four defining parameters.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getC2n0(int n)
Get the fully normalized coefficient C2n,0 for the normal gravity potential.ReferenceEllipsoid
getEllipsoid()
Get the underlying ellipsoid model that defines latitude and longitude.double
getGM()
Gets the gravitational parameter that is part of the definition of the reference ellipsoid.static ReferenceEllipsoid
getGrs80(Frame bodyFrame)
Get the GRS80 ellipsoid, attached to the given body frame.double
getNormalGravity(double latitude)
Gets the normal gravity, that is gravity just due to the reference ellipsoid's potential.double
getPolarRadius()
Get the radius of this ellipsoid at the poles.double
getSpin()
Gets the rotation of the ellipsoid about its axis.static ReferenceEllipsoid
getWgs84(Frame bodyFrame)
Get the WGS84 ellipsoid, attached to the given body frame.-
Methods inherited from class org.orekit.bodies.OneAxisEllipsoid
getBodyFrame, getCartesianIntersectionPoint, getCartesianIntersectionPoint, getEquatorialRadius, getFlattening, getIntersectionPoint, getIntersectionPoint, projectToGround, projectToGround, setAngularThreshold, transform, transform, transform, transform, transform
-
Methods inherited from class org.orekit.bodies.Ellipsoid
getA, getB, getC, getFrame, getPlaneSection, isInside, pointOnLimb
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.bodies.BodyShape
getBodyFrame, getIntersectionPoint, getIntersectionPoint, projectToGround, projectToGround, transform, transform, transform, transform
-
-
-
-
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 mf
- 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/s2spin
- ω 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
-
getPolarRadius
public double getPolarRadius()
Get the radius of this ellipsoid at the poles.- Returns:
- the polar radius, in meters
- See Also:
OneAxisEllipsoid.getEquatorialRadius()
-
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 aGeodeticPoint
is not needed, then using the ellipsoid will provide the quickest transformation.- Specified by:
getEllipsoid
in interfaceEarthShape
- Returns:
- the reference ellipsoid. May be
this
, but nevernull
.
-
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
-
-