Earth Observation Mission CFI Software Visibility Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.26 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: Swath.h,v 1.13 2014-02-20 20:02:37 cavm Exp $ 00007 //-------------------------------------------------------------------- 00008 00009 #ifndef SWATH_H 00010 #define SWATH_H 00011 00012 //--INCLUDE----------------------------------------------------------- 00013 #include <AtmosId.h> 00014 #include <AttitudeDef.h> 00015 #include <CfiError.h> 00016 #include <Geodetic.h> 00017 #include <InstrTransId.h> 00018 #include <OrbitId.h> 00019 #include <SatNomTransId.h> 00020 #include <SatTransId.h> 00021 #include <SdfFile.h> 00022 #include <StationRec.h> 00023 #include <StfFile.h> 00024 #include <SwathId.h> 00025 #include <TimelineInterval.h> 00026 #include <VisibilityData.h> 00027 #include <VisibilityList.h> 00028 #include <ZoneRec.h> 00029 #include <string> 00030 #include <vector> 00031 00032 //--NAMESPACES-------------------------------------------------------- 00033 00034 namespace EECFI 00035 { 00039 class XV_DECL Swath : public CfiClass 00040 { 00041 public: 00043 Swath(); 00044 00046 Swath(const OrbitId& orbitId, const std::string& swathFileName); 00047 00049 Swath(const OrbitId& orbitId, long orbitNum, const std::string& swathFileName); 00050 00052 void set(const OrbitId& orbitId, const std::string& swathFileName); 00053 00055 void set(const OrbitId& orbitId, long orbitNum, const std::string& swathFileName); 00056 00058 void set(const AtmosId& atmosId); 00059 00061 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, const std::string& zoneId, const std::string& zoneDBFile, long projection, double minDuration) const; 00062 00064 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, long projection, const ZoneRec& zoneRec, double minDuration) const; 00065 00067 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, long projection, const StfFile& stfFile, const ZoneRec& zoneRec, double minDuration) const; 00068 00070 VisibilityList stationVisTime(long startOrbit, long stopOrbit, const std::string& staId, const std::string& staDBFile, long mask, double aosElevation, double losElevation, double minDuration) const; 00071 00073 VisibilityList stationVisTime(long startOrbit, long stopOrbit, const StfFile& stfFile, const StationRec& staRec, long mask, double aosElevation, double losElevation, double minDuration) const; 00074 00077 VisibilityList scVisTime(const SatNomTransId& satNomTransId1, 00078 const SatTransId& satTransId1, 00079 const InstrTransId& instrTransId1, 00080 long startOrbit, 00081 long stopOrbit, 00082 const OrbitId& orbitId2, 00083 const SatNomTransId& satNomTransId2, 00084 const SatTransId& satTransId2, 00085 const InstrTransId& instrTransId2, 00086 LinkData& linkData, 00087 double minDuration) const; // AN-430 00088 00090 void setScVisTimeStep(double timeStep); // AN-628 00091 00094 VisibilityList celestialBodyVisTime(const SatNomTransId& satNomTransId1, 00095 const SatTransId& satTransId1, 00096 const InstrTransId& instrTransId1, 00097 long startOrbit, 00098 long stopOrbit, 00099 long celestialBody_type, // XVTypeCelestialBodyEnum 00100 const LinkData& linkData, 00101 double minDuration) const; // AN-677 00102 00104 VisibilityList multiZonesVisTime(long startOrbit, long stopOrbit, const std::vector<std::string>& zoneId, const std::string& zoneDBFile, const std::vector<long>& projection, const std::vector<ZoneRec>& zoneRec, double minDuration, bool extraInfoFlag) const; 00105 00107 VisibilityList multiStationsVisTime(long startOrbit, long stopOrbit, const std::vector<std::string>& staId, const std::string& staDBFile, const std::vector<double>& aosElevation, const std::vector<double>& losElevation, const std::vector<long>& mask, double minDuration, bool extraInfoFlag) const; 00108 00110 std::vector<VisibilityList> mapping(long startOrbit, long stopOrbit, const std::string& zoneId, const std::string& zoneDBFile, long projection) const; 00111 00113 std::vector<VisibilityList> mapping(long startOrbit, long stopOrbit, long projection, const ZoneRec& zoneRec) const; 00114 00116 std::string genSwath(long requestedOrbit, const std::string& dirName, const std::string& swathFile, const std::string& fileClass, long versionNumber, const std::string& fhSystem) const; 00117 00119 StfFile* genSwath(long requestedOrbit, const SdfFile& sdfFile) const; 00120 00122 std::vector<Geodetic> getPos(const StfFile& stfFile, const ANXTime& anxTime) const; 00123 00125 std::string genScf(const std::string& instrument, const std::vector<TimelineInterval>& segments, const std::string& dirName, const std::string& scfFileName, const std::string& fileClass, long versionNumber, const std::string& fhSystem) const; 00126 00128 VisibilityList zoneVisTimeCompute(AttitudeDef& attDef, SwathId& swathId, ZoneInfoList& zoneInfoList, 00129 VisTimeInterval& searchInterval) const; // AN-468 00130 00132 VisibilityList stationVisTimeCompute(AttitudeDef& attDef, SwathId& swathId, StationInfoList& staInfoList, 00133 VisTimeInterval& searchInterval) const; // AN-468 00134 00136 std::vector<Geodetic> getPosCompute(SwathId& swathId, VisTime& posTime) const; // AN-468 00137 00139 std::vector<VisibilityList> mappingCompute(SwathId& swathId, ZoneInfoList& zoneInfoList, VisTimeInterval& searchInterval) const; 00140 00141 protected: 00142 private: 00143 OrbitId orbitId; 00144 AtmosId atmosId; 00145 long swathFlag; 00146 std::string swathFileName; 00147 00149 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, long zoneFlag, const std::string& zoneId, const std::string& zoneDBFile, long projection, const ZoneRec& zoneRec, double minDuration) const; 00150 00152 std::vector<VisibilityList> mapping(long startOrbit, long stopOrbit, bool zoneFlag, const std::string& zoneId, const std::string& zoneDBFile, long projection, const ZoneRec& zoneRec) const; 00153 }; 00154 00155 } // namespace EECFI 00156 00157 #endif