Earth Observation Mission CFI Software DataHandling Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.26 00003 //-------------------------------------------------------- 00004 00005 #ifndef ORBITFILEDIAGNOSTICS_H 00006 #define ORBITFILEDIAGNOSTICS_H 00007 00008 //-INCLUDE--------------------------------------------- 00009 #include <CfiError.h> 00010 #include <DorisFile.h> 00011 #include <EEFile.h> 00012 #include <OemFile.h> 00013 #include <OrbitFile.h> 00014 #include <OsfRec.h> 00015 #include <OsvRec.h> 00016 #include <SP3File.h> 00017 #include <string> 00018 #include <vector> 00019 00020 //-NAMESPACES------------------------------------------ 00021 00022 namespace EECFI 00023 { 00027 class XD_DECL OrbitFileDiagnosticsSettings 00028 { 00029 public: 00030 double gapThreshold; 00031 double duplicatedOsvThreshold; 00032 double timeStep; 00033 double timeStepThreshold; 00034 long timeRef; 00035 00036 }; //class OrbitFileDiagnosticsSettings 00037 00041 class XD_DECL OrbitFileDiagnosticsReport 00042 { 00043 public: 00044 long osvListId; 00045 long numOsv; 00046 double totalTime; 00047 double timeFirstOsv; 00048 double timeLastOsv; 00049 long timeRef; 00050 std::vector<double> timeStartGap; 00051 std::vector<double> timeStopGap; 00052 std::vector<long> indexGap; 00053 long numGaps; 00054 std::vector<double> timeGoingBackOsv; 00055 std::vector<long> indexGoingBackOsv; 00056 long numGoingBackOsv; 00057 std::vector<double> timeDuplicatedOsv; 00058 std::vector<long> indexDuplicatedOsv; 00059 long numDuplicatedOsv; 00060 std::vector<double> timeInconsistentOrbitNumber; 00061 std::vector<long> indexInconsistentOrbitNumber; 00062 long numInconsistentOrbitNumber; 00063 std::vector<double> timeNonEquallySpacedOsv; 00064 std::vector<long> indexNonEquallySpacedOsv; 00065 long numNonEquallySpacedOsv; 00066 00068 OrbitFileDiagnosticsReport(){}; 00069 00070 friend class OrbitFileDiagnostics; 00071 00072 protected: 00074 explicit OrbitFileDiagnosticsReport(const void* diagnostics_report); 00075 00076 }; //class OrbitFileDiagnosticsReport 00077 00081 class XD_DECL OrbitFileDiagnostics : CfiClass 00082 { 00083 public: 00084 OrbitFileDiagnosticsSettings diagnosticsSettings; 00085 std::vector<OrbitFileDiagnosticsReport> diagnosticsReport; 00086 00088 void computeDiagnostics(const std::string& fileNam); 00089 00091 void computeDiagnostics(const OrbitFile& file); 00092 00094 void computeDiagnostics(const OemFile& file); 00095 00097 void computeDiagnostics(const SP3File& file); 00098 00099 }; //class OrbitFileDiagnostics 00100 } //namespace EECFI 00101 00102 #endif