Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------------------- 00002 // CVS Info: $Id: OrbitId.h,v 1.11 2009/08/11 10:54:51 expcfi Exp $ 00003 //-------------------------------------------------------------------- 00004 00005 #ifndef _ORBITID_H 00006 #define _ORBITID_H 00007 00008 //--INCLUDE----------------------------------------------------------- 00009 #include "OrbitData.h" 00010 #include "CfiError.h" 00011 #include "CfiId.h" 00012 #include "TimeCorrelation.h" 00013 #include "OsvRec.h" 00014 #include "OsfRec.h" 00015 #include "SatId.h" 00016 #include "StateVector.h" 00017 #include "ModelId.h" 00018 #include "PropagPreciseConf.h" 00019 #include "TleRec.h" 00020 00021 //--NAMESPACES-------------------------------------------------------- 00022 using namespace std; 00023 00024 namespace EECFI 00025 { 00026 00030 class OrbitId: public CfiId 00031 { 00032 friend class ANXTime; 00033 friend class RelANXTime; 00034 friend class Swath; 00035 friend class DRSVis; 00036 friend class SwathStar; 00037 friend class OrbitExtra; 00038 00039 public: 00040 00042 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00043 long timeRef, double time, 00044 long orbit0, long driftMode, double ascMlstDrift, 00045 double inclination, long irep, long icyc, double rlong, 00046 double ascMlst ) throw (CfiError); 00047 00049 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00050 long timeRef, double time, 00051 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00052 00054 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00055 long timeRef, long orbitFileMode, 00056 const vector<string> &inputFiles, long timeInitMode, 00057 double time0, double time1, 00058 long orbit0, long orbit1) throw (CfiError); 00059 00061 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00062 long timeRef, double time, 00063 double pos[3], double vel[3], long absOrbit, 00064 const PropagPreciseConf &preciseConf ) throw (CfiError); 00065 00067 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00068 long timeRef, long orbitFileMode, 00069 const vector<string> &inputFiles, long timeInitMode, 00070 double time0, double time1, 00071 long orbit0, long orbit1, 00072 const PropagPreciseConf &preciseConf ) throw (CfiError); 00073 00075 OrbitId( OrbitId &orbitIdIn ); 00076 00078 ~OrbitId() throw (CfiError); 00079 00081 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00082 long timeRef, double time, 00083 long orbit0, long driftMode, double ascMlstDrift, 00084 double inclination, long irep, long icyc, double rlong, 00085 double ascMlst ) throw (CfiError); 00086 00088 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00089 long timeRef, double time, 00090 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00091 00093 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00094 long timeRef, long orbitFileMode, 00095 const vector<string> &inputFiles, long timeInitMode, 00096 double time0, double time1, 00097 long orbit0, long orbit1) throw (CfiError); 00098 00100 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00101 long timeRef, double time, 00102 double pos[3], double vel[3], long absOrbit, 00103 const PropagPreciseConf &preciseConf) throw (CfiError); 00104 00106 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00107 long timeRef, long orbitFileMode, 00108 const vector<string> &inputFiles, long timeInitMode, 00109 double time0, double time1, 00110 long orbit0, long orbit1, 00111 const PropagPreciseConf &preciseConf ) throw (CfiError); 00112 00114 SatId satId() const; 00115 00117 vector<OsvRec> getOsv() const; 00118 00120 void setOsv( const vector<OsvRec> &osvRecList ); 00121 00123 vector<ANXExtra> getAnx() const; 00124 00126 void setAnx( const vector<ANXExtra> &anxList ); 00127 00129 vector<OsfRecords> getOsf() const; 00130 00132 void setOsf( const vector<OsfRecords> &osvRecList ); 00133 00135 ValidityTime getValTime() const; 00136 00138 void setValTime( const ValidityTime &valTime ); 00139 00141 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00142 00144 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00145 00147 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00148 00150 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00151 00153 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00154 00156 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00157 00161 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00162 00166 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00167 00169 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00170 long orbit0, long orbit1 ) throw (CfiError); 00171 00173 void operator=( const OrbitId &orbitIdIn ); 00174 00175 protected: 00176 00178 OrbitId(); 00179 00181 GenericId* getId(); // this is the xo_orbit_id variable 00182 00184 void eraseOrbit() throw (CfiError); 00185 00186 private: 00187 00188 TimeCorrelation timeId; 00189 ModelId modelId; 00190 }; 00191 00192 } // closing namespace 00193 00194 #endif