DEIMOS
Earth Observation Mission CFI Software
Orbit Software User Manual
for JAVA
ESA

EECFI.OrbitId Class Reference

Class that stores the orbit data. More...

Inheritance diagram for EECFI.OrbitId:
EECFI.CfiId EECFI.CfiClass

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, long timeRef, long orbitFileMode, TleFileVector fileData, long timeInitMode, double time0, double time1) throws CfiError
 Class constructor: using data read from TLE 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< OsvRecgetOsv ()
 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< ANXExtragetAnx ()
 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< OsfRecordsgetOsf ()
 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,
long  timeRef,
long  orbitFileMode,
TleFileVector  fileData,
long  timeInitMode,
double  time0,
double  time1 
) throws CfiError

Class constructor: using data read from TLE 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_TLE_MODE, XOCFI_ORBIT_INIT_AUTO.
fileData Vector of TleFile 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.

Generated on Mon Dec 11 2023 14:48:24 for by doxygen 1.7.1