Class TopocentricFrame
- java.lang.Object
-
- org.orekit.frames.Frame
-
- org.orekit.frames.TopocentricFrame
-
- All Implemented Interfaces:
Serializable
,PVCoordinatesProvider
public class TopocentricFrame extends Frame implements PVCoordinatesProvider
Topocentric frame.Frame associated to a position near the surface of a body shape.
The origin of the frame is at the defining
geodetic point
location, and the right-handed canonical trihedra is:- X axis in the local horizontal plane (normal to zenith direction) and following the local parallel towards East
- Y axis in the horizontal plane (normal to zenith direction) and following the local meridian towards North
- Z axis towards Zenith direction
- Author:
- Véronique Pommier-Maurussane
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description TopocentricFrame(BodyShape parentShape, GeodeticPoint point, String name)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GeodeticPoint
computeLimitVisibilityPoint(double radius, double azimuth, double elevation)
Compute the limit visibility point for a satellite in a given direction.<T extends CalculusFieldElement<T>>
TgetAzimuth(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the azimuth of a point with regards to the topocentric frame center point.double
getAzimuth(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the azimuth of a point with regards to the topocentric frame center point.Vector3D
getCartesianPoint()
Get the surface point defining the origin of the frame.Vector3D
getEast()
Get the east direction of topocentric frame, expressed in parent shape frame.<T extends CalculusFieldElement<T>>
TgetElevation(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the elevation of a point with regards to the local point.double
getElevation(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the elevation of a point with regards to the local point.Vector3D
getNadir()
Get the nadir direction of topocentric frame, expressed in parent shape frame.Vector3D
getNorth()
Get the north direction of topocentric frame, expressed in parent shape frame.BodyShape
getParentShape()
Get the body shape on which the local point is defined.GeodeticPoint
getPoint()
Get the surface point defining the origin of the frame.<T extends CalculusFieldElement<T>>
FieldGeodeticPoint<T>getPoint(Field<T> field)
Get the surface point defining the origin of the frame.Vector3D
getPosition(AbsoluteDate date, Frame frame)
Get the position of the body in the selected frame.TimeStampedPVCoordinates
getPVCoordinates(AbsoluteDate date, Frame frame)
Get thePVCoordinates
of the topocentric frame origin in the selected frame.<T extends CalculusFieldElement<T>>
TgetRange(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the range of a point with regards to the topocentric frame center point.double
getRange(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the range of a point with regards to the topocentric frame center point.<T extends CalculusFieldElement<T>>
TgetRangeRate(FieldPVCoordinates<T> extPV, Frame frame, FieldAbsoluteDate<T> date)
Get the range rate of a point with regards to the topocentric frame center point.double
getRangeRate(PVCoordinates extPV, Frame frame, AbsoluteDate date)
Get the range rate of a point with regards to the topocentric frame center point.Vector3D
getSouth()
Get the south direction of topocentric frame, expressed in parent shape frame.<T extends CalculusFieldElement<T>>
FieldTrackingCoordinates<T>getTrackingCoordinates(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the tracking coordinates of a point with regards to the local point.TrackingCoordinates
getTrackingCoordinates(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the tracking coordinates of a point with regards to the local point.Vector3D
getWest()
Get the west direction of topocentric frame, expressed in parent shape frame.Vector3D
getZenith()
Get the zenith direction of topocentric frame, expressed in parent shape frame.GeodeticPoint
pointAtDistance(double azimuth, double elevation, double distance)
Compute the point observed from the station at some specified distance.-
Methods inherited from class org.orekit.frames.Frame
getAncestor, getDepth, getFrozenFrame, getName, getParent, getRoot, getStaticTransformTo, getStaticTransformTo, getTransformProvider, getTransformTo, getTransformTo, isChildOf, isPseudoInertial, toString
-
-
-
-
Constructor Detail
-
TopocentricFrame
public TopocentricFrame(BodyShape parentShape, GeodeticPoint point, String name)
Simple constructor.- Parameters:
parentShape
- body shape on which the local point is definedpoint
- local surface point where topocentric frame is definedname
- the string representation
-
-
Method Detail
-
getParentShape
public BodyShape getParentShape()
Get the body shape on which the local point is defined.- Returns:
- body shape on which the local point is defined
-
getPoint
public GeodeticPoint getPoint()
Get the surface point defining the origin of the frame.- Returns:
- surface point defining the origin of the frame
-
getCartesianPoint
public Vector3D getCartesianPoint()
Get the surface point defining the origin of the frame.- Returns:
- surface point defining the origin of the frame in body frame
- Since:
- 12.0
-
getPoint
public <T extends CalculusFieldElement<T>> FieldGeodeticPoint<T> getPoint(Field<T> field)
Get the surface point defining the origin of the frame.- Type Parameters:
T
- type of the elements- Parameters:
field
- of the elements- Returns:
- surface point defining the origin of the frame
- Since:
- 9.3
-
getZenith
public Vector3D getZenith()
Get the zenith direction of topocentric frame, expressed in parent shape frame.The zenith direction is defined as the normal to local horizontal plane.
- Returns:
- unit vector in the zenith direction
- See Also:
getNadir()
-
getNadir
public Vector3D getNadir()
Get the nadir direction of topocentric frame, expressed in parent shape frame.The nadir direction is the opposite of zenith direction.
- Returns:
- unit vector in the nadir direction
- See Also:
getZenith()
-
getNorth
public Vector3D getNorth()
Get the north direction of topocentric frame, expressed in parent shape frame.The north direction is defined in the horizontal plane (normal to zenith direction) and following the local meridian.
- Returns:
- unit vector in the north direction
- See Also:
getSouth()
-
getSouth
public Vector3D getSouth()
Get the south direction of topocentric frame, expressed in parent shape frame.The south direction is the opposite of north direction.
- Returns:
- unit vector in the south direction
- See Also:
getNorth()
-
getEast
public Vector3D getEast()
Get the east direction of topocentric frame, expressed in parent shape frame.The east direction is defined in the horizontal plane in order to complete direct triangle (east, north, zenith).
- Returns:
- unit vector in the east direction
- See Also:
getWest()
-
getWest
public Vector3D getWest()
Get the west direction of topocentric frame, expressed in parent shape frame.The west direction is the opposite of east direction.
- Returns:
- unit vector in the west direction
- See Also:
getEast()
-
getTrackingCoordinates
public TrackingCoordinates getTrackingCoordinates(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the tracking coordinates of a point with regards to the local point.- Parameters:
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- tracking coordinates of the point
- Since:
- 12.0
-
getTrackingCoordinates
public <T extends CalculusFieldElement<T>> FieldTrackingCoordinates<T> getTrackingCoordinates(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the tracking coordinates of a point with regards to the local point.- Type Parameters:
T
- type of the field elements- Parameters:
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- tracking coordinates of the point
- Since:
- 12.0
-
getElevation
public double getElevation(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the elevation of a point with regards to the local point.The elevation is the angle between the local horizontal and the direction from local point to given point.
- Parameters:
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- elevation of the point
-
getElevation
public <T extends CalculusFieldElement<T>> T getElevation(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the elevation of a point with regards to the local point.The elevation is the angle between the local horizontal and the direction from local point to given point.
- Type Parameters:
T
- type of the elements- Parameters:
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- elevation of the point
- Since:
- 9.3
-
getAzimuth
public double getAzimuth(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the azimuth of a point with regards to the topocentric frame center point.The azimuth is the angle between the North direction at local point and the projection in local horizontal plane of the direction from local point to given point. Azimuth angles are counted clockwise, i.e positive towards the East.
- Parameters:
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- azimuth of the point
-
getAzimuth
public <T extends CalculusFieldElement<T>> T getAzimuth(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the azimuth of a point with regards to the topocentric frame center point.The azimuth is the angle between the North direction at local point and the projection in local horizontal plane of the direction from local point to given point. Azimuth angles are counted clockwise, i.e positive towards the East.
- Type Parameters:
T
- type of the elements- Parameters:
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- azimuth of the point
- Since:
- 9.3
-
getRange
public double getRange(Vector3D extPoint, Frame frame, AbsoluteDate date)
Get the range of a point with regards to the topocentric frame center point.- Parameters:
extPoint
- point for which range shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- range (distance) of the point
-
getRange
public <T extends CalculusFieldElement<T>> T getRange(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
Get the range of a point with regards to the topocentric frame center point.- Type Parameters:
T
- type of the elements- Parameters:
extPoint
- point for which range shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- range (distance) of the point
- Since:
- 9.3
-
getRangeRate
public double getRangeRate(PVCoordinates extPV, Frame frame, AbsoluteDate date)
Get the range rate of a point with regards to the topocentric frame center point.- Parameters:
extPV
- point/velocity for which range rate shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- range rate of the point (positive if point departs from frame)
-
getRangeRate
public <T extends CalculusFieldElement<T>> T getRangeRate(FieldPVCoordinates<T> extPV, Frame frame, FieldAbsoluteDate<T> date)
Get the range rate of a point with regards to the topocentric frame center point.- Type Parameters:
T
- type of the elements- Parameters:
extPV
- point/velocity for which range rate shall be computedframe
- frame in which the point is defineddate
- computation date- Returns:
- range rate of the point (positive if point departs from frame)
- Since:
- 9.3
-
computeLimitVisibilityPoint
public GeodeticPoint computeLimitVisibilityPoint(double radius, double azimuth, double elevation)
Compute the limit visibility point for a satellite in a given direction.This method can be used to compute visibility circles around ground stations for example, using a simple loop on azimuth, with either a fixed elevation or an elevation that depends on azimuth to take ground masks into account.
- Parameters:
radius
- satellite distance to Earth centerazimuth
- pointing azimuth from stationelevation
- pointing elevation from station- Returns:
- limit visibility point for the satellite
-
pointAtDistance
public GeodeticPoint pointAtDistance(double azimuth, double elevation, double distance)
Compute the point observed from the station at some specified distance.- Parameters:
azimuth
- pointing azimuth from stationelevation
- pointing elevation from stationdistance
- distance to station- Returns:
- observed point
-
getPosition
public Vector3D getPosition(AbsoluteDate date, Frame frame)
Get the position of the body in the selected frame.- Specified by:
getPosition
in interfacePVCoordinatesProvider
- Parameters:
date
- current dateframe
- the frame where to define the position- Returns:
- position of the body (m and)
-
getPVCoordinates
public TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
Get thePVCoordinates
of the topocentric frame origin in the selected frame.- Specified by:
getPVCoordinates
in interfacePVCoordinatesProvider
- Parameters:
date
- current dateframe
- the frame where to define the position- Returns:
- position/velocity of the topocentric frame origin (m and m/s)
-
-