| Earth Observation Mission CFI Software Orbit Software User Manual |

Public Member Functions | Static Public Member Functions

# EECFI::OrbitFunc Class Reference

Class grouping several static functions. More...

Inheritance diagram for EECFI::OrbitFunc:

List of all members.

## Public Member Functions
| OrbitFunc ()
| Empty constructor.
| ~OrbitFunc ()
| Destructor.
## Static Public Member Functions
static string | genOef (string oef, string osf, string pof, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate an orbit event file.
static string | genOsf (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long absOrbitNum, long cycleNumber, long phaseNumber, long repeatCycle, long cycleLength, double anxLong, long driftMode, double inclination, double mlstDrift, double mlst, double date, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate an orbit scenario file.
static string | genOsf (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, double date, const OrbitInfo &missionInfo, const RefOrbitInfo &refOrbitInfo, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate an orbit scenario file (with support for MLST non linear drift).
static string | genOsfAppendOrbitChange (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, string inputFilename, long absOrbitNum, long repeatCycle, long cycleLength, double anxLong, long driftMode, double inclination, double mlstDrift, double mlst, long phaseIncrement, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Append an orbit change to the OSF.
static string | genOsfAppendOrbitChange (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, string inputFilename, long absOrbitNum, const RefOrbitInfo &refOrbitInfo, long phaseIncrement, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Append an orbit change to the OSF (with support for MLST non linear drift).
static string | genOsfChangeRepeatCycle (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, string inputFileName, long absOrbitNum, long searchDirection, long repeatCycle, long cycleLength, double anxLong, long driftMode, double inclination, double mlstDrift, long phaseIncrement, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Change repeat cycle in an OSF.
static string | genOsfChangeRepeatCycle (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, string inputFileName, long absOrbitNum, long searchDirection, const RefOrbitInfo &refOrbitInfo, long phaseIncrement, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Change repeat cycle in an OSF (with support for MLST non linear drift).
static string | genOsfAddDriftCycle (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, string inputFileName, long driftStartOrbit, long driftStopOrbit, double driftStopAnxLong, double maxAltitudeChange, long phaseIncStart, long phaseIncStop, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Add an orbital chabe for an orbit manoeuvre.
static string | genPof (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long timeInit, double startTime, double stopTime, long startOrbit, long stopOrbit, double osvLocation, long refFiletype, string referenceFile, string preciseConfFile, long pofFileType, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate predicted orbit file.
static string | genRof (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long timeInit, double startTime, double stopTime, long startOrbit, long stopOrbit, double osvInterval, long osvPrecise, long refFiletype, string referenceFile, string preciseConfFile, long rofFileType, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate restituted orbit file.
static string | genRofPrototype (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long propagModel, double time0, long orbit0, long timeInitMode, double startTime, long startOrbit, double stopTime, long stopOrbit, long driftMode, double ascmlstDrift, double inclination, long repRef, long cycRef, double rLong, double ascmlst, double osvInterval, long rofFileType, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate restituted orbit file prototype.
static string | genDnf (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long timeInit, double startTime, double stopTime, long startOrbit, long stopOrbit, double osvInterval, long osvPrecise, long refFiletype, string referenceFile, long dnfFileType, string preciseConfFile, string ctrlFile, string outputDir, string outputFileName, string fileClass, long versionNumber, string fhSystem) throw (CfiError)
| Generate a DORIS Navigator file.
static string | genTle (const SatId &satId, long fitMode, const TimeCorrelation &timeCor, long timeRef, long timeMode, double startTime, double stopTime, long startOrbit, long stopOrbit, string referenceFile, string outputFileName) throw (CfiError)
| Generate Two Line Elements file.
static vector< double > | checkOsf (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, string osfFile, long transitionNumber, vector< double > threshold) throw (CfiError)
| Check the consistency of an orbit scenario file.
static vector< pair< double, double > > | checkOef (const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, long timeRef, long timeMode, double startTime, double stopTime, long startOrbit, long stopOrbit, string oefFile, const vector< double > threshold) throw (CfiError)
| Check the consistency of an orbit event file.
static long | orbitDataFilter (vector< OrbitFile > &osvDataIn, OrbitDataFilterConfiguration &filterSettings, vector< OrbitFile > &osvDataOut, OrbitDataFilterReport &filterReport) throw (CfiError)
| Filter OSV samples based on the argument settings (Orbit Files).
static long | orbitDataFilter (vector< DorisFile > &osvDataIn, OrbitDataFilterConfiguration &filterSettings, vector< DorisFile > &osvDataOut, OrbitDataFilterReport &filterReport) throw (CfiError)
| Filter OSV samples based on the argument settings (Doris Files).

## Detailed Description

Class grouping several static functions.

## Constructor & Destructor Documentation

EECFI::OrbitFunc::OrbitFunc | ( |  | ) |

Empty constructor.

EECFI::OrbitFunc::~OrbitFunc | ( |  | ) |

Destructor.

## Member Function Documentation

vector< pair< double, double > > EECFI::OrbitFunc::checkOef | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | long | timeRef,
|  | long | timeMode,
|  | double | startTime,
|  | double | stopTime,
|  | long | startOrbit,
|  | long | stopOrbit,
|  | string | oefFile,
|  | const vector< double > | threshold |
| ) |  |  | throw (CfiError)`[static]`

Check the consistency of an orbit event 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 of input times (TimeRefOrbitEnum).
  | timeMode | Flag for the input time range selection: whole file, time or orbits.
  | startTime | Start time for the time range to be checked.
  | stopTime | Stop time for the time range to be checked.
  | startOrbit | Start orbit for the orbit range to be checked. Allowed range: file range.
  | stopOrbit | Stop orbit for the orbit range to be checked. Allowed range: file range.
  | oefFile | Orbit Event file to be checked.
  | threshold | Vector with the thresholds of the quantities ckecked (must have length XOCFI_NUM_CHECK_PARAMS). Positions: [0] Threshold for the time at ANX [s]. Allowed range: > 0. [1] Threshold for the ANX longitude [deg]. Allowed range: > 0. [2] Threshold for the MLST [s]. Allowed range: > 0. [3] Threshold for the osculating semi-axis major [m]. Allowed range: > 0. [4] Threshold for the osculating inclination [deg]. Allowed range: > 0. [5] Threshold for the nodal period [s]. Allowed range: > 0.

Returns:
  Vector of pairs with the differences in the checked quatities and the rms..

vector< double > EECFI::OrbitFunc::checkOsf | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | string | osfFile,
|  | long | transitionNumber,
|  | vector< double > | threshold |
| ) |  |  | throw (CfiError)`[static]`

Check the consistency of an orbit scenario 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 | Mode Id.
  | timeCor | Time correlations.
  | osfFile | Orbit Scenario file to be checked.
  | transitionNumber | Number of the transition to be checked; the last transition is checked if it is 0. Allowed range: >1, <=Number of transitions.
  | threshold | Vector with the thresholds of the quantities ckecked (must have length XOCFI_NUM_CHECK_PARAMS). Positions: [0] Threshold for the time at ANX [s]. Allowed range: > 0. [1] Threshold for the ANX longitude [deg]. Allowed range: > 0. [2] Threshold for the MLST [s]. Allowed range: > 0. [3] Threshold for the osculating semi-axis major [m]. Allowed range: > 0. [4] Threshold for the osculating inclination [deg]. Allowed range: > 0. [5] Threshold for the nodal period [s]. Allowed range: > 0.

Returns:
  Vector with the differences in the checked quatities.

string EECFI::OrbitFunc::genDnf | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | long | timeRef,
|  | long | timeInit,
|  | double | startTime,
|  | double | stopTime,
|  | long | startOrbit,
|  | long | stopOrbit,
|  | double | osvInterval,
|  | long | osvPrecise,
|  | long | refFiletype,
|  | string | referenceFile,
|  | long | dnfFileType,
|  | string | preciseConfFile,
|  | string | ctrlFile,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate a DORIS Navigator file.

In order to read and write 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 of inputs.
  | timeInit | Flag for selecting the time range of the initialisation (XOCFI_SEL_ORBIT or XOCFI_SEL_TIME).
  | startTime | Processing time corresponding to the beginning of the required interval (MJD2000).
  | stopTime | Processing time corresponding to the end of the required interval (MJD2000).
  | startOrbit | Orbit number corresponding to the beginning of the required interval. Allowed range: >= 1.
  | stopOrbit | Orbit number corresponding to the end of the required interval. Allowed range: >= 1.
  | osvInterval | Interval between consecutive state vector [secs]. This parameter should be coherent with the osvPrecise flag (see below). If osvPrecise is set to: XOCFI_OSV_PRECISE_MINUTE: osv will be forced to be a multiple of 60 seconds. XOCFI_OSV_PRECISE_TEN_SECONDS: osv will be forced to be a multiple of 10 seconds. Allowed range: >= 0. . Allowed range: >= 0.
  | osvPrecise | Flag to indicatte if state vectors should be placed at exact time locations (OsvPreciseEnum).
  | refFiletype | File type of the input reference file. (Note: When generating a ROF file from a DORIS NAVIGATOR file, the input times should be expresed in UTC).
  | referenceFile | Reference file name.
  | dnfFileType | File type of the output reference file (XOCFI_REF_FILETYPE_DORIS_NAV).
  | preciseConfFile | Numerical propagator configuration file.
  | ctrlFile | Control file in xml format. This file contains the corrections for position and velocity in the along, across and radial directions together with the position accuracy. If empty string (��), no corrections will be performed and the accuracy (quality index in the DNF)will be set to 1.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated DNF file name.

string EECFI::OrbitFunc::genOef | ( | string | oef,
|  | string | osf,
|  | string | pof,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate an orbit event file.

In order to read and write files, this method internally uses Data Handling functions. Please refer to [D_H_SUM] for further details.

Parameters:

  | oef | OEF file name. If it is "", the name is generated automatically.
  | osf | Orbit Scenario File name.
  | pof | Predicted Orbit file name.
  | fileClass | File class for output file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OEF file name.

string EECFI::OrbitFunc::genOsf | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | long | absOrbitNum,
|  | long | cycleNumber,
|  | long | phaseNumber,
|  | long | repeatCycle,
|  | long | cycleLength,
|  | double | anxLong,
|  | long | driftMode,
|  | double | inclination,
|  | double | mlstDrift,
|  | double | mlst,
|  | double | date,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate an orbit scenario file.

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.
  | absOrbitNum | Orbit number in OSF first orbit change. Allowed range: >= 1.
  | cycleNumber | Cycle number in OSF first orbit change. Allowed range: >= 1.
  | phaseNumber | Phase number in OSF first orbit change. Allowed range: >= 1.
  | repeatCycle | Repeat cycle of the reference orbit. Allowed range: >= 1.
  | cycleLength | Cycle length of the reference orbit. Allowed range: >= 14.
  | anxLong | Reference orbit ascending node crossing longitude [deg]. Allowed range: [-180, 180].
  | driftMode | Flag to select between drift in mlst and inclination as input characterization of the reference orbit. Allowed range: [0, 1].
  | inclination | If driftMode=XOCFI_NOSUNSYNC_INCLINATION, inclination of the reference orbit [deg]. Allowed range: [0, 180).
  | mlstDrift | If driftMode=XOCFI_NOSUNSYNC_DRIFT, drift in mlst of the reference orbit [seconds/day]. MLST[N+1]=MLST[N]+MLST-drift.
  | mlst | Mean local solar time [decimal hours]. Allowed range: [0, 24).
  | date | ANX date [decimal days].
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genOsf | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | double | date,
|  | const OrbitInfo & | missionInfo,
|  | const RefOrbitInfo & | refOrbitInfo,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate an orbit scenario file (with support for MLST non linear drift).

Parameters:

  | satId | Satellite id.
  | modelId | Model Id.
  | timeCor | Time correlations.
  | date | ANX date [decimal days].
  | missionInfo | Orbit information.
  | refOrbitInfo | Orbital parameters, including support for MLST non linear drift.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genOsfAddDriftCycle | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | string | inputFileName,
|  | long | driftStartOrbit,
|  | long | driftStopOrbit,
|  | double | driftStopAnxLong,
|  | double | maxAltitudeChange,
|  | long | phaseIncStart,
|  | long | phaseIncStop,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Add an orbital chabe for an orbit manoeuvre.

In order to read and write 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.
  | inputFileName | Input OSF to which the orbit changes are appended.
  | driftStartOrbit | Absolute orbit number at the drift start.
  | driftStopOrbit | Absolute orbit number at the drift stop. Allowed range: > driftStartOrbit.
  | driftStopAnxLong | Drift stop orbit ascending node crossing longitude [deg]. Allowed range: [-180, 180].
  | maxAltitudeChange | Maximum variation in altitude between the reference orbit and the drift orbit [m].
  | phaseIncStart | Phase increment at drift start: If 1 then phase[N+1] = phase[N] + 1; If 0 then phase[N+1] = phase[N]. Allowed range: [0, 1].
  | phaseIncStop | Phase increment at drift stop: If 1 then phase[N+1] = phase[N] + 1; If 0 then phase[N+1] = phase[N]. Allowed range: [0, 1].
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genOsfAppendOrbitChange | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | string | inputFileName,
|  | long | absOrbitNum,
|  | long | repeatCycle,
|  | long | cycleLength,
|  | double | anxLong,
|  | long | driftMode,
|  | double | inclination,
|  | double | mlstDrift,
|  | double | mlst,
|  | long | phaseIncrement,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Append an orbit change to the OSF.

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

In order to read and write 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.
  | inputFileName | Input OSF to which the orbit change is appended.
  | absOrbitNum | Orbit number in OSF first orbit change.
  | repeatCycle | Repeat cycle of the reference orbit. Allowed range: >= 1.
  | cycleLength | Cycle length of the reference orbit. Allowed range: >= 14.
  | anxLong | Reference orbit ascending node crossing longitude [deg]. Allowed range: [-180, 180].
  | driftMode | Flag to select between drift in mlst and inclination as input characterization of the reference orbit. Allowed range: [0, 1].
  | inclination | If driftMode=XOCFI_NOSUNSYNC_INCLINATION, inclination of the reference orbit [deg]. Allowed range: [0, 180).
  | mlstDrift | If driftMode=XOCFI_NOSUNSYNC_DRIFT, drift in mlst of the reference orbit [seconds/day]. MLST[N+1]=MLST[N]+MLST-drift.
  | mlst | Mean local solar time [decimal hours]. Allowed range: [0, 24).
  | phaseIncrement | Flag. If 0 -> phase [N+1] = phase[N] If 1 -> phase [N+1] = phase[N] + 1.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genOsfAppendOrbitChange | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | string | inputFileName,
|  | long | absOrbitNum,
|  | const RefOrbitInfo & | refOrbitInfo,
|  | long | phaseIncrement,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Append an orbit change to the OSF (with support for MLST non linear drift).

In order to read and write 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.
  | inputFileName | Input OSF to which the orbit change is appended.
  | absOrbitNum | Orbit number in OSF first orbit change.
  | refOrbitInfo | Orbital parameters, including support for MLST non linear drift.
  | phaseIncrement | Flag. If 0 -> phase [N+1] = phase[N] If 1 -> phase [N+1] = phase[N] + 1.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genOsfChangeRepeatCycle | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | string | inputFileName,
|  | long | absOrbitNum,
|  | long | searchDirection,
|  | long | repeatCycle,
|  | long | cycleLength,
|  | double | anxLong,
|  | long | driftMode,
|  | double | inclination,
|  | double | mlstDrift,
|  | long | phaseIncrement,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Change repeat cycle in an OSF.

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

In order to read and write 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.
  | inputFileName | Input OSF to which the orbit change is appended.
  | absOrbitNum | Orbit number in OSF first orbit change.
  | searchDirection | Search for optimum transition after or before absOrbitNum.
  | repeatCycle | Repeat cycle of the reference orbit. Allowed range: >= 1.
  | cycleLength | Cycle length of the reference orbit. Allowed range: >= 14.
  | anxLong | Reference orbit ascending node crossing longitude [deg]. Allowed range: [-180, 180].
  | driftMode | Flag to select between drift in mlst and inclination as input characterization of the reference orbit. Allowed range: [0, 1].
  | inclination | If driftMode=XOCFI_NOSUNSYNC_INCLINATION, inclination of the reference orbit [deg]. Allowed range: [0, 180).
  | mlstDrift | If driftMode=XOCFI_NOSUNSYNC_DRIFT, drift in mlst of the reference orbit [seconds/day]. MLST[N+1]=MLST[N]+MLST-drift.
  | phaseIncrement | Flag. If 0 -> phase [N+1] = phase[N] If 1 -> phase [N+1] = phase[N] + 1.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genOsfChangeRepeatCycle | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | string | inputFileName,
|  | long | absOrbitNum,
|  | long | searchDirection,
|  | const RefOrbitInfo & | refOrbitInfo,
|  | long | phaseIncrement,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Change repeat cycle in an OSF (with support for MLST non linear drift).

In order to read and write 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.
  | inputFileName | Input OSF to which the orbit change is appended.
  | absOrbitNum | Orbit number in OSF first orbit change.
  | searchDirection | Search for optimum transition after or before absOrbitNum.
  | refOrbitInfo | Orbital parameters, including support for MLST non linear drift.///
  | phaseIncrement | Flag. If 0 -> phase [N+1] = phase[N] If 1 -> phase [N+1] = phase[N] + 1.
  | phaseIncrement | Flag. If 0 -> phase [N+1] = phase[N] If 1 -> phase [N+1] = phase[N] + 1.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated OSF file name.

string EECFI::OrbitFunc::genPof | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | long | timeRef,
|  | long | timeInit,
|  | double | startTime,
|  | double | stopTime,
|  | long | startOrbit,
|  | long | stopOrbit,
|  | double | osvLocation,
|  | long | refFiletype,
|  | string | referenceFile,
|  | string | preciseConfFile,
|  | long | pofFileType,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate predicted orbit file.

In order to read and write 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 of inputs (TimeRefOrbitEnum).
  | timeInit | Flag for selecting the time range of the initialisation (XOCFI_SEL_ORBIT or XOCFI_SEL_TIME).
  | startTime | Processing time corresponding to the beginning of the required interval (MJD2000).
  | stopTime | Processing time corresponding to the end of the required interval (MJD2000).
  | startOrbit | Orbit number corresponding to the beginning of the required interval. Allowed range: >= 1.
  | stopOrbit | Orbit number corresponding to the end of the required interval. Allowed range: >= 1.
  | osvLocation | Location of the state vector within the orbit (secs). Allowed range: >= 0 < 1 nodal period.
  | refFiletype | File type of the input reference file.
  | referenceFile | Reference file name.
  | preciseConfFile | file to configurate the numeric propagator (empty string("") for analytic propagator or interpolator).
  | pofFileType | File type of the output reference file (XOCFI_REF_FILETYPE_POF).
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated POF file name.

string EECFI::OrbitFunc::genRof | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | long | timeRef,
|  | long | timeInit,
|  | double | startTime,
|  | double | stopTime,
|  | long | startOrbit,
|  | long | stopOrbit,
|  | double | osvInterval,
|  | long | osvPrecise,
|  | long | refFiletype,
|  | string | referenceFile,
|  | string | preciseConfFile,
|  | long | rofFileType,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate restituted orbit file.

In order to read and write 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 of inputs (TimeRefOrbitEnum).
  | timeInit | Flag for selecting the time range of the initialisation (XOCFI_SEL_ORBIT or XOCFI_SEL_TIME).
  | startTime | Processing time corresponding to the beginning of the required interval (MJD2000).
  | stopTime | Processing time corresponding to the end of the required interval (MJD2000).
  | startOrbit | Orbit number corresponding to the beginning of the required interval. Allowed range: >= 1.
  | stopOrbit | Orbit number corresponding to the end of the required interval. Allowed range: >= 1.
  | osvInterval | Interval between consecutive state vector [secs]. This parameter should be coherent with the osvPrecise flag (see below). If osvPrecise is set to: XOCFI_OSV_PRECISE_MINUTE: osv will be forced to be a multiple of 60 seconds. XOCFI_OSV_PRECISE_TEN_SECONDS: osv will be forced to be a multiple of 10 seconds. Allowed range: >= 0. Allowed range: >= 0.
  | osvPrecise | Flag to indicate if state vectors should be placed at exact time locations (OsvPreciseEnum).
  | refFiletype | File type of the input reference file. (Note: When generating a ROF file from a DORIS NAVIGATOR file, the input times should be expresed in UTC).
  | referenceFile | Reference file name.
  | preciseConfFile | file to configurate the numeric propagator (empty string("") for analytic propagator or interpolator).
  | rofFileType | File type of the output reference file (XOCFI_REF_FILETYPE_ROF, XOCFI_REF_FILETYPE_DORIS_PREM or XOCFI_REF_FILETYPE_DORIS_PREC).
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated ROF file name.

string EECFI::OrbitFunc::genRofPrototype | ( | const SatId & | satId,
|  | const ModelId & | modelId,
|  | const TimeCorrelation & | timeCor,
|  | long | timeRef,
|  | long | propagModel,
|  | double | time0,
|  | long | orbit0,
|  | long | timeInitMode,
|  | double | startTime,
|  | long | startOrbit,
|  | double | stopTime,
|  | long | stopOrbit,
|  | long | driftMode,
|  | double | ascmlstDrift,
|  | double | inclination,
|  | long | repRef,
|  | long | cycRef,
|  | double | rLong,
|  | double | ascmlst,
|  | double | osvInterval,
|  | long | rofFileType,
|  | string | outputDir,
|  | string | outputFileName,
|  | string | fileClass,
|  | long | versionNumber,
|  | string | fhSystem |
| ) |  |  | throw (CfiError)`[static]`

Generate restituted orbit file prototype.

In order to write 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 of inputs.
  | propagModel | Propagation model.
  | time0 | Reference time (decimal days, processing format).
  | orbit0 | Absolute orbit number of the reference orbit. Allowed range: >= 0.
  | timeInitMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_ORBIT or XOCFI_SEL_TIME).
  | startTime | Processing time corresponding to the beginning of the required interval (MJD2000).
  | stopTime | Processing time corresponding to the end of the required interval (MJD2000).
  | startOrbit | Orbit number corresponding to the beginning of the required interval. Allowed range: >= 1.
  | stopOrbit | Orbit number corresponding to the end of the required interval. Allowed range: >= 1.
  | driftMode | Flag to select between drift in mlst and inclination as input characterization of the reference orbit (NoSunSychronousModeEnum).
  | ascmlstDrift | if driftMode=XOCFI_NOSUNSYNC_DRIFT. Drift in mlst of the reference orbit [seconds/day].
  | repRef | Repeat cycle of the reference orbit [days].
  | cycRef | Cycle length of the reference orbit (orbits).
  | rLong | Geocentric longitude of the ascending node (Earth fixed CS) [deg]. Allowed range: [0, 360).
  | ascmlst | Mean Local solar time at ascending node (hours). Allowed range: [0, 24).
  | inclination | If driftMode = XOCFI_NOSUNSYNC_INCLINATION, inclination of the reference orbit [deg]. Allowed range: [0, 180].
  | osvInterval | Interval between consecutive state vector (secs). Allowed range: >= 0.
  | rofFileType | File type of the output reference file.
  | outputDir | Directory where the resulting OSF is written (current directory if "").
  | outputFileName | Output OSF name. It will be generated automatically if "".
  | fileClass | File class for output Orbit file.
  | versionNumber | Version number for output file. Allowed range: >= 1.
  | fhSystem | System field of the output file fixed header.

Returns:
  Generated ROF file name.

string EECFI::OrbitFunc::genTle | ( | const SatId & | satId,
|  | long | fitMode,
|  | const TimeCorrelation & | timeCor,
|  | long | timeRef,
|  | long | timeMode,
|  | double | startTime,
|  | double | stopTime,
|  | long | startOrbit,
|  | long | stopOrbit,
|  | string | referenceFile,
|  | string | outputFileName |
| ) |  |  | throw (CfiError)`[static]`

Generate Two Line Elements file.

In order to read and write files, this method internally uses Data Handling functions. Please refer to [D_H_SUM] for further details.

Parameters:

  | satId | Satellite id.
  | fitMode | Fitting mode (see TLEFitModeEnum).
  | timeCor | Time correlations.
  | timeRef | ime reference of inputs (TimeRefOrbitEnum).
  | timeMode | Flag for selecting the time range of the initialisation (XOCFI_SEL_ORBIT, XOCFI_SEL_TIME or XOCFI_SEL_DEFAULT).
  | startTime | Processing time corresponding to the beginning of the required interval (MJD2000).
  | stopTime | Processing time corresponding to the end of the required interval (MJD2000).
  | startOrbit | Orbit number corresponding to the beginning of the required interval. Allowed range: >= 1.
  | stopOrbit | Orbit number corresponding to the end of the required interval. Allowed range: >= 1.
  | referenceFile | Reference file name.
  | outputFileName | Output TLE name. It will be generated automatically if "".

Returns:
  Generated TLE file name.

long EECFI::OrbitFunc::orbitDataFilter | ( | vector< OrbitFile > & | osvDataIn,
|  | OrbitDataFilterConfiguration & | filterSettings,
|  | vector< OrbitFile > & | osvDataOut,
|  | OrbitDataFilterReport & | filterReport |
| ) |  |  | throw (CfiError)`[static]`

Filter OSV samples based on the argument settings (Orbit Files).

## OUTLIERS FILTER

The outliers filter works this way:

- For every input state vector, a new state vector is computed using interpolation, taking as input for interpolation the 10 state vectors around that time (this is done except for the first 5 and last 5 state vectors in file, due to interpolation limitations).
- The interpolated state vector is compared with the one present in the file. If the difference between them (in position or velocity) is bigger than the input thresholds, the state vector is removed.

Parameters:

  | osvDataIn | Input data including a list of OSV
  | filterSettings | Data Filter configuration
  | osvDataOut | Output data with the filtered list of samples
  | filterReport | Output Data Filter Report

References EECFI::CfiError::addMsg(), and EECFI::OrbitFile::osvRec.

long EECFI::OrbitFunc::orbitDataFilter | ( | vector< DorisFile > & | osvDataIn,
|  | OrbitDataFilterConfiguration & | filterSettings,
|  | vector< DorisFile > & | osvDataOut,
|  | OrbitDataFilterReport & | filterReport |
| ) |  |  | throw (CfiError)`[static]`

Filter OSV samples based on the argument settings (Doris Files).

## OUTLIERS FILTER

The outliers filter works this way:

- For every input state vector, a new state vector is computed using interpolation, taking as input for interpolation the 10 state vectors around that time (this is done except for the first 5 and last 5 state vectors in file, due to interpolation limitations).
- The interpolated state vector is compared with the one present in the file. If the difference between them (in position or velocity) is bigger than the input thresholds, the state vector is removed.

Parameters:

  | osvDataIn | Input data including a list of OSV
  | filterSettings | Data Filter configuration
  | osvDataOut | Output data with the filtered list of samples
  | filterReport | Output Data Filter Report

References EECFI::CfiError::addMsg(), EECFI::DorisFile::osvRec, and EECFI::DorisFile::osvRecJ2.