| Earth Observation Mission CFI Software Orbit Software User Manual for JAVA |

Public Member Functions

# EECFI.OrbitId Class Reference

Class that stores the orbit data. More...

Inheritance diagram for EECFI.OrbitId:

List of all members.

## Public Member Functions
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, long orbit0, long driftMode, double ascMlstDrift, double inclination, long irep, long icyc, double rlong, double ascMlst) throws CfiError
| Class constructor: using orbital parameters.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, long orbit0, final RefOrbitInfo refOrbitInfo) throws CfiError
| Class constructor: using orbital parameters with support for MLST non linear drift.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, double[] pos, double[] vel, long absOrbit) throws CfiError
| Class constructor: using state Vector.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, final Vector< String > inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Class constructor: using orbit file.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, double[] pos, double[] vel, long absOrbit, final PropagPreciseConf preciseConf) throws CfiError
| Class constructor: numerical propagator using state Vector.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, final Vector< String > inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1, final PropagPreciseConf preciseConf) throws CfiError
| Class constructor: numerical propagator using orbit file.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, OsfFileVector fileData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Class constructor: using data read from OSF.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, OrbitFileVector fileData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Class constructor: using data read from Orbit files (POF or ROF).
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, OrbitFileVector fileData, OrbitChangeData orbitChangeData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Class constructor: using data read from Orbit files (POF or ROF) and OrbitChange parameter.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, DorisFileVector fileData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Class constructor: using data read from DORIS files.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, DorisFileVector fileData, OrbitChangeData orbitChangeData, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Class constructor: using data read from DORIS files and OrbitChange parameter.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, SP3FileVector fileData, long timeInitMode, double time0, double time1) throws CfiError
| Class constructor: using data read from SP3 files.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, OemFileVector fileData, long timeInitMode, double time0, double time1) throws CfiError
| Class constructor: using data read from OEM files.
| OrbitId (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, final GeoOrbitInitData geoOrbitInit) throws CfiError
| Class constructor: intialization with geostationary satellite.
void | close () throws CfiError
| Release all resources managed by this object.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, long orbit0, long driftMode, double ascMlstDrift, double inclination, long irep, long icyc, double rlong, double ascMlst) throws CfiError
| Initialise the orbit using orbital parameters.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, long orbit0, final RefOrbitInfo refOrbitInfo) throws CfiError
| Class constructor: using orbital parameters with support for MLST non linear drift.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, double[] pos, double[] vel, long absOrbit) throws CfiError
| Initialise the orbit using state Vector.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, final Vector< String > inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Initialise the orbit using orbit file.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, double time, double[] pos, double[] vel, long absOrbit, final PropagPreciseConf preciseConf) throws CfiError
| Initialise the orbit using state Vector with numerical propagator.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, long timeRef, long orbitFileMode, final Vector< String > inputFiles, long timeInitMode, double time0, double time1, long orbit0, long orbit1, final PropagPreciseConf preciseConf) throws CfiError
| Initialise the orbit using orbit file with numerical propagator.
native void | init (final SatId satId, final ModelId modelId, final TimeCorrelation timeCor, final GeoOrbitInitData geoOrbitInit) throws CfiError
| Class constructor: intialization with geostationary satellite.
native SatId | satId ()
| Return satellite id.
native Vector< OsvRec > | getOsv ()
| Returns the list of orbit state Vectors stored in the OrbitId object.
native void | setOsv (final Vector< OsvRec > osvRecList)
| Sets the list of orbit state Vectors stored in the OrbitId object.
native Vector< ANXExtra > | getAnx ()
| Returns the list of ANX data stored in the OrbitId object.
native void | setAnx (final Vector< ANXExtra > anxList)
| Sets the list of ANX data stored in the OrbitId object.
native Vector< OsfRecords > | getOsf ()
| Returns the list of orbital changes stored in the OrbitId object.
native void | setOsf (final Vector< OsfRecords > osvRecList)
| Sets the list of orbital changes stored in the OrbitId object.
native ValidityTime | getValTime ()
| Returns validity times.
native void | setValTime (final ValidityTime valTime)
| Sets validity times.
native PropagPreciseConf | getPrecisePropagConfig () throws CfiError
| Get numerical propagator configuration.
native void | setPrecisePropagConfig (final PropagPreciseConf preciseConf)
| Set numerical propagator configuration.
native void | setGeoOrbitInfo (final GeoOrbitInfo geoOrbitInfo) throws CfiError
| Set geostationary satellite information.
native GeoOrbitInfo | getGeoOrbitInfo () throws CfiError
| Get geostationary satellite information.
native OrbitalInfo | getOrbitInfo (long absoluteOrbit) throws CfiError
| Returns orbital information for a requested orbit.
native void | orbitInfoConfigure (long item, long option) throws CfiError
| Method that can be used to activate/deactivate the computation of several parameters in call to OrbitId.getOrbitInfo.
native OrbitInfo | getOrbitNumbersFromRel (long relOrbit, long cycle) throws CfiError
| Gets orbit absolute orbit and phase number from the relative orbit.
native OrbitInfo | getOrbitNumbersFromPhase (long phase) throws CfiError
| Gets orbit absolute and relative orbit from the input phase number.
native OrbitInfo | getOrbitNumbersFromAbs (long absOrbit) throws CfiError
| Gets orbit relative orbit and phase from the input phase number.
native StateVector | osvCompute (long mode, long timeRef, double time) throws CfiError
| Computes a satellite state vector for a given time.
native StateVectorExtraInfo | osvComputeExtra (long extraChoice) throws CfiError
| Get orbital auxiliary data for the satellite state vector computed with osvCompute.
native StateVector | positionOnOrbitToTime (long abs_orbit_number, long angle_type, double angle, double angle_rate, double angle_rate_rate, long deriv, long time_ref) throws CfiError
| Calculates the time, position and velocity vectors in Earth-Fixed associated to a given position on orbit.
native TleRec | osvToTle (long timeMode, long timeRef, double time0, double time1, long orbit0, long orbit1) throws CfiError
| Generates a TLE by fitting the set of orbit state vectors stored in the orbit_id.
native OrbitIdCheckReport | check (OrbitFileDiagnosticsSettings settings) throws CfiError
| Performs a diagnostic on the orbit's state vectors.
native void | change (OrbitChangeData changeData) throws CfiError
| Updates the orbit numbers of the state vectors in the Orbit Id using the provided Osf File or combination of Orbit/Time parameters.

