Earth Observation Mission CFI Software Lib Software User Manual |
Base class for Coord objects. More...
Public Member Functions | |
Coord () | |
Class constructor (empty constructor). | |
Coord (long csRef, long der, double pos[3], double vel[3], double acc[3]) | |
Class constructor. | |
~Coord () NOEXCEPT | |
Class destructor. | |
Geodetic | getGeodetic (const ModelId &modelId, long deriv) const |
void | setGeodetic (const ModelId &modelId, long deriv, const Geodetic &geo) |
Set the cartesian vector from the input geodetic coordinates (EARTH FIXED CS). | |
Kepler | getKepler (const ModelId &modelId, long mode) const |
Get Keplerian elements for the input satellite state vector. | |
void | setKepler (const ModelId &modelId, const Kepler &kep) |
Set cartesian satellite state vector from input Keplerian elements. | |
StarData | getRaDec (const ModelId &modelId, long deriv) const |
Get the spherical coordinates of the Coord vector. | |
void | topocentricToEf (const ModelId &modelId, long mode, long deriv, const Coord &topOrigin, const Topocentric &topo) |
Change topocentric to EF CS. | |
void | efToTopocentric (const ModelId &modelId, long mode, long der, const Coord &topOrigin, Topocentric &topo) const |
Change EF to topocentric CS. | |
void | operator= (const Coord &c) |
Operator=. | |
Public Attributes | |
long | cs |
Coordinate system (enumeration value). | |
long | deriv |
Derivative flag that indicates which derivatives are computed. | |
double | pos [3] |
Position vector. | |
double | vel [3] |
Velocity vector. | |
double | acc [3] |
Acceleration vector. |
Base class for Coord objects.
EECFI::Coord::Coord | ( | ) |
EECFI::Coord::Coord | ( | long | csRef, | |
long | der, | |||
double | p[3], | |||
double | v[3], | |||
double | a[3] | |||
) |
EECFI::Coord::~Coord | ( | ) | [inline] |
Class destructor.
void EECFI::Coord::efToTopocentric | ( | const ModelId & | modelId, | |
long | mode, | |||
long | der, | |||
const Coord & | topOrigin, | |||
Topocentric & | topo | |||
) | const |
Change EF to topocentric CS.
modelId | Model id. | |
mode | Flag to indicate if the input coordinates is location or a direction (ModeFlagEnum). | |
der | Flag to indicate if the first derivative has to be computed (XLCFI_NO_DER or XLCFI_DER_1ST). | |
topOrigin | Position of the topocentric CS in the EF CS. | |
topo | (Output) Topocentric coordinates. |
References EECFI::Topocentric::azim, EECFI::Topocentric::azimDer, EECFI::Topocentric::elev, EECFI::Topocentric::elevDer, pos, EECFI::Topocentric::range, EECFI::Topocentric::rangeDer, EECFI::CfiClass::throwWarn, and vel.
Get geodetic coordinates of the input cartesian vector; Assumption: Coordinates are given in EARTH FIXED CS, otherwise an error message will be thrown.
Class destructor.
modelId | Model Id. | |
deriv | derivative to be computed (XLCFI_NO_DER or XLCFI_1ST_DER). | |
deriv | derivative and mode to be computed. The possible values are possible:
The Bowring iterative method is more accurate but it provides a poor runtime perfomance. The Bowring direct method is less accurate than the iterative method at the satellite height, but it provides a better runtime perfomance. |
References EECFI::CfiError::addMsg(), EECFI::Geodetic::alt, EECFI::Geodetic::altDer, cs, EECFI::Geodetic::deriv, EECFI::Geodetic::lat, EECFI::Geodetic::latDer, EECFI::Geodetic::lon, EECFI::Geodetic::lonDer, pos, EECFI::CfiClass::throwWarn, and vel.
Get Keplerian elements for the input satellite state vector.
Note: The position and velocity are expected to be in True of Date CS.
modelId | Model id. | |
mode | input keplerian elements type: XLCFI_KEPLER_MEAN or XLCFI_KEPLER_OSC . |
References EECFI::Kepler::a, cs, EECFI::Kepler::cs, EECFI::Kepler::e, EECFI::Kepler::i, EECFI::Kepler::m, EECFI::Kepler::mode, pos, EECFI::Kepler::ra, EECFI::CfiClass::throwWarn, vel, and EECFI::Kepler::w.
Get the spherical coordinates of the Coord vector.
Note that Coord object must not be in XLCFI_EF CS.
modelId | Model id. | |
deriv | XLCFI_DER_1ST to compute proper motions and radial velocity (for galactic coordinates derivatives are not computed). |
References cs, EECFI::StarData::cs, EECFI::StarData::dec, EECFI::StarData::muDec, EECFI::StarData::muRa, EECFI::StarData::parallax, pos, EECFI::StarData::ra, EECFI::StarData::radVel, EECFI::CfiClass::throwWarn, and vel.
void EECFI::Coord::operator= | ( | const Coord & | c | ) |
Set the cartesian vector from the input geodetic coordinates (EARTH FIXED CS).
modelId | Model id. | |
deriv | derivative to be computed (XLCFI_NO_DER or XLCFI_1ST_DER). | |
geo | Geodetic coordinates. |
References EECFI::Geodetic::alt, EECFI::Geodetic::altDer, cs, EECFI::Geodetic::lat, EECFI::Geodetic::latDer, EECFI::Geodetic::lon, EECFI::Geodetic::lonDer, pos, EECFI::CfiClass::throwWarn, and vel.
Set cartesian satellite state vector from input Keplerian elements.
modelId | Model id. | |
kep | input keplerian elements. |
References EECFI::Kepler::a, EECFI::Kepler::cs, cs, deriv, EECFI::Kepler::e, EECFI::Kepler::i, EECFI::Kepler::m, EECFI::Kepler::mode, pos, EECFI::Kepler::ra, EECFI::CfiClass::throwWarn, vel, and EECFI::Kepler::w.
void EECFI::Coord::topocentricToEf | ( | const ModelId & | modelId, | |
long | mode, | |||
long | der, | |||
const Coord & | topOrigin, | |||
const Topocentric & | topo | |||
) |
Change topocentric to EF CS.
modelId | Model id. | |
mode | Flag to indicate if the input coordinates is location or a direction (ModeFlagEnum). | |
der | Flag to indicate if the first derivative has to be computed (XLCFI_NO_DER or XLCFI_DER_1ST). | |
topOrigin | Position of the topocentric CS in the EF CS. | |
topo | Topocentric coordinates. |
References EECFI::Topocentric::azim, EECFI::Topocentric::azimDer, cs, deriv, EECFI::Topocentric::elev, EECFI::Topocentric::elevDer, pos, EECFI::Topocentric::range, EECFI::Topocentric::rangeDer, EECFI::CfiClass::throwWarn, and vel.
double EECFI::Coord::acc[3] |
Acceleration vector.
Referenced by EECFI::StateVector::change(), Coord(), EECFI::StateVector::getPositionOnOrbit(), and operator=().
long EECFI::Coord::cs |
Coordinate system (enumeration value).
Referenced by EECFI::StateVector::change(), Coord(), getGeodetic(), getKepler(), getRaDec(), operator=(), setGeodetic(), setKepler(), and topocentricToEf().
long EECFI::Coord::deriv |
Derivative flag that indicates which derivatives are computed.
Referenced by Coord(), operator=(), setKepler(), and topocentricToEf().
double EECFI::Coord::pos[3] |
Position vector.
Referenced by EECFI::StateVector::change(), Coord(), efToTopocentric(), getGeodetic(), getKepler(), EECFI::StateVector::getPositionOnOrbit(), getRaDec(), operator=(), setGeodetic(), setKepler(), and topocentricToEf().
double EECFI::Coord::vel[3] |
Velocity vector.
Referenced by EECFI::StateVector::change(), Coord(), efToTopocentric(), getGeodetic(), getKepler(), EECFI::StateVector::getPositionOnOrbit(), getRaDec(), operator=(), setGeodetic(), setKepler(), and topocentricToEf().