Earth Observation Mission CFI Software Lib Software User Manual |
Base class for StateVector objects. More...
Public Member Functions | |
StateVector () | |
Class constructor (empty constructor). | |
StateVector (const Time &time, const Coord &coord) | |
Class constructor with parameters. | |
~StateVector () NOEXCEPT | |
Class destructor. | |
StateVector | change (const ModelId &modelId, long deriv, long newCS) const |
Change coordinate system. | |
void | setSun (const ModelId &modelId, Time &time) |
Set Sun state vector. | |
void | setMoon (const ModelId &modelId, Time &time) |
Set Moon state vector. | |
void | setPlanet (const ModelId &modelId, Time &time, long planet) |
Set state vector for the requested planet. | |
void | getPositionOnOrbit (const ModelId &modelId, long angleType, long deriv, double &angle, double &angleRate, double &angleRateRate) const |
Get the true latitude corresponding to the state vector. | |
Public Attributes | |
Time | time |
Time object. | |
Coord | coord |
Coordinates. |
Base class for StateVector objects.
EECFI::StateVector::StateVector | ( | ) | [inline] |
Class constructor (empty constructor).
Referenced by change().
Class constructor with parameters.
Class constructor (Empty constructor).
time | Time of the state vector. | |
coord | Coordinates. |
EECFI::StateVector::~StateVector | ( | ) | [inline] |
Class destructor.
StateVector EECFI::StateVector::change | ( | const ModelId & | modelId, | |
long | deriv, | |||
long | newCS | |||
) | const |
Change coordinate system.
This method transforms a cartesian state vector between different reference frames. The transformation are done sequentially following the schema in next figure:
The attribute Time must have initialized time correlations. . Note that the transformations between BM2000, HM2000 and GM2000 involve a translation of the input vectors (TR3 and TR3�). In case that the input vector is a direction and not a location, the transformation should only apply the rotations between frames, so the transformation should be done in several steps with StateVector::change, skipping the translations.
Permitted CS = XLCFI_CS_GALACTIC, XLCFI_CS_BM1950, XLCFI_CS_BM2000, XLCFI_CS_HM2000, XLCFI_CS_GM2000, XLCFI_CS_MOD, XLCFI_CS_TOD or XLCFI_CS_EF.
Class destructor.
modelId | Model Id. | |
deriv | derivative to be computed (XLCFI_NO_DER or XLCFI_1ST_DER). | |
newCS | New coordinate frame (CoordinateSystemEnum). |
References EECFI::Coord::acc, coord, EECFI::Coord::cs, EECFI::Coord::pos, EECFI::Time::ref, StateVector(), EECFI::CfiClass::throwWarn, EECFI::Time::time, time, and EECFI::Coord::vel.
void EECFI::StateVector::getPositionOnOrbit | ( | const ModelId & | modelId, | |
long | angleType, | |||
long | deriv, | |||
double & | angle, | |||
double & | angleRate, | |||
double & | angleRateRate | |||
) | const |
Get the true latitude corresponding to the state vector.
Get the true/mean latitude describing the position on the orbit. The latitude angle is the angle between the satellite position and the intersection of the orbital plane with a given reference plane. Asumption: the state vector is given in EF.
COMPATIBILITY NOTE: The output of this function is consistent with the calculation of orbit number and time from ANX within the EO CFI only when the required angle type is compliant with [EO_OPS] and [MCD] i.e. either ToD or EF.
modelId | Model Id. | |
angleType | Type of angle(AngleTypeEnum). It defines the reference plane. | |
deriv | Derivative (DerivEnum). | |
angle | [OUTPUT] Angle describing the position in the orbit [deg]. | |
angleRate | [OUTPUT] Angle describing the position in the orbit-rate [deg/s]. | |
angleRateRate | [OUTPUT] Angle describing the position in the orbit-rate-rate [deg/s^2]. |
References EECFI::Coord::acc, coord, EECFI::Coord::pos, EECFI::Time::ref, EECFI::CfiClass::throwWarn, EECFI::Time::time, time, and EECFI::Coord::vel.
Set Moon state vector.
It is computed the position and velocity in EF CS.
modelId | Model id. | |
time | Requested time |
References coord, EECFI::Time::ref, EECFI::CfiClass::throwWarn, and EECFI::Time::time.
Set state vector for the requested planet.
It is computed the position and velocity in EF CS.
modelId | Model id. | |
time | requested time. | |
planet | (PlanetEnum). |
References coord, EECFI::Time::ref, EECFI::CfiClass::throwWarn, and EECFI::Time::time.
Set Sun state vector.
It is computed the position and velocity in EF CS.
modelId | Model id. | |
time | Requested time. |
References coord, EECFI::Time::ref, EECFI::CfiClass::throwWarn, and EECFI::Time::time.
Coordinates.
Referenced by change(), getPositionOnOrbit(), setMoon(), setPlanet(), and setSun().
Time object.
Referenced by change(), and getPositionOnOrbit().