## Detailed Description

Class that stores the orbit data.

## Constructor & Destructor Documentation

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | long | orbit0,
|  | long | driftMode,
|  | double | ascMlstDrift,
|  | double | inclination,
|  | long | irep,
|  | long | icyc,
|  | double | rlong,
|  | double | ascMlst |
| ) |  |  | throws CfiError

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.

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: XOCFI_NOSUNSYNC_DRIFT XOCFI_NOSUNSYNC_INCLINATION XOCFI_NOSUNSYNC_DRIFT + XOCFI_NOSUNSYNC_USE_SIM_MODEL XOCFI_NOSUNSYNC_INCLINATION + XOCFI_NOSUNSYNC_USE_SIM_MODEL .
  | 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).

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | long | orbit0,
|  | final RefOrbitInfo | refOrbitInfo |
| ) |  |  | throws CfiError

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.

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.
  | refOrbitInfo | Orbital parameters, with support for MLST non linear drift.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | double[] | pos,
|  | double[] | vel,
|  | long | absOrbit |
| ) |  |  | throws CfiError

Class constructor: using state Vector.

Parameters:

  | 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.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | final Vector< String > | inputFiles,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Class constructor: using orbit file.

In order to read files, this method internally uses Data Handling functions.

Please refer to [D_H_SUM] for further details.
Note: if the input list of files are one Orbit Scenario File (OSF) plus files contaning state vectors (FOS predcited, FOS restituted, DORIS files -POF/ROF/DORIS respectively-), the orbit id is initialized with the state vectors in POF/ROF/DORIS, but the orbit number of every state vector is corrected to be consistent with the one expected from OSF. In this case, the OSF shall be the first item of the input files input array; the orbit file mode must be set explicitly to respectively XOCFI_ORBIT_INIT_POF_ORBNUM_ADJ_MODE, XOCFI_ORBIT_INIT_ROF_ORBNUM_ADJ_MODE, XOCFI_ORBIT_INIT_DORIS_ORBNUM_ADJ_MODE.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | inputFiles | Vector of orbit files.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | double[] | pos,
|  | double[] | vel,
|  | long | absOrbit,
|  | final PropagPreciseConf | preciseConf |
| ) |  |  | throws CfiError

