public final class TopocentricFrame extends Frame
Frame associated to a position at the surface of a body shape.
| Constructor and Description |
|---|
TopocentricFrame(BodyPoint origin,
double frameOrientation,
String name)
Constructor with user-defined frame orientation and zenith direction (Z-axis) aligned with the direction normal
to shape at entered frame origin position.
|
TopocentricFrame(BodyPoint origin,
String name)
This constructor builds an East oriented topocentric frame, whose zenith direction (Z-axis) is aligned with the
direction normal to shape at entered frame origin position.
|
TopocentricFrame(BodyPoint origin,
Vector3D zenith,
double frameOrientation,
String name)
Constructor with user-defined zenith direction and frame orientation.
|
TopocentricFrame(BodyPoint origin,
Vector3D zenith,
String name)
This constructor builds an East oriented topocentric frame with user-defined zenith direction.
|
| Modifier and Type | Method and Description |
|---|---|
BodyPoint |
computeLimitVisibilityPoint(double radius,
double azimuth,
double elevation)
Compute the limit visibility point for a satellite in a given direction.
|
double |
getAzimuth(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the azimuth of a point with regards to the topocentric frame center point.
|
double |
getAzimuthRate(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Getter for the azimuth rate of a point.
|
Vector3D |
getDAzimuth(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the azimuth derivative of a point wrt the local point (dAzimuth) express in the specified frame.
|
Vector3D |
getDElevation(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the elevation derivative of a point wrt the local point (dElevation) express in the specified frame.
|
Vector3D |
getDXangleCardan(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the Cardan x angle derivative of a point wrt the local point (dXangleCardan) express in the specified
frame.
|
Vector3D |
getDYangleCardan(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the Cardan y angle derivative of a point wrt the local point (dYangleCardan) express in the specified
frame.
|
Vector3D |
getEast()
Getter for the east direction of topocentric frame, expressed in the body frame of body shape to which the frame
center point is attached.
|
double |
getElevation(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the elevation of a point with regards to the local point.
|
double |
getElevationRate(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Getter for the elevation rate of a point.
|
BodyPoint |
getFrameOrigin()
Getter for the frame origin point.
|
Vector3D |
getNadir()
Getter for the nadir direction of topocentric frame, expressed in the body frame of body shape to which the frame
center point is attached.
|
Vector3D |
getNorth()
Getter for the north direction of topocentric frame, expressed in the body frame of body shape to which the frame
center point is attached.
|
double |
getOrientation()
Getter for the oriented angle between the local north and the x axis (trigowise).
|
double |
getRange(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the range of a point with regards to the topocentric frame center point.
|
double |
getRangeRate(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Getter for the range rate of a point with regards to the topocentric frame center point.
|
Vector3D |
getSouth()
Getter for the south direction of topocentric frame, expressed in the body frame of body shape to which the frame
center point is attached.
|
Vector3D |
getWest()
Getter for the west direction of topocentric frame, expressed in the body frame of body shape to which the frame
center point is attached.
|
double |
getXangleCardan(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the Cardan x angle of a point.
|
double |
getXangleCardanRate(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Getter for the Cardan x angle rate.
|
double |
getYangleCardan(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Getter for the Cardan y angle of a point with regards to the projection point on the plane defined by the zenith
and the west axis.
|
double |
getYangleCardanRate(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Getter for the Cardan y angle rate.
|
Vector3D |
getZenith()
Getter for the zenith direction of topocentric frame, expressed in the body frame of body shape to which the
frame center point is attached.
|
BodyPoint |
pointAtDistance(double azimuth,
double elevation,
double distance)
Compute the point observed from the station at some specified distance.
|
Vector3D |
transformFromCardanToPosition(CardanMountPosition cardan)
Transform a Cardan mounting into Cartesian coordinates (only position) expressed in this local topocentric frame.
|
PVCoordinates |
transformFromCardanToPV(CardanMountPV cardan)
Transform a Cardan mounting into Cartesian coordinates (position and velocity) expressed in this local
topocentric frame.
|
CardanMountPosition |
transformFromPositionToCardan(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Transform a Cartesian position coordinates into Cardan mounting in this local topocentric frame.
|
TopocentricPosition |
transformFromPositionToTopocentric(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Transform a Cartesian position coordinates into topocentric coordinates in this local topocentric frame.
|
CardanMountPV |
transformFromPVToCardan(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Transform a Cartesian position coordinates into Cardan mounting in this local topocentric frame.
|
TopocentricPV |
transformFromPVToTopocentric(PVCoordinates extPV,
Frame frame,
AbsoluteDate date)
Transform a Cartesian position and velocity coordinates into topocentric coordinates in this local topocentric
frame.
|
Vector3D |
transformFromTopocentricToPosition(TopocentricPosition topoCoord)
Transform topocentric set of coordinates frame into Cartesian position coordinates expressed in this local
topocentric.
|
PVCoordinates |
transformFromTopocentricToPV(TopocentricPV topoCoord)
Transform topocentric set of coordinates into Cartesian position and velocity coordinates expressed in this local
topocentric frame.
|
getAncestor, getDepth, getFirstCommonPseudoInertialAncestor, getFirstPseudoInertialAncestor, getFrozenFrame, getName, getNativeFrame, getParent, getPVCoordinates, getRoot, getTransformJacobian, getTransformProvider, getTransformTo, getTransformTo, getTransformTo, getTransformTo, isChildOf, isPseudoInertial, setName, setReferential, toStringpublic TopocentricFrame(BodyPoint origin, String name)
origin - point on which the Topocentric frame is centeredname - the string representationpublic TopocentricFrame(BodyPoint origin, Vector3D zenith, String name)
origin - point on which the Topocentric frame is centered (its normal direction is not used)zenith - local normal (expressed in body frame) used as topocentric zenithname - the string representationpublic TopocentricFrame(BodyPoint origin, double frameOrientation, String name)
origin - point on which the Topocentric frame is centeredframeOrientation - oriented angle (trigowise, radian) between the local North and the Frame's x axis.name - the string representationpublic TopocentricFrame(BodyPoint origin, Vector3D zenith, double frameOrientation, String name)
origin - point on which the Topocentric frame is centered (its normal direction is not used)zenith - local normal (expressed in body frame) used as topocentric zenithframeOrientation - oriented angle (trigowise, radian) between the local North and the Frame's x axis.name - the string representationpublic double getOrientation()
public BodyPoint getFrameOrigin()
Warning: Make sure to distinguish the direction normal to shape at this origin point and the
topocentric zenith direction (Z-axis) which can be retrieved invoking the getter getZenith().
public Vector3D getZenith()
Warning: Be aware that the zenith direction is not necessarily aligned with the direction normal to shape at the frame origin point.
getNadir()public Vector3D getNadir()
The nadir direction is defined as the opposite to zenith direction.
getZenith()public Vector3D getNorth()
The north direction is defined in the horizontal plane (normal to zenith direction) and following the local meridian.
getSouth()public Vector3D getSouth()
The south direction is the opposite of north direction.
getNorth()public Vector3D getEast()
The east direction is defined in the horizontal plane in order to complete direct triangle (east, north, zenith).
getWest()public Vector3D getWest()
The west direction is the opposite of east direction.
getEast()public double getElevation(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
The elevation is the angle between the local horizontal and the direction from local point to given point.
extPoint - point for which elevation shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic Vector3D getDElevation(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point for which elevation shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getElevationRate(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point for which elevation rate shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getAzimuth(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
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 (range [0; 2PI]).
extPoint - point for which azimuth shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic Vector3D getDAzimuth(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point for which elevation shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getAzimuthRate(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point for which the azimuth rate shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getXangleCardan(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
The x angle is angle of the rotation of the mounting around local North axis, this angle is between -PI
and PI and counting clockwise. See Spacefight Dynamics, Part I, chapter 10.4.5.2.
extPoint - point for which the x angle shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic Vector3D getDXangleCardan(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point for which elevation shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getXangleCardanRate(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point for which the x angle rate shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getYangleCardan(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
The y angle is angle of the rotation of the mounting around y'. Y' is the image of West axis by the rotation of
angle x around North axis, this angle is between -PI/2 and PI/2 and oriented by y'. See
Spaceflight Dynamics, Part I, chapter 10.4.5.2.
extPoint - point for which the y angle shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic Vector3D getDYangleCardan(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point for which elevation shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getYangleCardanRate(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point for which the y angle rate shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getRange(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point for which range shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic double getRangeRate(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point/velocity for which range rate shall be computedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic TopocentricPosition transformFromPositionToTopocentric(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point in Cartesian coordinates which shall be transformedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic TopocentricPV transformFromPVToTopocentric(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point in Cartesian coordinates which shall be transformedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic CardanMountPosition transformFromPositionToCardan(Vector3D extPoint, Frame frame, AbsoluteDate date) throws PatriusException
extPoint - point in Cartesian coordinates which shall be transformedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic CardanMountPV transformFromPVToCardan(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws PatriusException
extPV - point in Cartesian coordinates which shall be transformedframe - frame in which the point is defineddate - computation datePatriusException - if frames transformations cannot be computedpublic Vector3D transformFromTopocentricToPosition(TopocentricPosition topoCoord)
topoCoord - point in topocentric coordinates which shall be transformedpublic PVCoordinates transformFromTopocentricToPV(TopocentricPV topoCoord)
topoCoord - point in topocentric coordinates which shall be transformedpublic Vector3D transformFromCardanToPosition(CardanMountPosition cardan)
cardan - Cardan mounting which shall be transformedpublic PVCoordinates transformFromCardanToPV(CardanMountPV cardan)
cardan - Cardan mounting which shall be transformedpublic BodyPoint computeLimitVisibilityPoint(double radius, double azimuth, double elevation) throws PatriusException
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.
radius - satellite distance to Earth centerazimuth - pointing azimuth from stationelevation - pointing elevation from stationPatriusException - if point cannot be foundpublic BodyPoint pointAtDistance(double azimuth, double elevation, double distance) throws PatriusException
azimuth - pointing azimuth from stationelevation - pointing elevation from stationdistance - distance to stationPatriusException - if point cannot be computedCopyright © 2024 CNES. All rights reserved.