Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.6 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: OrbitId.h,v 1.24 2013-09-18 07:44:00 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 SwathStar; 00040 friend class OrbitExtra; 00041 00042 public: 00043 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 00056 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00057 long timeRef, double time, 00058 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00059 00061 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00062 long timeRef, double time, 00063 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00064 00066 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00067 long timeRef, long orbitFileMode, 00068 const vector<string> &inputFiles, long timeInitMode, 00069 double time0, double time1, 00070 long orbit0, long orbit1) throw (CfiError); 00071 00073 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00074 long timeRef, double time, 00075 double pos[3], double vel[3], long absOrbit, 00076 const PropagPreciseConf &preciseConf ) throw (CfiError); 00077 00079 OrbitId( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00080 long timeRef, long orbitFileMode, 00081 const vector<string> &inputFiles, long timeInitMode, 00082 double time0, double time1, 00083 long orbit0, long orbit1, 00084 const PropagPreciseConf &preciseConf ) throw (CfiError); 00085 00087 OrbitId( const SatId &satId, 00088 const ModelId &modelId, 00089 const TimeCorrelation &timeCor, 00090 long timeRef, 00091 long orbitFileMode, 00092 vector<OsfFile> &osfData, 00093 long timeInitMode, 00094 double time0, double time1, 00095 long orbit0, long orbit1) throw (CfiError); 00097 OrbitId( const SatId &satId, 00098 const ModelId &modelId, 00099 const TimeCorrelation &timeCor, 00100 long timeRef, 00101 long orbitFileMode, 00102 vector<OrbitFile> &osvData, 00103 long timeInitMode, 00104 double time0, double time1, 00105 long orbit0, long orbit1) throw (CfiError); 00107 OrbitId( const SatId &satId, 00108 const ModelId &modelId, 00109 const TimeCorrelation &timeCor, 00110 long timeRef, 00111 long orbitFileMode, 00112 vector<DorisFile> &dorisData, 00113 long timeInitMode, 00114 double time0, double time1, 00115 long orbit0, long orbit1) throw (CfiError); 00116 00119 OrbitId( const SatId &satId, 00120 const ModelId &modelId, 00121 const TimeCorrelation &timeCor, 00122 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00123 00125 OrbitId( OrbitId &orbitIdIn ); 00126 00128 ~OrbitId() throw (CfiError); 00129 00133 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00134 long timeRef, double time, 00135 long orbit0, long driftMode, double ascMlstDrift, 00136 double inclination, long irep, long icyc, double rlong, 00137 double ascMlst ) throw (CfiError); 00138 00140 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00141 long timeRef, double time, 00142 long orbit0, const RefOrbitInfo &refOrbitInfo ) throw (CfiError); 00143 00145 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00146 long timeRef, double time, 00147 double pos[3], double vel[3], long absOrbit ) throw (CfiError); 00148 00150 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00151 long timeRef, long orbitFileMode, 00152 const vector<string> &inputFiles, long timeInitMode, 00153 double time0, double time1, 00154 long orbit0, long orbit1) throw (CfiError); 00155 00157 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00158 long timeRef, double time, 00159 double pos[3], double vel[3], long absOrbit, 00160 const PropagPreciseConf &preciseConf) throw (CfiError); 00161 00163 void init( const SatId &satId, const ModelId &modelId, const TimeCorrelation &timeCor, 00164 long timeRef, long orbitFileMode, 00165 const vector<string> &inputFiles, long timeInitMode, 00166 double time0, double time1, 00167 long orbit0, long orbit1, 00168 const PropagPreciseConf &preciseConf ) throw (CfiError); 00169 00172 void init( const SatId &satId, 00173 const ModelId &modelId, 00174 const TimeCorrelation &timeCor, 00175 const GeoOrbitInitData &geoOrbitInit) throw (CfiError); // Added for AN-353 00176 00178 SatId satId() const; 00179 00181 vector<OsvRec> getOsv() const; 00182 00184 void setOsv( const vector<OsvRec> &osvRecList ); 00185 00187 vector<ANXExtra> getAnx() const; 00188 00190 void setAnx( const vector<ANXExtra> &anxList ); 00191 00193 vector<OsfRecords> getOsf() const; 00194 00196 void setOsf( const vector<OsfRecords> &osvRecList ); 00197 00199 ValidityTime getValTime() const; 00200 00202 void setValTime( const ValidityTime &valTime ); 00203 00205 PropagPreciseConf getPrecisePropagConfig() const throw (CfiError); 00206 00208 void setPrecisePropagConfig( const PropagPreciseConf &preciseConf ); 00209 00211 void setGeoOrbitInfo( const GeoOrbitInfo &geoOrbitInfo ) throw (CfiError); // Added for AN-353 00212 00214 GeoOrbitInfo getGeoOrbitInfo() throw (CfiError); // Added for AN-353 00215 00217 OrbitalInfo getOrbitInfo( long absoluteOrbit ) const throw (CfiError); 00218 00220 OrbitInfo getOrbitNumbersFromRel( long relOrbit, long cycle ) const throw (CfiError); 00221 00223 OrbitInfo getOrbitNumbersFromPhase( long phase ) const throw (CfiError); 00224 00226 OrbitInfo getOrbitNumbersFromAbs( long absOrbit ) const throw (CfiError); 00227 00231 StateVector osvCompute( long mode, long timeRef, double time) const throw (CfiError); 00232 00236 StateVectorExtraInfo osvComputeExtra( long extraChoice ) const throw (CfiError); 00237 00244 StateVector positionOnOrbitToTime( long abs_orbit_number, long angle_type, 00245 double angle, double angle_rate, double angle_rate_rate, 00246 long deriv, long time_ref) const throw (CfiError); 00247 00256 TleRec osvToTle( long timeMode, long timeRef, double time0, double time1, 00257 long orbit0, long orbit1 ) throw (CfiError); 00258 00260 void operator=( const OrbitId &orbitIdIn ); 00261 00262 protected: 00263 00265 OrbitId(); 00266 00268 GenericId* getId(); // this is the xo_orbit_id variable 00269 00271 void eraseOrbit() throw (CfiError); 00272 00273 private: 00274 00276 void dataFileInit(const SatId &satId, 00277 const ModelId &modelId, 00278 const TimeCorrelation &timeCor, 00279 long timeRef, 00280 long orbitFileMode, 00281 void *fileData, 00282 long timeInitMode, 00283 double time0, double time1, 00284 long orbit0, long orbit1) throw (CfiError); 00285 00286 TimeCorrelation timeId; 00287 ModelId modelId; 00288 }; 00289 00290 } // closing namespace 00291 00292 #endif