Class constructor: numerical propagator using state Vector.

Parameters:

  | 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: step: > 0 gravDegree, gravOrder: depend on gravFile used ap, f107, f107a: > 0 scMass: > 0 scDragCoeff, scDragArea: > 0 scSrpCoeff, scSrpArea: > 0 .

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | final Vector< String > | inputFiles,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1,
|  | final PropagPreciseConf | preciseConf |
| ) |  |  | throws CfiError

Class constructor: numerical propagator using orbit file.

In order to read files, this method internally uses Data Handling functions.

Please refer to [D_H_SUM] for further details.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum ONLY PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. .
  | inputFiles | Vector of orbit files.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.
  | preciseConf | Numerical propagator configuration. Allowed range for some members: step: > 0 gravDegree, gravOrder: depend on gravFile used ap, f107, f107a: > 0 scMass: > 0 scDragCoeff, scDragArea: > 0 scSrpCoeff, scSrpArea: > 0 .

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | OsfFileVector | fileData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Class constructor: using data read from OSF.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | fileData | Vector of OsfFile objects.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | OrbitFileVector | fileData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Class constructor: using data read from Orbit files (POF or ROF).

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | fileData | Vector of OrbitFile objects.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | OrbitFileVector | fileData,
|  | OrbitChangeData | orbitChangeData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Class constructor: using data read from Orbit files (POF or ROF) and OrbitChange parameter.

The orbit number of the state vectors will be updated with the information in orbitChangeData parameter, as per method OrbitId.change.

The orbit numbers in state vectors are updated to be in line with information given in OrbitChangeData object.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | fileData | Vector of OrbitFile objects.
  | orbitChangeData | Object that contains the information to update the orbit numbers of State vectors.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | DorisFileVector | fileData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Class constructor: using data read from DORIS files.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | fileData | Vector of DorisFile objects.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | DorisFileVector | fileData,
|  | OrbitChangeData | orbitChangeData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Class constructor: using data read from DORIS files and OrbitChange parameter.

The orbit number of the state vectors will be updated with the information in orbitChangeData parameter, as per method OrbitId.change.

The orbit numbers in state vectors are updated to be in line with information given in OrbitChangeData object.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | fileData | Vector of DorisFile objects.
  | orbitChangeData | Object that contains the information to update the orbit numbers of State vectors.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | SP3FileVector | fileData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1 |
| ) |  |  | throws CfiError

Class constructor: using data read from SP3 files.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Allowed values: XOCFI_ORBIT_INIT_SP3_MODE, XOCFI_ORBIT_INIT_AUTO.
  | fileData | Vector of SP3File objects.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME. For SP3 files, XOCFI_SEL_ORBIT is not allowed).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | OemFileVector | fileData,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1 |
| ) |  |  | throws CfiError

Class constructor: using data read from OEM files.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Allowed values: XOCFI_ORBIT_INIT_OEM_MODE, XOCFI_ORBIT_INIT_AUTO.
  | fileData | Vector of OemFile objects.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME. For SP3 files, XOCFI_SEL_ORBIT is not allowed).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].

