Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.11 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 XO_DECL 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 friend class AttitudeDef; // AN-596 00045 00046 public: 00047 00052 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00053 long timeRef, double time, 00054 long orbit0, long driftMode, double ascMlstDrift, 00055 double inclination, long irep, long icyc, double rlong, 00056 double ascMlst ) throw (CfiError); 00057 00060 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00061 long timeRef, double time, 00062 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00063 00065 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00066 long timeRef, double time, 00067 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00068 00070 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00071 long timeRef, long orbitFileMode, 00072 const vector<string> &inputFiles, long timeInitMode, 00073 double time0, double time1, 00074 long orbit0, long orbit1) throw (CfiError); 00075 00077 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00078 long timeRef, double time, 00079 double pos[3], double vel[3], long absOrbit, 00080 const PropagPreciseConf &preciseConf ) throw (CfiError); 00081 00083 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00084 long timeRef, long orbitFileMode, 00085 const vector<string> &inputFiles, long timeInitMode, 00086 double time0, double time1, 00087 long orbit0, long orbit1, 00088 const PropagPreciseConf &preciseConf ) throw (CfiError); 00089 00091 OrbitId( const SatId &satId, 00092 const ModelId &modelId, 00093 const TimeCorrelation &timeCor, 00094 long timeRef, 00095 long orbitFileMode, 00096 vector<OsfFile> &osfData, 00097 long timeInitMode, 00098 double time0, double time1, 00099 long orbit0, long orbit1) throw (CfiError); 00101 OrbitId( const SatId &satId, 00102 const ModelId &modelId, 00103 const TimeCorrelation &timeCor, 00104 long timeRef, 00105 long orbitFileMode, 00106 vector<OrbitFile> &osvData, 00107 long timeInitMode, 00108 double time0, double time1, 00109 long orbit0, long orbit1) throw (CfiError); 00113 OrbitId( const SatId &satId, 00114 const ModelId &modelId, 00115 const TimeCorrelation &timeCor, 00116 long timeRef, 00117 long orbitFileMode, 00118 vector<OrbitFile> &osvData, 00119 OrbitChangeData orbitChangeData, 00120 long timeInitMode, 00121 double time0, double time1, 00122 long orbit0, long orbit1) throw (CfiError); // ANR-527 00124 OrbitId( const SatId &satId, 00125 const ModelId &modelId, 00126 const TimeCorrelation &timeCor, 00127 long timeRef, 00128 long orbitFileMode, 00129 vector<DorisFile> &dorisData, 00130 long timeInitMode, 00131 double time0, double time1, 00132 long orbit0, long orbit1) throw (CfiError); 00136 OrbitId( const SatId &satId, 00137 const ModelId &modelId, 00138 const TimeCorrelation &timeCor, 00139 long timeRef, 00140 long orbitFileMode, 00141 vector<DorisFile> &dorisData, 00142 OrbitChangeData orbitChangeData, 00143 long timeInitMode, 00144 double time0, double time1, 00145 long orbit0, long orbit1) throw (CfiError); // ANR-527 00146 00148 OrbitId( const SatId &satId, 00149 const ModelId &modelId, 00150 const TimeCorrelation &timeCor, 00151 long timeRef, 00152 long orbitFileMode, 00153 vector<SP3File> &sp3Data, 00154 long timeInitMode, 00155 double time0, double time1) throw (CfiError); // AN-550 00156 00159 OrbitId( const SatId &satId, 00160 const ModelId &modelId, 00161 const TimeCorrelation &timeCor, 00162 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00163 00165 OrbitId( const SatId &satId, 00166 const ModelId &modelId, 00167 const TimeCorrelation &timeCor, 00168 long timeRef, 00169 long orbitFileMode, 00170 vector<OemFile> &oemData, 00171 long timeInitMode, 00172 double time0, double time1) throw (CfiError); // AN-578 00173 00175 OrbitId( OrbitId &orbitIdIn ); 00176 00178 ~OrbitId() throw (CfiError); 00179 00183 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00184 long timeRef, double time, 00185 long orbit0, long driftMode, double ascMlstDrift, 00186 double inclination, long irep, long icyc, double rlong, 00187 double ascMlst ) throw (CfiError); 00188 00190 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00191 long timeRef, double time, 00192 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00193 00195 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00196 long timeRef, double time, 00197 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00198 00200 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00201 long timeRef, long orbitFileMode, 00202 const vector<string> &inputFiles, long timeInitMode, 00203 double time0, double time1, 00204 long orbit0, long orbit1) throw (CfiError); 00205 00207 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00208 long timeRef, double time, 00209 double pos[3], double vel[3], long absOrbit, 00210 const PropagPreciseConf &preciseConf) throw (CfiError); 00211 00213 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00214 long timeRef, long orbitFileMode, 00215 const vector<string> &inputFiles, long timeInitMode, 00216 double time0, double time1, 00217 long orbit0, long orbit1, 00218 const PropagPreciseConf &preciseConf ) throw (CfiError); 00219 00222 void init( const SatId &satId, 00223 const ModelId &modelId, 00224 const TimeCorrelation &timeCor, 00225 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00226 00228 void change( OrbitChangeData changeData) throw (CfiError); // Added for AN-527 00229 00231 SatId satId() const; 00232 00234 vector<OsvRec> getOsv() const; 00235 00237 void setOsv( const vector<OsvRec> &osvRecList ); 00238 00240 vector<ANXExtra> getAnx() const; 00241 00243 void setAnx( const vector<ANXExtra> &anxList ); 00244 00246 vector<OsfRecords> getOsf() const; 00247 00249 void setOsf( const vector<OsfRecords> &osvRecList ); 00250 00252 ValidityTime getValTime() const; 00253 00255 void setValTime( const ValidityTime &valTime ); 00256 00258 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00259 00261 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00262 00264 void setGeoOrbitInfo( const GeoOrbitInfo &geoOrbitInfo ) throw (CfiError); // Added for AN-353 00265 00267 GeoOrbitInfo getGeoOrbitInfo() throw (CfiError); // Added for AN-353 00268 00270 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00271 00280 void orbitInfoConfigure( long item, long option ) const throw (CfiError); // AN-523 00281 00283 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00284 00286 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00287 00289 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00290 00294 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00295 00299 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00300 00307 StateVector positionOnOrbitToTime( long abs_orbit_number, long angle_type, 00308 double angle, double angle_rate, double angle_rate_rate, 00309 long deriv, long time_ref) const throw (CfiError); 00310 00319 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00320 long orbit0, long orbit1 ) throw (CfiError); 00321 00323 void operator=( const OrbitId &orbitIdIn ); 00324 00325 protected: 00326 00328 OrbitId(); 00329 00331 GenericId* getId(); // this is the xo_orbit_id variable 00332 00334 void eraseOrbit() throw (CfiError); 00335 00336 private: 00337 00339 void dataFileInit(const SatId &satId, 00340 const ModelId &modelId, 00341 const TimeCorrelation &timeCor, 00342 long timeRef, 00343 long orbitFileMode, 00344 void *fileData, 00345 long timeInitMode, 00346 double time0, double time1, 00347 long orbit0, long orbit1) throw (CfiError); 00348 00349 TimeCorrelation timeId; 00350 ModelId modelId; 00351 }; 00352 00353 } // closing namespace 00354 00355 #endif