![]() |
Earth Observation Mission CFI Software Orbit Software User Manual |
![]() |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.7 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 00026 //--NAMESPACES-------------------------------------------------------- 00027 using namespace std; 00028 00029 namespace EECFI 00030 { 00031 00035 class OrbitId: public CfiId 00036 { 00037 friend class ANXTime; 00038 friend class RelANXTime; 00039 friend class Swath; 00040 friend class SwathStar; 00041 friend class OrbitExtra; 00042 friend class SwathId; // AN-505 00043 00044 public: 00045 00050 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00051 long timeRef, double time, 00052 long orbit0, long driftMode, double ascMlstDrift, 00053 double inclination, long irep, long icyc, double rlong, 00054 double ascMlst ) throw (CfiError); 00055 00058 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00059 long timeRef, double time, 00060 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00061 00063 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00064 long timeRef, double time, 00065 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00066 00068 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00069 long timeRef, long orbitFileMode, 00070 const vector<string> &inputFiles, long timeInitMode, 00071 double time0, double time1, 00072 long orbit0, long orbit1) throw (CfiError); 00073 00075 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00076 long timeRef, double time, 00077 double pos[3], double vel[3], long absOrbit, 00078 const PropagPreciseConf &preciseConf ) throw (CfiError); 00079 00081 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00082 long timeRef, long orbitFileMode, 00083 const vector<string> &inputFiles, long timeInitMode, 00084 double time0, double time1, 00085 long orbit0, long orbit1, 00086 const PropagPreciseConf &preciseConf ) throw (CfiError); 00087 00089 OrbitId( const SatId &satId, 00090 const ModelId &modelId, 00091 const TimeCorrelation &timeCor, 00092 long timeRef, 00093 long orbitFileMode, 00094 vector<OsfFile> &osfData, 00095 long timeInitMode, 00096 double time0, double time1, 00097 long orbit0, long orbit1) throw (CfiError); 00099 OrbitId( const SatId &satId, 00100 const ModelId &modelId, 00101 const TimeCorrelation &timeCor, 00102 long timeRef, 00103 long orbitFileMode, 00104 vector<OrbitFile> &osvData, 00105 long timeInitMode, 00106 double time0, double time1, 00107 long orbit0, long orbit1) throw (CfiError); 00111 OrbitId( const SatId &satId, 00112 const ModelId &modelId, 00113 const TimeCorrelation &timeCor, 00114 long timeRef, 00115 long orbitFileMode, 00116 vector<OrbitFile> &osvData, 00117 OrbitChangeData orbitChangeData, 00118 long timeInitMode, 00119 double time0, double time1, 00120 long orbit0, long orbit1) throw (CfiError); // ANR-527 00122 OrbitId( const SatId &satId, 00123 const ModelId &modelId, 00124 const TimeCorrelation &timeCor, 00125 long timeRef, 00126 long orbitFileMode, 00127 vector<DorisFile> &dorisData, 00128 long timeInitMode, 00129 double time0, double time1, 00130 long orbit0, long orbit1) throw (CfiError); 00134 OrbitId( const SatId &satId, 00135 const ModelId &modelId, 00136 const TimeCorrelation &timeCor, 00137 long timeRef, 00138 long orbitFileMode, 00139 vector<DorisFile> &dorisData, 00140 OrbitChangeData orbitChangeData, 00141 long timeInitMode, 00142 double time0, double time1, 00143 long orbit0, long orbit1) throw (CfiError); // ANR-527 00144 00146 OrbitId( const SatId &satId, 00147 const ModelId &modelId, 00148 const TimeCorrelation &timeCor, 00149 long timeRef, 00150 long orbitFileMode, 00151 vector<SP3File> &sp3Data, 00152 long timeInitMode, 00153 double time0, double time1) throw (CfiError); // AN-550 00154 00157 OrbitId( const SatId &satId, 00158 const ModelId &modelId, 00159 const TimeCorrelation &timeCor, 00160 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00161 00163 OrbitId( OrbitId &orbitIdIn ); 00164 00166 ~OrbitId() throw (CfiError); 00167 00171 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00172 long timeRef, double time, 00173 long orbit0, long driftMode, double ascMlstDrift, 00174 double inclination, long irep, long icyc, double rlong, 00175 double ascMlst ) throw (CfiError); 00176 00178 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00179 long timeRef, double time, 00180 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00181 00183 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00184 long timeRef, double time, 00185 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00186 00188 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00189 long timeRef, long orbitFileMode, 00190 const vector<string> &inputFiles, long timeInitMode, 00191 double time0, double time1, 00192 long orbit0, long orbit1) 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, 00198 const PropagPreciseConf &preciseConf) throw (CfiError); 00199 00201 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00202 long timeRef, long orbitFileMode, 00203 const vector<string> &inputFiles, long timeInitMode, 00204 double time0, double time1, 00205 long orbit0, long orbit1, 00206 const PropagPreciseConf &preciseConf ) throw (CfiError); 00207 00210 void init( const SatId &satId, 00211 const ModelId &modelId, 00212 const TimeCorrelation &timeCor, 00213 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00214 00216 void change( OrbitChangeData changeData) throw (CfiError); // Added for AN-527 00217 00219 SatId satId() const; 00220 00222 vector<OsvRec> getOsv() const; 00223 00225 void setOsv( const vector<OsvRec> &osvRecList ); 00226 00228 vector<ANXExtra> getAnx() const; 00229 00231 void setAnx( const vector<ANXExtra> &anxList ); 00232 00234 vector<OsfRecords> getOsf() const; 00235 00237 void setOsf( const vector<OsfRecords> &osvRecList ); 00238 00240 ValidityTime getValTime() const; 00241 00243 void setValTime( const ValidityTime &valTime ); 00244 00246 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00247 00249 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00250 00252 void setGeoOrbitInfo( const GeoOrbitInfo &geoOrbitInfo ) throw (CfiError); // Added for AN-353 00253 00255 GeoOrbitInfo getGeoOrbitInfo() throw (CfiError); // Added for AN-353 00256 00258 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00259 00268 void orbitInfoConfigure( long item, long option ) const throw (CfiError); // AN-523 00269 00271 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00272 00274 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00275 00277 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00278 00282 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00283 00287 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00288 00295 StateVector positionOnOrbitToTime( long abs_orbit_number, long angle_type, 00296 double angle, double angle_rate, double angle_rate_rate, 00297 long deriv, long time_ref) const throw (CfiError); 00298 00307 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00308 long orbit0, long orbit1 ) throw (CfiError); 00309 00311 void operator=( const OrbitId &orbitIdIn ); 00312 00313 protected: 00314 00316 OrbitId(); 00317 00319 GenericId* getId(); // this is the xo_orbit_id variable 00320 00322 void eraseOrbit() throw (CfiError); 00323 00324 private: 00325 00327 void dataFileInit(const SatId &satId, 00328 const ModelId &modelId, 00329 const TimeCorrelation &timeCor, 00330 long timeRef, 00331 long orbitFileMode, 00332 void *fileData, 00333 long timeInitMode, 00334 double time0, double time1, 00335 long orbit0, long orbit1) throw (CfiError); 00336 00337 TimeCorrelation timeId; 00338 ModelId modelId; 00339 }; 00340 00341 } // closing namespace 00342 00343 #endif