EECFI.OrbitId::OrbitId | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | final GeoOrbitInitData | geoOrbitInit |
| ) |  |  | throws CfiError

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.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | geoOrbitInit | Geostationary satellite initialization information.

## Member Function Documentation

void EECFI.OrbitId::change | ( | OrbitChangeData | changeData | ) | throws CfiError

Updates the orbit numbers of the state vectors in the Orbit Id using the provided Osf File or combination of Orbit/Time parameters.

The method OrbitId.change updates the orbit number in the state vectors of an orbit id that has been previously initialized with Predicted Orbit, Restituted Orbit or DORIS files.

The correction to be applied to orbit numbers is calculated depending on the input provided in the orbitChangeData input parameter:

- With an OSF (orbitChangeData.changeMode = XOCFI_ORBIT_ID_CHANGE_OSF). In this case, the time of the first state vector in the orbit id is used to compute the orbit number that the OSF file predicts for that time. All the state vector orbit numbers are corrected accordingly: if the orbit number and time of the first OSV in the orbit id are respectively N and T and the orbit number of the OSV computed at the same time T using the OSF is M, then the orbit numbers of all OSVs in the orbit id are increased of M-N. The field orbitChangeData.changeFile is of type xd_eocfi_file (only OSF file type is supported).
- With an input TIME+ORBIT (orbitChangeData.changeMode = XOCFI_ORBIT_ID_CHANGE_TIME_ORBIT). In this case, if T and M are respectively time and orbit provided by the user, the function first computes the OSV at time T and the corresponding orbit number N, then the orbit numbers of all OSVs in the orbit id are increased of M-N. Time T shall be within the orbit id validity.

Parameters:

  | changeData | Data used to update orbit numbers.

native OrbitIdCheckReport EECFI.OrbitId.check | ( | OrbitFileDiagnosticsSettings | settings | ) | throws CfiError

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:

- Size of the interval covered by the file.
- Times of first and last OSV.
- Number and interval of GAPs in the file.
- Number and indexes of duplicated OSVs, i.e. OSVs whose time is the same as the one of previous OSV; i.e. if time_osv1 and time_osv2 are the times of one OSV and the following one respectively, the duplicated OSVs fulfill the following condition:
  |time_osv2-time_osv1| < settings.duplicated_osv_threshold
  being settings one input parameter to the function.
- Number and indexes of the OSVs going back in time, i.e. OSVs whose time is in the past with respect to the previous one; i.e. the OSVs are not identified as duplicated OSVs and fulfill the following conditions:
  1) time_osv2-time_osv1 < 0. 2) |time_osv2-time_osv1| > diagnostics_settings.duplicated_osv_threshold
- Number and indexes of OSVs with inconsistent orbit number (i.e. OSVs whose number is not correlated with its neighbours OSVs).
- Number and indexes of OSVs with non-equally spaced OSVs (i.e. OSVs that are separated from its neighbours a different step from the one expected).
- Number and indexes of OSVs whose orbit parameters are beyond loose tolerances for corresponding satellite.
- Number and indexes of OSVs whose orbit parameters are beyond tight tolerances for corresponding satellite.

For DORIS files only EF OSVS are checked, because they are the ones used by orbit initialization.

void EECFI.OrbitId.close | ( |  | ) | throws CfiError

Release all resources managed by this object.

IMPORTANT: The life time of the EOCFI Java objects must be explicitly managed by the program work flow. Failure to perform this release will lead to resource leakage and might have a significant impact in performance.

Vector< ANXExtra > EECFI.OrbitId::getAnx | ( |  | ) |

Returns the list of ANX data stored in the OrbitId object.

Returns:
  Vector of ANX information.

native GeoOrbitInfo EECFI.OrbitId.getGeoOrbitInfo | ( |  | ) | throws CfiError

Get geostationary satellite information.

OrbitalInfo EECFI.OrbitId::getOrbitInfo | ( | long | absoluteOrbit | ) | throws CfiError

Returns orbital information for a requested orbit.

Parameters:

  | absoluteOrbit | Absolute orbit

