public class TopocentricFrame extends Frame implements PVCoordinatesProvider
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:
Constructor and Description |
---|
TopocentricFrame(BodyShape parentShape,
GeodeticPoint point,
String name)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
GeodeticPoint |
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)
Get the azimuth of a point with regards to the topocentric frame center point.
|
Vector3D |
getEast()
Get the east direction of topocentric frame, expressed in parent shape frame.
|
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.
|
TimeStampedPVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the
PVCoordinates of the topocentric frame origin in the selected frame. |
double |
getRange(Vector3D extPoint,
Frame frame,
AbsoluteDate date)
Get the range 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.
|
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.
|
getAncestor, getDepth, getFrozenFrame, getName, getParent, getRoot, getTransformProvider, getTransformTo, getTransformTo, isChildOf, isPseudoInertial, toString
public TopocentricFrame(BodyShape parentShape, GeodeticPoint point, String name)
parentShape
- body shape on which the local point is definedpoint
- local surface point where topocentric frame is definedname
- the string representationpublic BodyShape getParentShape()
public GeodeticPoint getPoint()
public Vector3D getZenith()
The zenith direction is defined as the normal to local horizontal plane.
getNadir()
public Vector3D getNadir()
The nadir direction is the opposite of 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 OrekitException
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 dateOrekitException
- if frames transformations cannot be computedpublic double getAzimuth(Vector3D extPoint, Frame frame, AbsoluteDate date) throws OrekitException
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.
extPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation dateOrekitException
- if frames transformations cannot be computedpublic double getRange(Vector3D extPoint, Frame frame, AbsoluteDate date) throws OrekitException
extPoint
- point for which range shall be computedframe
- frame in which the point is defineddate
- computation dateOrekitException
- if frames transformations cannot be computedpublic double getRangeRate(PVCoordinates extPV, Frame frame, AbsoluteDate date) throws OrekitException
extPV
- point/velocity for which range rate shall be computedframe
- frame in which the point is defineddate
- computation dateOrekitException
- if frames transformations cannot be computedpublic GeodeticPoint computeLimitVisibilityPoint(double radius, double azimuth, double elevation) throws OrekitException
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 stationOrekitException
- if point cannot be foundpublic GeodeticPoint pointAtDistance(double azimuth, double elevation, double distance) throws OrekitException
azimuth
- pointing azimuth from stationelevation
- pointing elevation from stationdistance
- distance to stationOrekitException
- if point cannot be computedpublic TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws OrekitException
PVCoordinates
of the topocentric frame origin in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
date
- current dateframe
- the frame where to define the positionOrekitException
- if position cannot be computed in given frameCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.