Earth Observation Mission CFI Software Orbit Software User Manual |
Class that stores the orbit data. More...
Public Member Functions | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, long orbit0, long driftMode, double ascMlstDrift, double inclination, long irep, long icyc, double rlong, double ascMlst) | |
Class constructor: using orbital parameters. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, long orbit0, const RefOrbitInfo &refOrbitInfo) | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, const double pos[3], const double vel[3], long absOrbit) | |
Class constructor: using state vector. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< std::string > &inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1) | |
Class constructor: using orbit file. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, const double pos[3], const double vel[3], long absOrbit, const PropagPreciseConf &preciseConf) | |
Class constructor: numerical propagator using state vector. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< std::string > &inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1, const PropagPreciseConf &preciseConf) | |
Class constructor: numerical propagator using orbit file. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< OsfFile > &osfData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) | |
Class constructor: using data read from OSF. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< OrbitFile > &osvData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) | |
Class constructor: using data read from Orbit files (POF or ROF). | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< OrbitFile > &osvData, const OrbitChangeData &orbitChangeData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< DorisFile > &dorisData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) | |
Class constructor: using data read from DORIS files. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< DorisFile > &dorisData, const OrbitChangeData &orbitChangeData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< SP3File > &sp3Data, long timeInitMode, double time0, double time1) | |
Class constructor: using data read from SP3 files. | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, const GeoOrbitInitData &geoOrbitInit) | |
OrbitId (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< OemFile > &oemData, long timeInitMode, double time0, double time1) | |
Class constructor: using data read from OEM files. | |
OrbitId (OrbitId &orbitIdIn) | |
Copy constructor. | |
~OrbitId () EXCEPT | |
Class destructor. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, long orbit0, long driftMode, double ascMlstDrift, double inclination, long irep, long icyc, double rlong, double ascMlst) |
Initialise the orbit using orbital parameters. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, long orbit0, const RefOrbitInfo &refOrbitInfo) |
Class constructor: using orbital parameters with support for MLST non linear drift. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, const double pos[3], const double vel[3], long absOrbit) |
Initialise the orbit using state vector. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< std::string > &inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1) |
Initialise the orbit using orbit files. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, double time, const double pos[3], const double vel[3], long absOrbit, const PropagPreciseConf &preciseConf) |
Initialise the orbit using state vector with numerical propagator. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long orbitFileMode, const std::vector< std::string > &inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1, const PropagPreciseConf &preciseConf) |
Initialise the orbit using orbit file with numerical propagator. | |
void | init (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, const GeoOrbitInitData &geoOrbitInit) |
void | change (const OrbitChangeData &changeData) |
Updates orbit numbers of state vectors in orbit id using as reference the provided Osf File or combination of Orbit/Time parameters. | |
SatId | satId () const |
Return satellite id. | |
std::vector< OsvRec > | getOsv () const |
Returns the list of orbit state vectors stored in the OrbitId object. | |
void | setOsv (const std::vector< OsvRec > &osvRecList) |
Sets the list of orbit state vectors stored in the OrbitId object. | |
std::vector< ANXExtra > | getAnx () const |
Returns the list of ANX data stored in the OrbitId object. | |
void | setAnx (const std::vector< ANXExtra > &anxList) |
Sets the list of ANX data stored in the OrbitId object. | |
std::vector< OsfRecords > | getOsf () const |
Returns the list of orbital changes stored in the OrbitId object. | |
void | setOsf (const std::vector< OsfRecords > &osvRecList) |
Sets the list of orbital changes stored in the OrbitId object. | |
ValidityTime | getValTime () const |
Returns validity times. | |
void | setValTime (const ValidityTime &valTime) |
Sets validity times. | |
PropagPreciseConf | getPrecisePropagConfig () const |
Get numerical propagator configuration. | |
void | setPrecisePropagConfig (const PropagPreciseConf &preciseConf) |
Set numerical propagator configuration. | |
void | setGeoOrbitInfo (const GeoOrbitInfo &geoOrbitInfo) |
Set geostationary satellite information. | |
GeoOrbitInfo | getGeoOrbitInfo () |
Get geostationary satellite information. | |
OrbitalInfo | getOrbitInfo (long absoluteOrbit) const |
Returns orbital information for a requested orbit. | |
void | orbitInfoConfigure (long item, long option) const |
Method that can be used to activate/deactivate the computation of several parameters in call to OrbitId::getOrbitInfo. | |
OrbitInfo | getOrbitNumbersFromRel (long relOrbit, long cycle) const |
Get orbit absolute orbit and phase number from the relative orbit. | |
OrbitInfo | getOrbitNumbersFromPhase (long phase) const |
Get orbit absolute and relative orbit from the input phase number. | |
OrbitInfo | getOrbitNumbersFromAbs (long absOrbit) const |
Get orbit relative orbit and phase from the input absolute orbit. | |
StateVector | osvCompute (long mode, long timeRef, double time) const |
Computes a satellite state vector for a given time. | |
StateVectorExtraInfo | osvComputeExtra (long extraChoice) const |
Get orbital auxiliary data for the satellite state vector computed with osvCompute. | |
StateVector | positionOnOrbitToTime (long abs_orbit_number, long angle_type, double angle, double angle_rate, double angle_rate_rate, long deriv, long time_ref) const |
Calculates the time, position and velocity vectors in Earth-Fixed associated to a given position on orbit. | |
TleRec | osvToTle (long timeMode, long timeRef, double time0, double time1, long orbit0, long orbit1) const |
Generates a TLE by fitting the set of orbit state vectors stored in the orbit_id. | |
OrbitIdCheckReport | check (const OrbitFileDiagnosticsSettings &settings) const |
Performs a diagnostic on the orbit's state vectors. | |
void | operator= (const OrbitId &orbitIdIn) |
Copy operator. | |
Protected Member Functions | |
OrbitId () | |
Empty class constructor: do not initialise orbit id. |
Class that stores the orbit data.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
long | orbit0, | |||
long | driftMode, | |||
double | ascMlstDrift, | |||
double | inclination, | |||
long | irep, | |||
long | icyc, | |||
double | rlong, | |||
double | ascMlst | |||
) |
Class constructor: using orbital parameters.
This method is deprecated. Use the one that uses a RefOrbitInfo object to introduce orbital parameters.
In order to obtain results consistent with that obtained with an Orbit Scenario file, the drift_mode flag has to be set to drift_mode = XO_NOSUNSYNC_DRIFT + XO_NOSUNSYNC_USE_SIM_MODEL.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Reference time (Decimal days - Processing format). | |
orbit0 | Absolute orbit number of the reference orbit. | |
driftMode | Flag to select between mlst and inclination as input characterization of reference orbit. Allowed values:
. | |
ascMlstDrift | Drift in mlst of the reference orbit [seconds/day]. | |
inclination | Inclination of the reference orbit [deg]. Allowed range = [0, 180]. | |
irep | Repeat cycle of the reference orbit [days]. Allowed range: > 0. | |
icyc | Cycle length of the reference orbit [orbits]. Allowed range: > 0. | |
rlong | Geocentric longitude of the ascending node (EF RF) [deg]. Allowed range = [0, 360) | |
ascMlst | MLST at ascending node [Decimal hours]. Allowed range = [0, 24). |
References init().
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
long | orbit0, | |||
const RefOrbitInfo & | refOrbitInfo | |||
) |
Class constructor: using orbital parameters with support for MLST non linear drift. In order to obtain results consistent with that obtained with an Orbit Scenario file, the drift_mode flag has to be set to drift_mode = XO_NOSUNSYNC_DRIFT + XO_NOSUNSYNC_USE_SIM_MODEL.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Reference time (Decimal days - Processing format). | |
orbit0 | Absolute orbit number of the reference orbit. | |
refOrbitInfo | Orbital parameters, including MLST non linear drift. |
References init().
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
const double | pos[3], | |||
const double | vel[3], | |||
long | absOrbit | |||
) |
Class constructor: using state vector.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Time (Decimal days - Processing format). | |
pos | Position vector [m]. | |
vel | Velocity vector [m/s]. | |
absOrbit | Absolute orbit. |
References init().
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< std::string > & | inputFiles, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Class constructor: using orbit file.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
const double | pos[3], | |||
const double | vel[3], | |||
long | absOrbit, | |||
const PropagPreciseConf & | preciseConf | |||
) |
Class constructor: numerical propagator using state vector.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Time (Decimal days - Processing format). | |
pos | Position vector [m]. | |
vel | Velocity vector [m/s]. | |
absOrbit | Absolute orbit. | |
preciseConf | Numerical propagator configuration. Allowed range for some members:
. |
References init().
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< std::string > & | inputFiles, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1, | |||
const PropagPreciseConf & | preciseConf | |||
) |
Class constructor: numerical propagator using orbit file.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< OsfFile > & | osfData, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Class constructor: using data read from OSF.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< OrbitFile > & | osvData, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Class constructor: using data read from Orbit files (POF or ROF).
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< OrbitFile > & | osvData, | |||
const OrbitChangeData & | orbitChangeData, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Class constructor: using data read from Orbit files (POF or ROF) and OrbitChange parameter. The orbit numbers in state vectors are updated to be in line with information given in OrbitChangeData object.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< DorisFile > & | dorisData, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Class constructor: using data read from DORIS files.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< DorisFile > & | dorisData, | |||
const OrbitChangeData & | orbitChangeData, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Class constructor: using data read from DORIS files and OrbitChange parameter. The orbit numbers in state vectors are updated to be in line with information given in OrbitChangeData object.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< SP3File > & | sp3Data, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1 | |||
) |
Class constructor: using data read from SP3 files.
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
const GeoOrbitInitData & | geoOrbitInit | |||
) |
Class constructor: intialization with geostationary satellite. The only input geodetic coordinate taken into account in initialization is the geocentric longitude; the latitude is set to 0. degrees and the altitude is set to 35786 km independently of the inputs.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
geoOrbitInit | Geostationary satellite initialization information. |
References init().
EECFI::OrbitId::OrbitId | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< OemFile > & | oemData, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1 | |||
) |
Class constructor: using data read from OEM files.
EECFI::OrbitId::OrbitId | ( | OrbitId & | orbitIdIn | ) |
Copy constructor.
orbitIdIn | Orbit Id to be copied. |
EECFI::OrbitId::~OrbitId | ( | ) |
Class destructor.
EECFI::OrbitId::OrbitId | ( | ) | [protected] |
Empty class constructor: do not initialise orbit id.
void EECFI::OrbitId::change | ( | const OrbitChangeData & | changeData | ) |
Updates orbit numbers of state vectors in orbit id using as reference the provided Osf File or combination of Orbit/Time parameters.
changeData | Structure containing the change mechanism input data (using osf file or time/orbit mode) |
References EECFI::CfiError::addMsg(), EECFI::OrbitChangeData::changeFile, EECFI::OrbitChangeData::changeMode, EECFI::OrbitChangeData::changeOrbit, EECFI::OrbitChangeData::changeTime, EECFI::OrbitChangeData::changeTimeRef, EECFI::OrbitChangeFile::fileType, EECFI::OrbitChangeFile::osfData, EECFI::OsfFile::osfRec, and EECFI::CfiClass::throwWarn.
OrbitIdCheckReport EECFI::OrbitId::check | ( | const OrbitFileDiagnosticsSettings & | settings | ) | const |
Performs a diagnostic on the orbit's state vectors.
Computes diagnostics data related to the OSVs contained in orbit id. The following information is returned:
For DORIS files only EF OSVS are checked, because they are the ones used by orbit initialization.
settings | Parameters for computing OSV diagnostics |
References EECFI::OrbitFileDiagnosticsSettings::duplicatedOsvThreshold, EECFI::OrbitFileDiagnosticsSettings::gapThreshold, EECFI::CfiClass::throwWarn, EECFI::OrbitFileDiagnosticsSettings::timeRef, EECFI::OrbitFileDiagnosticsSettings::timeStep, and EECFI::OrbitFileDiagnosticsSettings::timeStepThreshold.
vector< ANXExtra > EECFI::OrbitId::getAnx | ( | ) | const |
Returns the list of ANX data stored in the OrbitId object.
References EECFI::CfiError::addMsg(), and EECFI::CfiClass::throwWarn.
GeoOrbitInfo EECFI::OrbitId::getGeoOrbitInfo | ( | ) |
Get geostationary satellite information.
References EECFI::CfiError::addMsg(), EECFI::GeoGeodCoord::gcLongitude, EECFI::GeoGeodCoord::gdAltitude, EECFI::GeoGeodCoord::gdLatitude, EECFI::GeoOrbitInfo::geodCoord, and EECFI::CfiClass::throwWarn.
OrbitalInfo EECFI::OrbitId::getOrbitInfo | ( | long | absoluteOrbit | ) | const |
Returns orbital information for a requested orbit.
absoluteOrbit | Absolute orbit |
References EECFI::OrbitalInfo::absOrbit, EECFI::OrbitalInfo::cycLength, EECFI::OrbitalInfo::meanKep, EECFI::OrbitalInfo::mlst, EECFI::OrbitalInfo::mlstDrift, EECFI::OrbitalInfo::nodalPeriod, EECFI::OrbitalInfo::oscKep, EECFI::OrbitalInfo::phasing, EECFI::OrbitalInfo::posAnx, EECFI::OrbitalInfo::repCycle, EECFI::CfiClass::throwWarn, EECFI::OrbitalInfo::utcAnx, EECFI::OrbitalInfo::utcSmx, and EECFI::OrbitalInfo::velAnx.
OrbitInfo EECFI::OrbitId::getOrbitNumbersFromAbs | ( | long | absOrbit | ) | const |
Get orbit relative orbit and phase from the input absolute orbit.
absOrbit | Absolute orbit. |
References EECFI::OrbitInfo::absOrbit, EECFI::OrbitInfo::cycle, EECFI::OrbitInfo::phase, EECFI::OrbitInfo::relOrbit, and EECFI::CfiClass::throwWarn.
Referenced by EECFI::RelANXTime::fromAbsolute().
OrbitInfo EECFI::OrbitId::getOrbitNumbersFromPhase | ( | long | phase | ) | const |
Get orbit absolute and relative orbit from the input phase number.
phase | Phase of orbit. |
References EECFI::OrbitInfo::absOrbit, EECFI::OrbitInfo::cycle, EECFI::OrbitInfo::phase, EECFI::OrbitInfo::relOrbit, and EECFI::CfiClass::throwWarn.
OrbitInfo EECFI::OrbitId::getOrbitNumbersFromRel | ( | long | relOrbit, | |
long | cycle | |||
) | const |
Get orbit absolute orbit and phase number from the relative orbit.
relOrbit | Relative orbit | |
cycle | Cycle of orbit. |
References EECFI::OrbitInfo::absOrbit, EECFI::OrbitInfo::cycle, EECFI::OrbitInfo::phase, EECFI::OrbitInfo::relOrbit, and EECFI::CfiClass::throwWarn.
Referenced by EECFI::RelANXTime::toAbsolute().
vector< OsfRecords > EECFI::OrbitId::getOsf | ( | ) | const |
Returns the list of orbital changes stored in the OrbitId object.
References EECFI::OrbitInfo::absOrbit, EECFI::CfiError::addMsg(), EECFI::OsfRecords::anxInfo, EECFI::RefOrbitInfo::AnxLong, EECFI::AnxInfo::anxPos, EECFI::AnxInfo::anxTai, EECFI::AnxInfo::anxUt1, EECFI::AnxInfo::anxUtc, EECFI::AnxInfo::anxVel, EECFI::OrbitInfo::cycle, EECFI::RefOrbitInfo::cycleLength, EECFI::RefOrbitInfo::driftMode, EECFI::RefOrbitInfo::inclination, EECFI::AnxInfo::kepl, EECFI::MlstNonlinearDrift::linearApproxValidity, EECFI::OsfRecords::missionInfo, EECFI::RefOrbitInfo::mlst, EECFI::RefOrbitInfo::mlstDrift, EECFI::MlstNonlinearDrift::mlstHarmonics, EECFI::RefOrbitInfo::mlstNonlinearDrift, EECFI::OrbitInfo::phase, EECFI::MlstNonlinearDrift::quadraticTerm, EECFI::OsfRecords::refOrbitinfo, EECFI::OrbitInfo::relOrbit, EECFI::RefOrbitInfo::repCycle, EECFI::CfiClass::throwWarn, and EECFI::AnxInfo::tNod.
vector< OsvRec > EECFI::OrbitId::getOsv | ( | ) | const |
Returns the list of orbit state vectors stored in the OrbitId object.
References EECFI::CfiError::addMsg(), and EECFI::CfiClass::throwWarn.
PropagPreciseConf EECFI::OrbitId::getPrecisePropagConfig | ( | ) | const |
Get numerical propagator configuration.
References EECFI::CfiError::addMsg(), EECFI::PropagPreciseConf::ap, EECFI::PropagPreciseConf::atmosFlag, EECFI::PropagPreciseConf::f107, EECFI::PropagPreciseConf::f107a, EECFI::PropagPreciseConf::gravDegree, EECFI::PropagPreciseConf::gravFile, EECFI::PropagPreciseConf::gravityFlag, EECFI::PropagPreciseConf::gravOrder, EECFI::PropagPreciseConf::modelsPath, EECFI::PropagPreciseConf::scDragArea, EECFI::PropagPreciseConf::scDragCoeff, EECFI::PropagPreciseConf::scMass, EECFI::PropagPreciseConf::scSrpArea, EECFI::PropagPreciseConf::scSrpCoeff, EECFI::PropagPreciseConf::sgaApFile, EECFI::PropagPreciseConf::sgaF107File, EECFI::PropagPreciseConf::sgaFlag, EECFI::PropagPreciseConf::srpFlag, EECFI::PropagPreciseConf::step, EECFI::PropagPreciseConf::thirdbodyFlag, EECFI::CfiClass::throwWarn, and EECFI::PropagPreciseConf::userFlag.
ValidityTime EECFI::OrbitId::getValTime | ( | ) | const |
Returns validity times.
References EECFI::CfiError::addMsg(), and EECFI::CfiClass::throwWarn.
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
long | orbit0, | |||
const RefOrbitInfo & | refOrbitInfo | |||
) |
Class constructor: using orbital parameters with support for MLST non linear drift.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Reference time (Decimal days - Processing format). | |
orbit0 | Absolute orbit number of the reference orbit. | |
refOrbitInfo | Orbital parameters, including MLST non linear drift. |
References EECFI::CfiId::addInstance(), EECFI::RefOrbitInfo::AnxLong, EECFI::RefOrbitInfo::cycleLength, EECFI::RefOrbitInfo::driftMode, EECFI::RefOrbitInfo::inclination, EECFI::MlstNonlinearDrift::linearApproxValidity, EECFI::RefOrbitInfo::mlst, EECFI::RefOrbitInfo::mlstDrift, EECFI::MlstNonlinearDrift::mlstHarmonics, EECFI::RefOrbitInfo::mlstNonlinearDrift, EECFI::MlstNonlinearDrift::quadraticTerm, EECFI::RefOrbitInfo::repCycle, and EECFI::CfiClass::throwWarn.
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< std::string > & | inputFiles, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) |
Initialise the orbit using orbit files.
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
long | orbit0, | |||
long | driftMode, | |||
double | ascMlstDrift, | |||
double | inclination, | |||
long | irep, | |||
long | icyc, | |||
double | rlong, | |||
double | ascMlst | |||
) |
Initialise the orbit using orbital parameters.
This method is deprecated. Use the one that uses a RefOrbitInfo object to introduce orbital parameters.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Reference time (Decimal days - Processing format). | |
orbit0 | Absolute orbit number of the reference orbit. | |
driftMode | Flag to select between mlst and inclination as input characterization of reference orbit. Allowed values:
. | |
ascMlstDrift | Drift in mlst of the reference orbit [seconds/day]. | |
inclination | Inclination of the reference orbit [deg]. Allowed range = [0, 180]. | |
irep | Repeat cycle of the reference orbit [days]. Allowed range: > 0. | |
icyc | Cycle length of the reference orbit [orbits]. Allowed range: > 0. | |
rlong | Geocentric longitude of the ascending node (EF RF) [deg]. Allowed range = [0, 360) | |
ascMlst | MLST at ascending node [Decimal hours]. Allowed range = [0, 24). |
References EECFI::CfiId::addInstance(), and EECFI::CfiClass::throwWarn.
Referenced by OrbitId().
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
const double | pos[3], | |||
const double | vel[3], | |||
long | absOrbit, | |||
const PropagPreciseConf & | preciseConf | |||
) |
Initialise the orbit using state vector with numerical propagator.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Time. | |
pos | Position vector [m]. | |
vel | Velocity vector [m/s]. | |
absOrbit | Absolute orbit. | |
preciseConf | Numerical propagator configuration. Allowed range for some members:
. |
References EECFI::CfiId::addInstance(), EECFI::PropagPreciseConf::ap, EECFI::PropagPreciseConf::atmosFlag, EECFI::PropagPreciseConf::f107, EECFI::PropagPreciseConf::f107a, EECFI::PropagPreciseConf::gravDegree, EECFI::PropagPreciseConf::gravFile, EECFI::PropagPreciseConf::gravityFlag, EECFI::PropagPreciseConf::gravOrder, EECFI::PropagPreciseConf::modelsPath, EECFI::PropagPreciseConf::scDragArea, EECFI::PropagPreciseConf::scDragCoeff, EECFI::PropagPreciseConf::scMass, EECFI::PropagPreciseConf::scSrpArea, EECFI::PropagPreciseConf::scSrpCoeff, EECFI::PropagPreciseConf::sgaApFile, EECFI::PropagPreciseConf::sgaF107File, EECFI::PropagPreciseConf::sgaFlag, EECFI::PropagPreciseConf::srpFlag, EECFI::PropagPreciseConf::step, EECFI::PropagPreciseConf::thirdbodyFlag, EECFI::CfiClass::throwWarn, and EECFI::PropagPreciseConf::userFlag.
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
long | orbitFileMode, | |||
const std::vector< std::string > & | inputFiles, | |||
long | timeInitMode, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1, | |||
const PropagPreciseConf & | preciseConf | |||
) |
Initialise the orbit using orbit file with numerical propagator.
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
long | timeRef, | |||
double | time, | |||
const double | pos[3], | |||
const double | vel[3], | |||
long | absOrbit | |||
) |
Initialise the orbit using state vector.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Time. | |
pos | Position vector [m]. | |
vel | Velocity vector [m/s]. | |
absOrbit | Absolute orbit. |
References EECFI::CfiId::addInstance(), and EECFI::CfiClass::throwWarn.
void EECFI::OrbitId::init | ( | const SatId & | satId, | |
const ModelId & | modelId, | |||
const TimeCorrelation & | timeCor, | |||
const GeoOrbitInitData & | geoOrbitInit | |||
) |
Class constructor: intialization with geostationary satellite. The only input geodetic coordinate taken into account in initialization is the geocentric longitude; the latitude is set to 0. degrees and the altitude is set to 35786 km independently of the inputs.
satId | Satellite Id. | |
modelId | Model Id. | |
timeCor | Time correlations. | |
geoOrbitInit | Geostationary satellite initialization information. |
References EECFI::CfiId::addInstance(), EECFI::GeoGeodCoord::gcLongitude, EECFI::GeoGeodCoord::gdAltitude, EECFI::GeoGeodCoord::gdLatitude, EECFI::GeoOrbitInfo::geodCoord, EECFI::GeoOrbitInitData::geoOrbitInfo, EECFI::CfiClass::throwWarn, and EECFI::GeoOrbitInitData::type.
void EECFI::OrbitId::operator= | ( | const OrbitId & | orbitIdIn | ) |
Copy operator.
orbitIdIn | OrbitId we want to copy. |
References EECFI::CfiId::addInstance().
void EECFI::OrbitId::orbitInfoConfigure | ( | long | item, | |
long | option | |||
) | const |
Method that can be used to activate/deactivate the computation of several parameters in call to OrbitId::getOrbitInfo.
Some parameters computed by OrbitId::getOrbitInfo require a significant computation time, so their computation is disabled by default and must be activated with orbitInfoConfigure method. The parameters that can be activated currently are the following ones:
item | Orbit info item to be activated/deactivated (OrbitInfoItemsEnum). | |
option | Activate/deactivate item computation (OrbitInfoFlagEnum). |
References EECFI::CfiClass::throwWarn.
StateVector EECFI::OrbitId::osvCompute | ( | long | mode, | |
long | timeRef, | |||
double | time | |||
) | const |
Computes a satellite state vector for a given time.
Orbit initialisation mode | OSV computation method |
---|---|
XOCFI_ORBIT_INIT_ORBIT_CHANGE_MODE Initialised using an orbit definition |
Mean Keplerian Propagation Model with "AUTO" and "DOUBLE" modes. |
XOCFI_ORBIT_INIT_OSF_MODE XOCFI_ORBIT_INIT_OEF_OSF_MODE Initialised with an OSF file (or an OEF but reading the list of orbital changes in the data block of the file) |
|
XOCFI_ORBIT_INIT_POF_MODE XOCFI_ORBIT_INIT_OEF_POF_MODE Initialised with a POF file (or an OEF but reading the list of State Vectors in the data block of the file) |
|
XOCFI_ORBIT_INIT_STATE_VECTOR_MODE Initialised with an orbit state vector |
Mean Keplerian Propagation Model |
XOCFI_ORBIT_INIT_POF_N_DORIS_MODE: Initialised with a POF and a DORIS file |
|
XOCFI_ORBIT_INIT_TLE_MODE Initialised with a TLE file |
TLE propagation mode with "AUTO" mode |
XOCFI_ORBIT_INIT_POF_PRECISE_MODE XOCFI_ORBIT_INIT_OEF_POF_PRECISE_MODE Initialised with a POF file (or an OEF but reading the list of State Vectors in the data block of the file) |
Numerical propagator with "AUTO" mode |
XOCFI_ORBIT_INIT_ROF_PRECISE_MODE Initialised with xo_orbit_init_file_precise with a ROF file |
|
XOCFI_ORBIT_INIT_DORIS_PRECISE_MODE Initialised with xo_orbit_init_file_precise with a DORIS Navigator file |
|
XOCFI_ORBIT_INIT_STATE_VECTOR_PRECISE_MODE Initialised with xo_orbit_cart_init_precise |
Numerical propagator |
XOCFI_ORBIT_INIT_POF_N_DORIS_PRECISE_MODE Initialised with xo_orbit_init_file_precise with a POF and a DORIS Navigator file |
|
XOCFI_ORBIT_INIT_ROF_MODE Initialised with xo_orbit_init_file with a ROF file |
Interpolation |
XOCFI_ORBIT_INIT_DORIS_MODE Initialised with xo_orbit_init_file with a DORIS Navigator file |
|
XOCFI_ORBIT_INIT_SP3_MODE Initialised with xo_orbit_init_file with a SP3 file |
Time out of validity interval [number of OSV time steps] | Error in position [m] as a function of the OSV time step | |||
---|---|---|---|---|
1 sec | 10 sec | 30 sec | 60 sec | |
1 | 0.01 | 0.05 | 0.06 | 0.09 |
2 | 0.22 | 0.39 | 0.40 | 0.56 |
3 | 1.16 | 1.65 | 1.68 | 2.25 |
4 | 4.21 | 5.23 | 5.20 | 6.89 |
mode | Propagation/interpolation mode (dummy for current version). | |
timeRef | Time reference (TimeRefOrbitEnum). | |
time | Time. |
References EECFI::CfiClass::throwWarn.
StateVectorExtraInfo EECFI::OrbitId::osvComputeExtra | ( | long | extraChoice | ) | const |
Get orbital auxiliary data for the satellite state vector computed with osvCompute.
This software returns ancillary results derived from an orbit state vector obtained from the OrbitId::osvCompute routine (stored within the orbit Id). This state vector depends on which is the last function called:Orbit initialisation mode | OSV compute model |
---|---|
XOCFI_ORBIT_INIT_ORBIT_CHANGE_MODE XOCFI_ORBIT_INIT_OSF_MODE XOCFI_ORBIT_INIT_OEF_OSF_MODE XOCFI_ORBIT_INIT_POF_MODE XOCFI_ORBIT_INIT_OEF_POF_MODE XOCFI_ORBIT_INIT_STATE_VECTOR_MODE XOCFI_ORBIT_INIT_POF_N_DORIS_MODE |
Mean Kepler |
XOCFI_ORBIT_INIT_TLE_MODE | TLE |
XOCFI_ORBIT_INIT_POF_PRECISE_MODE XOCFI_ORBIT_INIT_OEF_POF_PRECISE_MODE XOCFI_ORBIT_INIT_ROF_PRECISE_MODE XOCFI_ORBIT_INIT_DORIS_PRECISE_MODE XOCFI_ORBIT_INIT_STATE_VECTOR_PRECISE_MODE XOCFI_ORBIT_INIT_POF_N_DORIS_PRECISE_MODE |
Precise |
XOCFI_ORBIT_INIT_ROF_MODE XOCFI_ORBIT_INIT_DORIS_MODE |
Interpolation |
Result parameter | Set | Description (Reference) | Unit (Format) | Allowed Range | OSV compute model |
[0] XOCFI_ORBIT_EXTRA_DEP_NODAL_PERIOD |
ANX Timing | Nodal period | s | >= 0 |
|
[1] XOCFI_ORBIT_EXTRA_DEP_UTC_CURRENT_ANX |
Time of current ANX | decimal days (Processing format) | - | ||
[2] XOCFI_ORBIT_EXTRA_DEP_ORBIT_NUMBER |
Position in orbit | Absolute Orbit Number | - | > 0 |
|
[3] XOCFI_ORBIT_EXTRA_DEP_SEC_SINCE_ANX |
Time since ANX | s | >= 0 < Nodal Period |
||
[4:9] XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_A XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_E XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_I XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_RA XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_W XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_M |
Mean Kepler | Mean Kepler elements of the propagated OSV (True of Date) | - | - |
|
Result parameter (res element) | Set | Description (Reference) | Unit (Format) | Allowed Range |
---|---|---|---|---|
[0] XOCFI_ORBIT_EXTRA_GEOC_LONG |
Geolocation | Geocentric longitude of satellite and SSP (EF frame) | deg | >= 0 < 360 |
[1] XOCFI_ORBIT_EXTRA_GEOD_LAT |
Geodetic latitude of satellite and SSP (EF frame) | deg | >= -90 <= +90 |
|
[2] XOCFI_ORBIT_EXTRA_GEOD_ALT |
Geodetic altitude of the satellite (EF frame) | m | - | |
[3] XOCFI_ORBIT_EXTRA_GEOC_LONG_D |
Geolocation rate | Geocentric longitude rate of satellite and SSP (EF frame) | deg/s | - |
[4] XOCFI_ORBIT_EXTRA_GEOD_LAT_D |
Geodetic latitude rate of satellite and SSP (EF frame) | deg/s | - | |
[5] XOCFI_ORBIT_EXTRA_GEOD_ALT_D |
Geodetic altitude rate of the satellite (EF frame) | m/s | - | |
[6] XOCFI_ORBIT_EXTRA_GEOC_LONG_2D |
Geolocation rate rate | Geocentric longitude rate-rate of satellite and SSP (EF frame) | deg/s2 | - |
[7] XOCFI_ORBIT_EXTRA_GEOD_LAT_2D |
Geodetic latitude rate-rate of satellite and SSP (EF frame) | deg/s2 | - | |
[8] XOCFI_ORBIT_EXTRA_GEOD_ALT_2D |
Geodetic altitude rate-rate of the satellite (EF frame) | m/s2 | - | |
[9] XOCFI_ORBIT_EXTRA_RAD_CUR_PARALLEL_MERIDIAN |
Geolocation extra | Radius of curvature parallel to meridian at the SSP (EF frame) | m | >= 0 |
[10] XOCFI_ORBIT_EXTRA_RAD_CUR_ORTHO_MERIDIAN |
Radius of curvature orthogonal to meridian at the SSP (EF frame) | m | >= 0 | |
[11] XOCFI_ORBIT_EXTRA_RAD_CUR_ALONG_GROUNDTRACK |
Radius of curvature along groundtrack at the SSP (EF frame) | m | >= 0 | |
[12] XOCFI_ORBIT_EXTRA_NORTH_VEL |
Earth-fixed velocity | Northward component of the velocity relative to the Earth of the SSP (Topocentric frame) | m/s | - |
[13] XOCFI_ORBIT_EXTRA_EAST_VEL |
Eastward component of the velocity relative to the Earth of the SSP (Topocentric frame) | m/s | - | |
[14] XOCFI_ORBIT_EXTRA_MAG_VEL |
Magnitude of the velocity relative to the Earth of the SSP (Topocentric frame) | m/s | >= 0 | |
[15] XOCFI_ORBIT_EXTRA_AZ_VEL |
Azimuth of the velocity relative to the Earth of the SSP (Topocentric frame) | deg | >= 0 < 360 |
|
[16] XOCFI_ORBIT_EXTRA_NORTH_ACC |
Earth-fixed acceleration | Northward component of the acceleration relative to the Earth of the SSP (Topocentric frame) | m/s2 | - |
[17] XOCFI_ORBIT_EXTRA_EAST_ACC |
Eastward component of the acceleration relative to the Earth of the SSP (Topocentric frame) | m/s2 | - | |
[18] XOCFI_ORBIT_EXTRA_GROUNDTRACK_TANG_ACC |
Groundtrack tangential component of the acceleration relative to the Earth of the SSP (Topocentric frame) | m/s2 | - | |
[19] XOCFI_ORBIT_EXTRA_AZ_ACC |
Azimuth of the acceleration relative to the Earth of the SSP (Topocentric frame) | deg | >= 0 < 360 |
|
[20] XOCFI_ORBIT_EXTRA_SAT_ECLIPSE_FLAG |
Sun | Satellite eclipse flag 0 = No 1 = Yes |
- | 0, 1 |
[21] XOCFI_ORBIT_EXTRA_SZA |
Sun Zenith Angle | deg | >= 0 < 180 |
|
[22] XOCFI_ORBIT_EXTRA_MLST |
Mean local solar time at the SSP | decimal hour | >= 0 < 24 |
|
[23] XOCFI_ORBIT_EXTRA_TLST |
True local solar time at the SSP | decimal hour | >= 0 < 24 |
|
[24] XOCFI_ORBIT_EXTRA_TRUE_SUN_RA |
True Sun’s (centre) right ascension (TOD frame) | deg | >= 0 < 360 |
|
[25] XOCFI_ORBIT_EXTRA_TRUE_SUN_DEC |
True Sun’s (centre) declination (TOD frame) | deg | >= -90 <= +90 |
|
[26] XOCFI_ORBIT_EXTRA_TRUE_SUN_SEMI_DIAM |
True Sun’s semi-diameter | deg | >= 0 | |
[27] XOCFI_ORBIT_EXTRA_MOON_RA |
Moon | Moon’s (centre) right ascension (TOD frame) | deg | >= 0 < 360 |
[28] XOCFI_ORBIT_EXTRA_MOON_DEC |
Moon’s (centre) declination (TOD frame) | deg | >= -90 <= +90 |
|
[29] XOCFI_ORBIT_EXTRA_MOON_SEMI_DIAM |
Moon’s semi-diameter | deg | >= 0 | |
[30] XOCFI_ORBIT_EXTRA_MOON_AREA_LIT |
Area of Moon lit by Sun | - | >= 0 <= 1 |
|
[31:36] XOCFI_ORBIT_EXTRA_OSC_KEPL_A XOCFI_ORBIT_EXTRA_OSC_KEPL_E XOCFI_ORBIT_EXTRA_OSC_KEPL_I XOCFI_ORBIT_EXTRA_OSC_KEPL_RA XOCFI_ORBIT_EXTRA_OSC_KEPL_W XOCFI_ORBIT_EXTRA_OSC_KEPL_M |
Osculating Kepler | Osculating Keplerian elements of the OSV (TOD frame) | - | - |
[37] XOCFI_ORBIT_EXTRA_ORBIT_RAD |
Inertial Aux | Orbit radius (TOD frame) | m | >= 0 |
[38] XOCFI_ORBIT_EXTRA_RADIAL_ORB_VEL |
Radial orbit velocity component (TOD frame) | m/s | - | |
[39] XOCFI_ORBIT_EXTRA_TRANS_ORB_VEL |
Transversal orbit velocity component (TOD frame) | m/s | - | |
[40] XOCFI_ORBIT_EXTRA_ORB_VEL_MAG |
Orbit velocity magnitude (TOD frame) | m/s | >= 0 | |
[41] XOCFI_ORBIT_EXTRA_RA_SAT |
Right ascension of the satellite (TOD frame) | deg | >= 0 < 360 |
|
[42] XOCFI_ORBIT_EXTRA_DEC_SAT |
Declination of the satellite (TOD frame) | deg | >= -90 <= +90 |
|
[43] XOCFI_ORBIT_EXTRA_EARTH_ROTATION_ANGLE |
Earth rotation angle [H] | deg | >= 0 < 360 |
|
[44] XOCFI_ORBIT_EXTRA_RA_SAT_D |
Right ascension rate of the satellite (TOD frame) | deg/s | - | |
[45] XOCFI_ORBIT_EXTRA_RA_SAT_2D |
Right ascension rate-rate of the satellite (TOD frame) | deg/s2 | - | |
[46] XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT |
Satellite osculating true latitude (EF frame) | deg | >= 0 < 360 |
|
[47] XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT_D |
Satellite osculating true latitude rate (EF frame) | deg/s | - | |
[48] XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT_2D |
Satellite osculating true latitude rate-rate (EF frame) | deg/s2 | - |
extraChoice | Flag to select the type of extra information (OrbitExtraChoiceEnum). |
References EECFI::StateVectorExtraInfo::modelDep, EECFI::StateVectorExtraInfo::modelIndep, and EECFI::CfiClass::throwWarn.
TleRec EECFI::OrbitId::osvToTle | ( | long | timeMode, | |
long | timeRef, | |||
double | time0, | |||
double | time1, | |||
long | orbit0, | |||
long | orbit1 | |||
) | const |
Generates a TLE by fitting the set of orbit state vectors stored in the orbit_id.
This set of OSVs are selected from the input orbit_id for the orbit/time requested range in the following way:
timeMode | Time/orbit selection (XOCFI_SEL_TIME, XOCFI_SEL_ORBIT or XOCFI_SEL_DEFAULT). For the XOCFI_SEL_DEFAULT mode, the whole range of orbits stored in the orbitId is selected. | |
timeRef | Time reference (TimeRefOrbitEnum). Only used if timeMode is XOCFI_SEL_FILE. | |
time0 | Start time [days]. | |
time1 | Stop time [days]. | |
orbit0 | Start orbit. | |
orbit1 | Stop orbit. |
References EECFI::CfiClass::throwWarn.
StateVector EECFI::OrbitId::positionOnOrbitToTime | ( | long | abs_orbit_number, | |
long | angle_type, | |||
double | angle, | |||
double | angle_rate, | |||
double | angle_rate_rate, | |||
long | deriv, | |||
long | time_ref | |||
) | const |
Calculates the time, position and velocity vectors in Earth-Fixed associated to a given position on orbit.
This position on orbit is defined as the angle between the satellite position and the intersection of the orbital plane with a reference plane (the reference plane is the equator in GM2000, ToD or EF CS).
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 input angle is compliant with [EO_OPS] and [MCD] i.e. either ToD or EF. Using other angle types (e.g. J2000) will result in an output time that cannot be used as input elsewhere in the EO CFI, notably in the xo_time_to_orbit function.
abs_orbit_number | Absolute orbit number | |
angle_type | Angle type | |
angle | Angle describing the position in the orbit | |
angle_rate | Orbit rate > 1st derivate from Angle | |
angle_rate_rate | Orbit rate rate > 2nd derivate from Angle | |
deriv | Derivative ID | |
time_ref | Time Reference |
References EECFI::CfiClass::throwWarn.
SatId EECFI::OrbitId::satId | ( | ) | const |
Return satellite id.
void EECFI::OrbitId::setAnx | ( | const std::vector< ANXExtra > & | anxList | ) |
Sets the list of ANX data stored in the OrbitId object.
void EECFI::OrbitId::setGeoOrbitInfo | ( | const GeoOrbitInfo & | geoOrbitInfo | ) |
Set geostationary satellite information.
geoOrbitInfo | Geostationary orbit information. |
References EECFI::CfiError::addMsg(), EECFI::GeoGeodCoord::gcLongitude, EECFI::GeoGeodCoord::gdAltitude, EECFI::GeoGeodCoord::gdLatitude, EECFI::GeoOrbitInfo::geodCoord, and EECFI::CfiClass::throwWarn.
void EECFI::OrbitId::setOsf | ( | const std::vector< OsfRecords > & | osvRecList | ) |
Sets the list of orbital changes stored in the OrbitId object.
void EECFI::OrbitId::setOsv | ( | const std::vector< OsvRec > & | osvRecList | ) |
Sets the list of orbit state vectors stored in the OrbitId object.
void EECFI::OrbitId::setPrecisePropagConfig | ( | const PropagPreciseConf & | preciseConf | ) |
Set numerical propagator configuration.
preciseConf | Numerical propagator configuration. |
References EECFI::CfiError::addMsg(), EECFI::PropagPreciseConf::ap, EECFI::PropagPreciseConf::atmosFlag, EECFI::PropagPreciseConf::f107, EECFI::PropagPreciseConf::f107a, EECFI::PropagPreciseConf::gravDegree, EECFI::PropagPreciseConf::gravFile, EECFI::PropagPreciseConf::gravityFlag, EECFI::PropagPreciseConf::gravOrder, EECFI::PropagPreciseConf::modelsPath, EECFI::PropagPreciseConf::scDragArea, EECFI::PropagPreciseConf::scDragCoeff, EECFI::PropagPreciseConf::scMass, EECFI::PropagPreciseConf::scSrpArea, EECFI::PropagPreciseConf::scSrpCoeff, EECFI::PropagPreciseConf::sgaApFile, EECFI::PropagPreciseConf::sgaF107File, EECFI::PropagPreciseConf::sgaFlag, EECFI::PropagPreciseConf::srpFlag, EECFI::PropagPreciseConf::step, EECFI::PropagPreciseConf::thirdbodyFlag, EECFI::CfiClass::throwWarn, and EECFI::PropagPreciseConf::userFlag.
void EECFI::OrbitId::setValTime | ( | const ValidityTime & | valTime | ) |
Sets validity times.
valTime | Validity times. |
References EECFI::CfiError::addMsg(), EECFI::ValidityTime::start, EECFI::ValidityTime::stop, EECFI::CfiClass::throwWarn, and EECFI::ValidityTime::timeRef.