Returns:
  Orbital information of the requested orbit.

OrbitInfo EECFI.OrbitId::getOrbitNumbersFromAbs | ( | long | absOrbit | ) | throws CfiError

Gets orbit relative orbit and phase from the input phase number.

Parameters:

  | absOrbit | Absolute orbit.

Returns:
  Orbit information.

OrbitInfo EECFI.OrbitId::getOrbitNumbersFromPhase | ( | long | phase | ) | throws CfiError

Gets orbit absolute and relative orbit from the input phase number.

Parameters:

  | phase | Phase of orbit.

Returns:
  Orbit information.

OrbitInfo EECFI.OrbitId::getOrbitNumbersFromRel | ( | long | relOrbit,
|  | long | cycle |
| ) |  |  | throws CfiError

Gets orbit absolute orbit and phase number from the relative orbit.

Parameters:

  | relOrbit | Relative orbit
  | cycle | Cycle of orbit.

Returns:
  Orbit information.

Vector< OsfRecords > EECFI.OrbitId::getOsf | ( |  | ) |

Returns the list of orbital changes stored in the OrbitId object.

Returns:
  Vector of orbital changes.

Vector< OsvRec > EECFI.OrbitId::getOsv | ( |  | ) |

Returns the list of orbit state Vectors stored in the OrbitId object.

Returns:
  Vector of orbit state vectors.

PropagPreciseConf EECFI.OrbitId::getPrecisePropagConfig | ( |  | ) | throws CfiError

Get numerical propagator configuration.

Returns:
  Numerical propagator configuration.

ValidityTime EECFI.OrbitId::getValTime | ( |  | ) |

Returns validity times.

Returns:
  Validity times.

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | long | orbit0,
|  | final RefOrbitInfo | refOrbitInfo |
| ) |  |  | throws CfiError

Class constructor: using orbital parameters with support for MLST non linear drift.

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.
  | refOrbitInfo | Orbital parameters, including support for MLST non linear drift.

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | final Vector< String > | inputFiles,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1,
|  | final PropagPreciseConf | preciseConf |
| ) |  |  | throws CfiError

Initialise the orbit using orbit file with numerical propagator.

In order to read files, this method internally uses Data Handling functions.

Please refer to [D_H_SUM] for further details.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum ONLY PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. .
  | inputFiles | Vector of orbit files.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.
  | preciseConf | Numerical propagator configuration. Allowed range for some members: step: > 0 gravDegree, gravOrder: depend on gravFile used ap, f107, f107a: > 0 scMass: > 0 scDragCoeff, scDragArea: > 0 scSrpCoeff, scSrpArea: > 0 .

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | final GeoOrbitInitData | geoOrbitInit |
| ) |  |  | throws CfiError

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.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | geoOrbitInit | Geostationary satellite initialization information.

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | double[] | pos,
|  | double[] | vel,
|  | long | absOrbit |
| ) |  |  | throws CfiError

Initialise the orbit using state Vector.

Parameters:

  | 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.

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | long | orbit0,
|  | long | driftMode,
|  | double | ascMlstDrift,
|  | double | inclination,
|  | long | irep,
|  | long | icyc,
|  | double | rlong,
|  | double | ascMlst |
| ) |  |  | throws CfiError

Initialise the orbit using orbital parameters.

This method is deprecated. Use the one that uses a RefOrbitInfo object to introduce orbital parameters.

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: XOCFI_NOSUNSYNC_DRIFT XOCFI_NOSUNSYNC_INCLINATION XOCFI_NOSUNSYNC_DRIFT + XOCFI_NOSUNSYNC_USE_SIM_MODEL XOCFI_NOSUNSYNC_INCLINATION + XOCFI_NOSUNSYNC_USE_SIM_MODEL .
  | 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).

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | long | orbitFileMode,
|  | final Vector< String > | inputFiles,
|  | long | timeInitMode,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

Initialise the orbit using orbit file.

In order to read files, this method internally uses Data Handling functions.

