Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.10 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: OrbitId.h,v 1.31 2014-02-25 15:36:33 cavm 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 #include "SP3File.h" 00025 #include "OemFile.h" // AN-578 00026 00027 //--NAMESPACES-------------------------------------------------------- 00028 using namespace std; 00029 00030 namespace EECFI 00031 { 00032 00036 class OrbitId: public CfiId 00037 { 00038 friend class ANXTime; 00039 friend class RelANXTime; 00040 friend class Swath; 00041 friend class SwathStar; 00042 friend class OrbitExtra; 00043 friend class SwathId; // AN-505 00044 00045 public: 00046 00051 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00052 long timeRef, double time, 00053 long orbit0, long driftMode, double ascMlstDrift, 00054 double inclination, long irep, long icyc, double rlong, 00055 double ascMlst ) throw (CfiError); 00056 00059 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00060 long timeRef, double time, 00061 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00062 00064 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00065 long timeRef, double time, 00066 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00067 00069 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00070 long timeRef, long orbitFileMode, 00071 const vector<string> &inputFiles, long timeInitMode, 00072 double time0, double time1, 00073 long orbit0, long orbit1) throw (CfiError); 00074 00076 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00077 long timeRef, double time, 00078 double pos[3], double vel[3], long absOrbit, 00079 const PropagPreciseConf &preciseConf ) throw (CfiError); 00080 00082 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00083 long timeRef, long orbitFileMode, 00084 const vector<string> &inputFiles, long timeInitMode, 00085 double time0, double time1, 00086 long orbit0, long orbit1, 00087 const PropagPreciseConf &preciseConf ) throw (CfiError); 00088 00090 OrbitId( const SatId &satId, 00091 const ModelId &modelId, 00092 const TimeCorrelation &timeCor, 00093 long timeRef, 00094 long orbitFileMode, 00095 vector<OsfFile> &osfData, 00096 long timeInitMode, 00097 double time0, double time1, 00098 long orbit0, long orbit1) throw (CfiError); 00100 OrbitId( const SatId &satId, 00101 const ModelId &modelId, 00102 const TimeCorrelation &timeCor, 00103 long timeRef, 00104 long orbitFileMode, 00105 vector<OrbitFile> &osvData, 00106 long timeInitMode, 00107 double time0, double time1, 00108 long orbit0, long orbit1) throw (CfiError); 00112 OrbitId( const SatId &satId, 00113 const ModelId &modelId, 00114 const TimeCorrelation &timeCor, 00115 long timeRef, 00116 long orbitFileMode, 00117 vector<OrbitFile> &osvData, 00118 OrbitChangeData orbitChangeData, 00119 long timeInitMode, 00120 double time0, double time1, 00121 long orbit0, long orbit1) throw (CfiError); // ANR-527 00123 OrbitId( const SatId &satId, 00124 const ModelId &modelId, 00125 const TimeCorrelation &timeCor, 00126 long timeRef, 00127 long orbitFileMode, 00128 vector<DorisFile> &dorisData, 00129 long timeInitMode, 00130 double time0, double time1, 00131 long orbit0, long orbit1) throw (CfiError); 00135 OrbitId( const SatId &satId, 00136 const ModelId &modelId, 00137 const TimeCorrelation &timeCor, 00138 long timeRef, 00139 long orbitFileMode, 00140 vector<DorisFile> &dorisData, 00141 OrbitChangeData orbitChangeData, 00142 long timeInitMode, 00143 double time0, double time1, 00144 long orbit0, long orbit1) throw (CfiError); // ANR-527 00145 00147 OrbitId( const SatId &satId, 00148 const ModelId &modelId, 00149 const TimeCorrelation &timeCor, 00150 long timeRef, 00151 long orbitFileMode, 00152 vector<SP3File> &sp3Data, 00153 long timeInitMode, 00154 double time0, double time1) throw (CfiError); // AN-550 00155 00158 OrbitId( const SatId &satId, 00159 const ModelId &modelId, 00160 const TimeCorrelation &timeCor, 00161 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00162 00164 OrbitId( const SatId &satId, 00165 const ModelId &modelId, 00166 const TimeCorrelation &timeCor, 00167 long timeRef, 00168 long orbitFileMode, 00169 vector<OemFile> &oemData, 00170 long timeInitMode, 00171 double time0, double time1) throw (CfiError); // AN-578 00172 00174 OrbitId( OrbitId &orbitIdIn ); 00175 00177 ~OrbitId() throw (CfiError); 00178 00182 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00183 long timeRef, double time, 00184 long orbit0, long driftMode, double ascMlstDrift, 00185 double inclination, long irep, long icyc, double rlong, 00186 double ascMlst ) throw (CfiError); 00187 00189 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00190 long timeRef, double time, 00191 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00192 00194 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00195 long timeRef, double time, 00196 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00197 00199 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00200 long timeRef, long orbitFileMode, 00201 const vector<string> &inputFiles, long timeInitMode, 00202 double time0, double time1, 00203 long orbit0, long orbit1) throw (CfiError); 00204 00206 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00207 long timeRef, double time, 00208 double pos[3], double vel[3], long absOrbit, 00209 const PropagPreciseConf &preciseConf) throw (CfiError); 00210 00212 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00213 long timeRef, long orbitFileMode, 00214 const vector<string> &inputFiles, long timeInitMode, 00215 double time0, double time1, 00216 long orbit0, long orbit1, 00217 const PropagPreciseConf &preciseConf ) throw (CfiError); 00218 00221 void init( const SatId &satId, 00222 const ModelId &modelId, 00223 const TimeCorrelation &timeCor, 00224 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00225 00227 void change( OrbitChangeData changeData) throw (CfiError); // Added for AN-527 00228 00230 SatId satId() const; 00231 00233 vector<OsvRec> getOsv() const; 00234 00236 void setOsv( const vector<OsvRec> &osvRecList ); 00237 00239 vector<ANXExtra> getAnx() const; 00240 00242 void setAnx( const vector<ANXExtra> &anxList ); 00243 00245 vector<OsfRecords> getOsf() const; 00246 00248 void setOsf( const vector<OsfRecords> &osvRecList ); 00249 00251 ValidityTime getValTime() const; 00252 00254 void setValTime( const ValidityTime &valTime ); 00255 00257 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00258 00260 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00261 00263 void setGeoOrbitInfo( const GeoOrbitInfo &geoOrbitInfo ) throw (CfiError); // Added for AN-353 00264 00266 GeoOrbitInfo getGeoOrbitInfo() throw (CfiError); // Added for AN-353 00267 00269 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00270 00279 void orbitInfoConfigure( long item, long option ) const throw (CfiError); // AN-523 00280 00282 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00283 00285 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00286 00288 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00289 00293 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00294 00298 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00299 00306 StateVector positionOnOrbitToTime( long abs_orbit_number, long angle_type, 00307 double angle, double angle_rate, double angle_rate_rate, 00308 long deriv, long time_ref) const throw (CfiError); 00309 00318 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00319 long orbit0, long orbit1 ) throw (CfiError); 00320 00322 void operator=( const OrbitId &orbitIdIn ); 00323 00324 protected: 00325 00327 OrbitId(); 00328 00330 GenericId* getId(); // this is the xo_orbit_id variable 00331 00333 void eraseOrbit() throw (CfiError); 00334 00335 private: 00336 00338 void dataFileInit(const SatId &satId, 00339 const ModelId &modelId, 00340 const TimeCorrelation &timeCor, 00341 long timeRef, 00342 long orbitFileMode, 00343 void *fileData, 00344 long timeInitMode, 00345 double time0, double time1, 00346 long orbit0, long orbit1) throw (CfiError); 00347 00348 TimeCorrelation timeId; 00349 ModelId modelId; 00350 }; 00351 00352 } // closing namespace 00353 00354 #endif