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.
|
<T extends RealFieldElement<T>> |
getAzimuth(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 |
getEast()
Get the east direction of topocentric frame, expressed in parent shape frame.
|
<T extends RealFieldElement<T>> |
getElevation(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 RealFieldElement<T>> |
getPoint(Field<T> field)
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. |
<T extends RealFieldElement<T>> |
getRange(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 RealFieldElement<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.
|
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 <T extends RealFieldElement<T>> FieldGeodeticPoint<T> getPoint(Field<T> field)
T
- tyoe of the elementsfield
- of the elementspublic 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)
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 datepublic <T extends RealFieldElement<T>> T getElevation(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
The elevation is the angle between the local horizontal and the direction from local point to given point.
T
- type of the elementsextPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation datepublic double getAzimuth(Vector3D extPoint, Frame frame, AbsoluteDate date)
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 datepublic <T extends RealFieldElement<T>> T getAzimuth(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
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.
T
- type of the elementsextPoint
- point for which elevation shall be computedframe
- frame in which the point is defineddate
- computation datepublic double getRange(Vector3D extPoint, Frame frame, AbsoluteDate date)
extPoint
- point for which range shall be computedframe
- frame in which the point is defineddate
- computation datepublic <T extends RealFieldElement<T>> T getRange(FieldVector3D<T> extPoint, Frame frame, FieldAbsoluteDate<T> date)
T
- type of the elementsextPoint
- point for which range shall be computedframe
- frame in which the point is defineddate
- computation datepublic double getRangeRate(PVCoordinates extPV, Frame frame, AbsoluteDate date)
extPV
- point/velocity for which range rate shall be computedframe
- frame in which the point is defineddate
- computation datepublic <T extends RealFieldElement<T>> T getRangeRate(FieldPVCoordinates<T> extPV, Frame frame, FieldAbsoluteDate<T> date)
T
- type of the elementsextPV
- point/velocity for which range rate shall be computedframe
- frame in which the point is defineddate
- computation datepublic GeodeticPoint computeLimitVisibilityPoint(double radius, double azimuth, double elevation)
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 stationpublic GeodeticPoint pointAtDistance(double azimuth, double elevation, double distance)
azimuth
- pointing azimuth from stationelevation
- pointing elevation from stationdistance
- distance to stationpublic TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
PVCoordinates
of the topocentric frame origin in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
date
- current dateframe
- the frame where to define the positionCopyright © 2002-2020 CS Group. All rights reserved.