Please refer to [D_H_SUM] for further details.

Parameters:

  | satId | Satellite Id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | timeRef | Time reference (TimeRefOrbitEnum. When using DORIS Navigator files and time_mode is XOCFI_SEL_TIME, only XOCFI_TIME_UTC is allowed.).
  | orbitFileMode | Flag that indicates the type of the input orbit file (OrbitInitModeEnum except PRECISE models). There exists the posibility of detecting automatically the type of the files using the value XOCFI_ORBIT_INIT_AUTO. The Orbit Event files are used as Orbit Scenario files if the AUTO mode is selected. In case they want to be used as Predicted orbit files, the option XOCFI_ORBIT_INIT_OEF_POF_MODE should be chosen. .
  | inputFiles | Vector of orbit files.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_FILE, XOCFI_SEL_TIME, XOCFI_SEL_ORBIT. For DORIS Navigator files, XOCFI_SEL_ORBIT is not allowed). For TLE files, the whole file is always selected (this flag and the parameters time0/time1, orbit0/orbit1 are dummies).
  | time0 | Start time [Decimal days (Processing format)].
  | time1 | Stop time [Decimal days (Processing format)].
  | orbit0 | Start orbit.
  | orbit1 | Stop orbit.

void EECFI.OrbitId::init | ( | final SatId | satId,
|  | final ModelId | modelId,
|  | final TimeCorrelation | timeCor,
|  | long | timeRef,
|  | double | time,
|  | double[] | pos,
|  | double[] | vel,
|  | long | absOrbit,
|  | final PropagPreciseConf | preciseConf |
| ) |  |  | throws CfiError

Initialise the orbit using state Vector with numerical propagator.

Parameters:

  | 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: step: > 0 gravDegree, gravOrder: depend on gravFile used ap, f107, f107a: > 0 scMass: > 0 scDragCoeff, scDragArea: > 0 scSrpCoeff, scSrpArea: > 0 .

void EECFI.OrbitId::orbitInfoConfigure | ( | long | item,
|  | long | option |
| ) |  |  | throws CfiError

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:

- Spacecraft midnight (SMX)

Parameters:

  | item | Orbit info item to be activated/deactivated (OrbitInfoItemsEnum).
  | option | Activate/deactivate item computation (OrbitInfoFlagEnum).

StateVector EECFI.OrbitId::osvCompute | ( | long | mode,
|  | long | timeRef,
|  | double | time |
| ) |  |  | throws CfiError

Computes a satellite state vector for a given time.

## Overview

The OrbitId::osvCompute function computes accurate state vectors for user requested times.
The behaviour of the function depends strongly in the way in which the orbitId was initialised (see Orbit::init).
During the computation, some results are stored in the input orbitId. Those results can be used afterwards for other computations (in OrbitId::osvCompute or OrbitId::osvComputeExtra).
An OSV can be computed within a validity time range that also depends on input orbitId variable.

## Computation methods (Propagation/interpolation)

The methods used to compute the state vector depends on the way in which the orbit was initialised. Note that the computation method is selected automatically by the routine. Next table summarises the dependency of the computation method with the orbit initialisation. The methods in the second column are described in detail in the following subsections.

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 Navigator file

### Propagation methods

For the time being, the following propagation models are supported:

