Earth Observation Mission CFI Software DataHandling Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.18 00003 //-------------------------------------------------------- 00004 00005 00006 #ifndef _ORBITFILEDIAGNOSTICS_H 00007 #define _ORBITFILEDIAGNOSTICS_H 00008 00009 //-INCLUDE--------------------------------------------- 00010 #include "EEFile.h" 00011 #include "CfiError.h" 00012 #include "SP3File.h" 00013 #include "OemFile.h" 00014 #include "DorisFile.h" 00015 #include "OsvRec.h" 00016 #include "OsfRec.h" 00017 #include "OrbitFile.h" 00018 00019 #include <string> 00020 #include <vector> 00021 00022 //-NAMESPACES------------------------------------------ 00023 00024 namespace EECFI 00025 { 00029 class XD_DECL OrbitFileDiagnosticsSettings 00030 { 00031 public: 00032 double gapThreshold; 00033 double duplicatedOsvThreshold; 00034 double timeStep; 00035 double timeStepThreshold; 00036 long timeRef; 00037 00038 00040 OrbitFileDiagnosticsSettings(); 00041 00043 ~OrbitFileDiagnosticsSettings() NOEXCEPT; 00044 00045 protected: 00046 00047 private: 00048 00049 };//class OrbitFileDiagnosticsSettings 00050 00054 class XD_DECL OrbitFileDiagnosticsReport 00055 { 00056 public: 00057 long osvListId; 00058 long numOsv; 00059 double totalTime; 00060 double timeFirstOsv; 00061 double timeLastOsv; 00062 long timeRef; 00063 std::vector<double> timeStartGap; 00064 std::vector<double> timeStopGap; 00065 std::vector<long> indexGap; 00066 long numGaps; 00067 std::vector<double> timeGoingBackOsv; 00068 std::vector<long> indexGoingBackOsv; 00069 long numGoingBackOsv; 00070 std::vector<double> timeDuplicatedOsv; 00071 std::vector<long> indexDuplicatedOsv; 00072 long numDuplicatedOsv; 00073 std::vector<double> timeInconsistentOrbitNumber; 00074 std::vector<long> indexInconsistentOrbitNumber; 00075 long numInconsistentOrbitNumber; 00076 std::vector<double> timeNonEquallySpacedOsv; 00077 std::vector<long> indexNonEquallySpacedOsv; 00078 long numNonEquallySpacedOsv; 00079 00081 OrbitFileDiagnosticsReport(); 00082 00084 ~OrbitFileDiagnosticsReport() NOEXCEPT; 00085 00086 friend class OrbitFileDiagnostics; 00087 00088 protected: 00090 explicit OrbitFileDiagnosticsReport(const void *diagnostics_report); 00091 00092 private: 00093 00094 };//class OrbitFileDiagnosticsReport 00095 00099 class XD_DECL OrbitFileDiagnostics:CfiClass 00100 { 00101 public: 00102 OrbitFileDiagnosticsSettings diagnosticsSettings; 00103 std::vector<OrbitFileDiagnosticsReport> diagnosticsReport; 00104 00105 00107 OrbitFileDiagnostics(); 00108 00110 ~OrbitFileDiagnostics() NOEXCEPT; 00111 00113 void computeDiagnostics(const std::string &fileNam) ; 00114 00116 void computeDiagnostics(const OrbitFile &file) ; 00117 00119 void computeDiagnostics(const OemFile &file) ; 00120 00122 void computeDiagnostics(const SP3File &file) ; 00123 00124 protected: 00125 00126 private: 00127 00128 };//class OrbitFileDiagnostics 00129 }//namespace EECFI 00130 00131 #endif