![]() |
Earth Observation Mission CFI Software Orbit Software User Manual |
![]() |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.2 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: OrbitId.h,v 1.11 2009/08/11 10:54:51 expcfi Exp $ 00007 //-------------------------------------------------------------------- 00008 00009 #ifndef _ORBITID_H 00010 #define _ORBITID_H 00011 00012 //--INCLUDE----------------------------------------------------------- 00013 #include "OrbitData.h" 00014 #include "CfiError.h" 00015 #include "CfiId.h" 00016 #include "TimeCorrelation.h" 00017 #include "OsvRec.h" 00018 #include "OsfRec.h" 00019 #include "SatId.h" 00020 #include "StateVector.h" 00021 #include "ModelId.h" 00022 #include "PropagPreciseConf.h" 00023 #include "TleRec.h" 00024 00025 //--NAMESPACES-------------------------------------------------------- 00026 using namespace std; 00027 00028 namespace EECFI 00029 { 00030 00034 class OrbitId: public CfiId 00035 { 00036 friend class ANXTime; 00037 friend class RelANXTime; 00038 friend class Swath; 00039 friend class DRSVis; 00040 friend class SwathStar; 00041 friend class OrbitExtra; 00042 00043 public: 00044 00048 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00049 long timeRef, double time, 00050 long orbit0, long driftMode, double ascMlstDrift, 00051 double inclination, long irep, long icyc, double rlong, 00052 double ascMlst ) throw (CfiError); 00053 00055 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00056 long timeRef, double time, 00057 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00058 00060 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00061 long timeRef, double time, 00062 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00063 00065 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00066 long timeRef, long orbitFileMode, 00067 const vector<string> &inputFiles, long timeInitMode, 00068 double time0, double time1, 00069 long orbit0, long orbit1) throw (CfiError); 00070 00072 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00073 long timeRef, double time, 00074 double pos[3], double vel[3], long absOrbit, 00075 const PropagPreciseConf &preciseConf ) throw (CfiError); 00076 00078 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00079 long timeRef, long orbitFileMode, 00080 const vector<string> &inputFiles, long timeInitMode, 00081 double time0, double time1, 00082 long orbit0, long orbit1, 00083 const PropagPreciseConf &preciseConf ) throw (CfiError); 00084 00086 OrbitId( OrbitId &orbitIdIn ); 00087 00089 ~OrbitId() throw (CfiError); 00090 00094 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00095 long timeRef, double time, 00096 long orbit0, long driftMode, double ascMlstDrift, 00097 double inclination, long irep, long icyc, double rlong, 00098 double ascMlst ) throw (CfiError); 00099 00101 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00102 long timeRef, double time, 00103 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00104 00106 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00107 long timeRef, double time, 00108 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00109 00111 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00112 long timeRef, long orbitFileMode, 00113 const vector<string> &inputFiles, long timeInitMode, 00114 double time0, double time1, 00115 long orbit0, long orbit1) throw (CfiError); 00116 00118 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00119 long timeRef, double time, 00120 double pos[3], double vel[3], long absOrbit, 00121 const PropagPreciseConf &preciseConf) throw (CfiError); 00122 00124 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00125 long timeRef, long orbitFileMode, 00126 const vector<string> &inputFiles, long timeInitMode, 00127 double time0, double time1, 00128 long orbit0, long orbit1, 00129 const PropagPreciseConf &preciseConf ) throw (CfiError); 00130 00132 SatId satId() const; 00133 00135 vector<OsvRec> getOsv() const; 00136 00138 void setOsv( const vector<OsvRec> &osvRecList ); 00139 00141 vector<ANXExtra> getAnx() const; 00142 00144 void setAnx( const vector<ANXExtra> &anxList ); 00145 00147 vector<OsfRecords> getOsf() const; 00148 00150 void setOsf( const vector<OsfRecords> &osvRecList ); 00151 00153 ValidityTime getValTime() const; 00154 00156 void setValTime( const ValidityTime &valTime ); 00157 00159 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00160 00162 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00163 00165 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00166 00168 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00169 00171 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00172 00174 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00175 00179 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00180 00184 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00185 00187 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00188 long orbit0, long orbit1 ) throw (CfiError); 00189 00191 void operator=( const OrbitId &orbitIdIn ); 00192 00193 protected: 00194 00196 OrbitId(); 00197 00199 GenericId* getId(); // this is the xo_orbit_id variable 00200 00202 void eraseOrbit() throw (CfiError); 00203 00204 private: 00205 00206 TimeCorrelation timeId; 00207 ModelId modelId; 00208 }; 00209 00210 } // closing namespace 00211 00212 #endif