- Mean Keplerian model. It implies the use of a formulation for the time rates of change for the different mean Kepler elements as functions of a given initial set of mean Kepler elements. Using the above time rates of change, the mean orbital elements can be propagated forward or backward in time by extrapolating the individual time slopes of the superimposed secular and long-periodic perturbations functions. As the long periodic variations have typically periods on the order of months, a near-linear time slope for prediction intervals of many orbits is warranted.
- TLE model.This model propagates the state vector using the NORAD "two line elements" (TLE) and the SGP4 propagation theroy. This theory was designed for near Earth Satellites (nodal period less than 225 minutes). The SGP4 theory uses an Earth gravitational field through zonal terms J2, J3 and J4 and a power density function for the atmospheric model (assuming a non-rotating spherical model).
- Numerical propagator. This model consists on a numerical propagator that integrates the movement equations using a Runge-Kutta algorithm of 8th order. This propagator is expected to produce more precise results than the other models as it can be configured by the user (through the orbit initialisation function) to take into account the following perturbations:
  - Non-spherical gravity: the model Earth Gravity Model 1996 is used. The file with the coefficients of the spherical harmonics must be provided by the user, besides the order and degree to be used in the calculations.
  - Atmospheric drag: MSIS-E-90 atmospheric density model is used. The user must provide the Solar Geomagnetic Activity and F107 coefficient, either as input files or with constant values. The values can be obtained from ESA-ECSS or NASA documentation. The user must provide the drag effective area and drag coefficient of the satellite, besides the mass of the satellite.
  - Solar radiation pressure: it is calculated using the solar radiation pressure effective area and solar radiation pressure coefficient of the satellite provided by the user.
  - Third body perturbations: the perturbations produced by the Sun and the Moon gravities are calculated.
- Spot elements model (still TBD). This model is based upon the usage of an extended orbit state vector (originally used for SPOT satellites and currently for MetOp). The calculation of the orbit state vector is made by fitting them using a predicted or restituted orbit file.

"AUTO" and "DOUBLE" refer to the way in which the seed (initial state vector used as reference to begin the propagation) is taken:

- AUTO mode: The seed is taken to be the closer ANX or OSV to the requested time. The propagation seed could change from one propagation to the following.
- DOUBLE mode: the two ANX covering the propagation time are used as seeds. When calling OrbitId::osvCompute, the propagation is performed from each of the ANX and then a weighted average is done. The weight function is:
  where Dt = t - tANX and T is the nodal period of the orbit.
  This propagation method removes any discontinuity that may arise when changing the state vector around the true ascending node crossing used as seed for the propagation.

Finally, the validity time interval for the propagation also depends on the propagation method. The next table summarises all the propagation cases, explaining the seed that is taken in every case and how the validity interval is taken. In the table, t0 represent the input time for OrbitId::osvCompute. In the fourth column, the horizontal solid line in the graphic represents the list of OSV or ANX that are stored in the orbit initialisation, t_start and t_stop are the first and last OSV(ANX) in that line. Red square brackets represent the validity period for propagation. When using the AUTO mode, the seed for the propagation changes if t0 jumps out of the region in blue brackets. The red arrow(s) represent the chosen seed(s) (OSV or ANX).
Note that the cases with "NO AUTO" mode are similar to those with "AUTO" mode with one OSV.
The precise propagator stores the result of the last propagation, so that the next propagation begins from that point if the time begins after the last propagation (it saves computation time). If the propagation is requested at a time that is before the time of the previous propagation time, then the original seed is taken.

### Interpolation methods

The function OrbitId::osvCompute computes the OSV using an interpolation algorithm when the orbitId is initialised with ROF’s , DORIS Navigator files or SP3 file. The interpolation is highly accurate (1 mm. accuracy TBC) when it is performed between 4 OSV’s time intervals after start of file(s) and before end of file(s), but it degrades in the first 4 OSV's time intervals of the file and the last 4 OSV's time intervals of the file. The degradation depends strongly in the length of the OSV's time intervals: it can be less than mm. for 1 second up to some cm. for 60 seconds. Next figure provides a graphical explanation:
The OrbitId::osvCompute function allows to extrapolate, that is, compute results for at least 60 seconds before start of the input file(s) and after end of the input file. Anyway, extrapolation is not recommended. In this case, the extrapolation window is NOT included in the valid time interval. The following table shows some values for the degradation of the extrapolation:

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

When the interpolation is in "degraded" mode, that is, when extrapolation is used, or when there is less than four orbit state vectors available in the input file before or after the requested time, OrbitId::osvCompute function will issue different warnings messages indicating that a degraded interpolation or extrapolation is performed. If the requested time is out the allowed extrapolation range, the function will return an error message.

