public class OneAxisEllipsoid extends Ellipsoid implements BodyShape
Oneaxis ellipsoids is a good approximate model for most planetsize 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.

<T extends RealFieldElement<T>> 
getCartesianIntersectionPoint(FieldLine<T> line,
FieldVector3D<T> close,
Frame frame,
FieldAbsoluteDate<T> date)
Get the intersection point of a line with the surface of the body.

Vector3D 
getCartesianIntersectionPoint(Line line,
Vector3D close,
Frame frame,
AbsoluteDate date)
Get the intersection point of a line with the surface of the body.

double 
getEquatorialRadius()
Get the equatorial radius of the body.

double 
getFlattening()
Get the flattening of the body: f = (ab)/a.

<T extends RealFieldElement<T>> 
getIntersectionPoint(FieldLine<T> line,
FieldVector3D<T> close,
Frame frame,
FieldAbsoluteDate<T> date)
Get the intersection point of a line with the surface of the body.

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.

<T extends RealFieldElement<T>> 
transform(FieldGeodeticPoint<T> point)
Transform a surfacerelative point to a Cartesian point.

<T extends RealFieldElement<T>> 
transform(FieldVector3D<T> point,
Frame frame,
FieldAbsoluteDate<T> date)
Transform a Cartesian point to a surfacerelative point.

Vector3D 
transform(GeodeticPoint point)
Transform a surfacerelative point to a Cartesian point.

FieldGeodeticPoint<DerivativeStructure> 
transform(PVCoordinates point,
Frame frame,
AbsoluteDate date)
Transform a Cartesian point to a surfacerelative point.

GeodeticPoint 
transform(Vector3D point,
Frame frame,
AbsoluteDate date)
Transform a Cartesian point to a surfacerelative point.

getA, getB, getC, getFrame, getPlaneSection, isInside, pointOnLimb
public OneAxisEllipsoid(double ae, double f, Frame bodyFrame)
Standard values for Earth models can be found in the Constants
class:
model  a_{e} (m)  f 

GRS 80  Constants.GRS80_EARTH_EQUATORIAL_RADIUS 
Constants.GRS80_EARTH_FLATTENING 
WGS84  Constants.WGS84_EARTH_EQUATORIAL_RADIUS 
Constants.WGS84_EARTH_FLATTENING 
ae
 equatorial radiusf
 the flattening (f = (ab)/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 Vector3D getCartesianIntersectionPoint(Line line, Vector3D close, Frame frame, AbsoluteDate date)
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.
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 framepublic GeodeticPoint getIntersectionPoint(Line line, Vector3D close, Frame frame, AbsoluteDate date)
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 framepublic <T extends RealFieldElement<T>> FieldVector3D<T> getCartesianIntersectionPoint(FieldLine<T> line, FieldVector3D<T> close, Frame frame, FieldAbsoluteDate<T> date)
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.
T
 type of the field elementsline
 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 framepublic <T extends RealFieldElement<T>> FieldGeodeticPoint<T> getIntersectionPoint(FieldLine<T> line, FieldVector3D<T> close, Frame frame, FieldAbsoluteDate<T> date)
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
T
 type of the field elementsline
 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 framepublic Vector3D transform(GeodeticPoint point)
public <T extends RealFieldElement<T>> FieldVector3D<T> transform(FieldGeodeticPoint<T> point)
public Vector3D projectToGround(Vector3D point, AbsoluteDate date, Frame frame)
projectToGround
in interface BodyShape
point
 point to projectdate
 current dateframe
 frame in which moving point is expressedBodyShape.projectToGround(TimeStampedPVCoordinates, Frame)
public TimeStampedPVCoordinates projectToGround(TimeStampedPVCoordinates pv, Frame frame)
projectToGround
in interface BodyShape
pv
 moving pointframe
 frame in which moving point is expressedBodyShape.projectToGround(Vector3D, AbsoluteDate, Frame)
public GeodeticPoint transform(Vector3D point, Frame frame, AbsoluteDate date)
This method is based on Toshio Fukushima's algorithm which uses Halley's method. transformation from Cartesian to Geodetic Coordinates Accelerated by Halley's Method, Toshio Fukushima, Journal of Geodesy 9(12):689693, February 2006
Some changes have been added to the original method:
public <T extends RealFieldElement<T>> FieldGeodeticPoint<T> transform(FieldVector3D<T> point, Frame frame, FieldAbsoluteDate<T> date)
This method is based on Toshio Fukushima's algorithm which uses Halley's method. transformation from Cartesian to Geodetic Coordinates Accelerated by Halley's Method, Toshio Fukushima, Journal of Geodesy 9(12):689693, February 2006
Some changes have been added to the original method:
transform
in interface BodyShape
T
 type fo the filed elementspoint
 Cartesian pointframe
 frame in which Cartesian point is expresseddate
 date of the computation (used for frames conversions)public FieldGeodeticPoint<DerivativeStructure> transform(PVCoordinates point, Frame frame, AbsoluteDate date)
point
 Cartesian pointframe
 frame in which Cartesian point is expresseddate
 date of the computation (used for frames conversions)Copyright © 20022019 CS Systèmes d'information. All rights reserved.