public class OneAxisEllipsoid extends Ellipsoid implements BodyShape
One-axis ellipsoids is a good approximate model for most planet-size and larger natural bodies. It is the equilibrium shape reached by a fluid body under its own gravity field when it rotates. The symmetry axis is the rotation or polar axis.
Constructor and Description |
---|
OneAxisEllipsoid(double ae,
double f,
Frame bodyFrame)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
Frame |
getBodyFrame()
Get body frame related to body shape.
|
double |
getEquatorialRadius()
Get the equatorial radius of the body.
|
double |
getFlattening()
Get the flattening of the body: f = (a-b)/a.
|
GeodeticPoint |
getIntersectionPoint(Line line,
Vector3D close,
Frame frame,
AbsoluteDate date)
Get the intersection point of a line with the surface of the body.
|
TimeStampedPVCoordinates |
projectToGround(TimeStampedPVCoordinates pv,
Frame frame)
Project a moving point to the ground.
|
Vector3D |
projectToGround(Vector3D point,
AbsoluteDate date,
Frame frame)
Project a point to the ground.
|
void |
setAngularThreshold(double angularThreshold)
Set the angular convergence threshold.
|
Vector3D |
transform(GeodeticPoint point)
Transform a surface-relative point to a cartesian point.
|
GeodeticPoint |
transform(Vector3D point,
Frame frame,
AbsoluteDate date)
Transform a cartesian point to a surface-relative point.
|
public OneAxisEllipsoid(double ae, double f, Frame bodyFrame)
The following table provides conventional parameters for global Earth models:
model | ae (m) | f |
---|---|---|
GRS 80 | 6378137.0 | 1.0 / 298.257222101 |
WGS84 | 6378137.0 | 1.0 / 298.257223563 |
ae
- equatorial radiusf
- the flattening (f = (a-b)/a)bodyFrame
- body frame related to body shapeFramesFactory.getITRF(org.orekit.utils.IERSConventions, boolean)
public void setAngularThreshold(double angularThreshold)
The angular threshold is used both to identify points close to
the ellipse axes and as the convergence threshold used to
stop the iterations in the transform(Vector3D, Frame,
AbsoluteDate)
method.
If this method is not called, the default value is set to 10-12.
angularThreshold
- angular convergence threshold (rad)public double getEquatorialRadius()
public double getFlattening()
public Frame getBodyFrame()
getBodyFrame
in interface BodyShape
public GeodeticPoint getIntersectionPoint(Line line, Vector3D close, Frame frame, AbsoluteDate date) throws OrekitException
A line may have several intersection points with a closed surface (we consider the one point case as a degenerated two points case). The close parameter is used to select which of these points should be returned. The selected point is the one that is closest to the close point.
getIntersectionPoint
in interface BodyShape
line
- test line (may intersect the body or not)close
- point used for intersections selectionframe
- frame in which line is expresseddate
- date of the line in given frameOrekitException
- if line cannot be converted to body framepublic Vector3D transform(GeodeticPoint point)
public Vector3D projectToGround(Vector3D point, AbsoluteDate date, Frame frame) throws OrekitException
projectToGround
in interface BodyShape
point
- point to projectdate
- current dateframe
- frame in which moving point is expressedOrekitException
- if point cannot be converted to body frameBodyShape.projectToGround(TimeStampedPVCoordinates, Frame)
public TimeStampedPVCoordinates projectToGround(TimeStampedPVCoordinates pv, Frame frame) throws OrekitException
projectToGround
in interface BodyShape
pv
- moving pointframe
- frame in which moving point is expressedOrekitException
- if point cannot be converted to body frameBodyShape.projectToGround(Vector3D, AbsoluteDate, Frame)
public GeodeticPoint transform(Vector3D point, Frame frame, AbsoluteDate date) throws OrekitException
transform
in interface BodyShape
point
- cartesian pointframe
- frame in which cartesian point is expresseddate
- date of the computation (used for frames conversions)OrekitException
- if point cannot be converted to body frameCopyright © 2002-2015 CS Systèmes d'information. All rights reserved.