Parameters:

  | mode | Propagation/interpolation mode (dummy for current version).
  | timeRef | Time reference (TimeRefOrbitEnum).
  | time | Time.

Returns:
  Propagated/interpolated state vector (Eath Fixed RF).

StateVectorExtraInfo EECFI.OrbitId::osvComputeExtra | ( | long | extraChoice | ) | throws CfiError

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:

- when calling OrbitId::osvComputeExtra after initialising the orbit Id, the selected state vector is:
  - the one that is selected as seed for the propagation.
  - the first OSV stored in the orbitId if it is initialised for interpolation.
- when calling after OrbitId::osvCompute, the Cartesian orbit state vector is the one predicted at the requested time in that routine.

Note: model dependent values are not computed for geostationary satellites.

## Results vectors

The following tables describe the set of parameters are computed with OrbitId::osvComputeExtra.
The model-dependent parameters vector (note that there is an enumeration associated to the elements of the results vectors - OrbitExtraModelMKODependantEnum) is in next tables. These parameters depends on the way in which the input orbitId was initialised (the orbit mode). So, in table "Ancillary results vector. Model-dependent parameters" a column "OSV compute model" indicates the models for which that parameter can be computed. To simplify, the models are indicated with the following correspondence:

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

Ancillary results vector. Model-dependent parameters

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 | Mean Kepler Interpolation
[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 | Mean Kepler TLE Interpolation Precise
[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) | - | - | Mean Kepler Precise

The model-independent parameters vector (note that there is an enumeration associated to the elements of the results vectors - OrbitExtraModelMKOIndependantEnum):
Ancillary results vector. Model-independent parameters

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 | -

Parameters:

  | extraChoice | Flag to select the type of extra information (OrbitExtraChoiceEnum).

Returns:
  State vector extra information.

TleRec EECFI.OrbitId::osvToTle | ( | long | timeMode,
|  | long | timeRef,
|  | double | time0,
|  | double | time1,
|  | long | orbit0,
|  | long | orbit1 |
| ) |  |  | throws CfiError

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:

- If the orbit_id mode is XOCFI_ORBIT_INIT_USER_OSV_LIST_MODE, XOCFI_ORBIT_INIT_ROF_MODE or XOCFI_ORBIT_INIT_DORIS_MODE, all the OSVs in the input interval are fitted to the TLE by the Least Square method.
- In other cases (Predicted Orbit files), the input interval is populated with propagated OSV's. These OSV's are fitted to a single TLE by the Least Square method.

Parameters:

  | 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.

Returns:
  Two Line Element.

native 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 |
| ) |  |  | throws CfiError

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.

SatId EECFI.OrbitId::satId | ( |  | ) |

Return satellite id.

Returns:
  Satellite id.

void EECFI.OrbitId::setAnx | ( | final Vector< ANXExtra > | anxList | ) |

Sets the list of ANX data stored in the OrbitId object.

Parameters:

  | anxList | List of ANX info.

native void EECFI.OrbitId.setGeoOrbitInfo | ( | final GeoOrbitInfo | geoOrbitInfo | ) | throws CfiError

Set geostationary satellite information.

void EECFI.OrbitId::setOsf | ( | final Vector< OsfRecords > | osfRecList | ) |

Sets the list of orbital changes stored in the OrbitId object.

Parameters:

  | osfRecList | List of orbit changes.

void EECFI.OrbitId::setOsv | ( | final Vector< OsvRec > | osvRecList | ) |

Sets the list of orbit state Vectors stored in the OrbitId object.

Parameters:

  | osvRecList | List of orbit state vectors.

void EECFI.OrbitId::setPrecisePropagConfig | ( | final PropagPreciseConf | preciseConf | ) |

Set numerical propagator configuration.

Parameters:

  | preciseConf | Numerical propagator configuration.

void EECFI.OrbitId::setValTime | ( | final ValidityTime | valTime | ) |

Sets validity times.

Parameters:

  | valTime | Validity times.