![]() |
Earth Observation Mission CFI Software Orbit Software User Manual |
![]() |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.3 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: OrbitId.h,v 1.15 2012/01/24 17:13:44 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 00049 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00050 long timeRef, double time, 00051 long orbit0, long driftMode, double ascMlstDrift, 00052 double inclination, long irep, long icyc, double rlong, 00053 double ascMlst ) throw (CfiError); 00054 00057 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00058 long timeRef, double time, 00059 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00060 00062 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00063 long timeRef, double time, 00064 double pos[3], double vel[3], long absOrbit ) 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) throw (CfiError); 00072 00074 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00075 long timeRef, double time, 00076 double pos[3], double vel[3], long absOrbit, 00077 const PropagPreciseConf &preciseConf ) throw (CfiError); 00078 00080 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00081 long timeRef, long orbitFileMode, 00082 const vector<string> &inputFiles, long timeInitMode, 00083 double time0, double time1, 00084 long orbit0, long orbit1, 00085 const PropagPreciseConf &preciseConf ) throw (CfiError); 00086 00088 OrbitId( const SatId &satId, 00089 const ModelId &modelId, 00090 const TimeCorrelation &timeCor, 00091 long timeRef, 00092 long orbitFileMode, 00093 vector<OsfFile> &osfData, 00094 long timeInitMode, 00095 double time0, double time1, 00096 long orbit0, long orbit1) throw (CfiError); 00098 OrbitId( const SatId &satId, 00099 const ModelId &modelId, 00100 const TimeCorrelation &timeCor, 00101 long timeRef, 00102 long orbitFileMode, 00103 vector<OrbitFile> &osvData, 00104 long timeInitMode, 00105 double time0, double time1, 00106 long orbit0, long orbit1) throw (CfiError); 00108 OrbitId( const SatId &satId, 00109 const ModelId &modelId, 00110 const TimeCorrelation &timeCor, 00111 long timeRef, 00112 long orbitFileMode, 00113 vector<DorisFile> &dorisData, 00114 long timeInitMode, 00115 double time0, double time1, 00116 long orbit0, long orbit1) throw (CfiError); 00117 00118 00120 OrbitId( OrbitId &orbitIdIn ); 00121 00123 ~OrbitId() throw (CfiError); 00124 00128 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00129 long timeRef, double time, 00130 long orbit0, long driftMode, double ascMlstDrift, 00131 double inclination, long irep, long icyc, double rlong, 00132 double ascMlst ) throw (CfiError); 00133 00135 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00136 long timeRef, double time, 00137 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00138 00140 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00141 long timeRef, double time, 00142 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00143 00145 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00146 long timeRef, long orbitFileMode, 00147 const vector<string> &inputFiles, long timeInitMode, 00148 double time0, double time1, 00149 long orbit0, long orbit1) throw (CfiError); 00150 00152 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00153 long timeRef, double time, 00154 double pos[3], double vel[3], long absOrbit, 00155 const PropagPreciseConf &preciseConf) throw (CfiError); 00156 00158 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00159 long timeRef, long orbitFileMode, 00160 const vector<string> &inputFiles, long timeInitMode, 00161 double time0, double time1, 00162 long orbit0, long orbit1, 00163 const PropagPreciseConf &preciseConf ) throw (CfiError); 00164 00166 SatId satId() const; 00167 00169 vector<OsvRec> getOsv() const; 00170 00172 void setOsv( const vector<OsvRec> &osvRecList ); 00173 00175 vector<ANXExtra> getAnx() const; 00176 00178 void setAnx( const vector<ANXExtra> &anxList ); 00179 00181 vector<OsfRecords> getOsf() const; 00182 00184 void setOsf( const vector<OsfRecords> &osvRecList ); 00185 00187 ValidityTime getValTime() const; 00188 00190 void setValTime( const ValidityTime &valTime ); 00191 00193 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00194 00196 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00197 00199 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00200 00202 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00203 00205 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00206 00208 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00209 00213 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00214 00218 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00219 00221 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00222 long orbit0, long orbit1 ) throw (CfiError); 00223 00225 void operator=( const OrbitId &orbitIdIn ); 00226 00227 protected: 00228 00230 OrbitId(); 00231 00233 GenericId* getId(); // this is the xo_orbit_id variable 00234 00236 void eraseOrbit() throw (CfiError); 00237 00238 private: 00239 00241 void dataFileInit(const SatId &satId, 00242 const ModelId &modelId, 00243 const TimeCorrelation &timeCor, 00244 long timeRef, 00245 long orbitFileMode, 00246 void *fileData, 00247 long timeInitMode, 00248 double time0, double time1, 00249 long orbit0, long orbit1) throw (CfiError); 00250 00251 TimeCorrelation timeId; 00252 ModelId modelId; 00253 }; 00254 00255 } // closing namespace 00256 00257 #endif