Earth Observation Mission CFI Software Visibility Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.21 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 ~Swath() NOEXCEPT; 00053 00055 void set(const OrbitId& orbitId, const std::string& swathFileName); 00056 00058 void set(const OrbitId& orbitId, long orbitNum, const std::string& swathFileName); 00059 00061 void set(const AtmosId& atmosId); 00062 00064 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, const std::string& zoneId, const std::string& zoneDBFile, long projection, double minDuration) const; 00065 00067 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, long projection, const ZoneRec& zoneRec, double minDuration) const; 00068 00070 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, long projection, const StfFile& stfFile, const ZoneRec& zoneRec, double minDuration) const; 00071 00073 VisibilityList stationVisTime(long startOrbit, long stopOrbit, const std::string& staId, const std::string& staDBFile, long mask, double aosElevation, double losElevation, double minDuration) const; 00074 00076 VisibilityList stationVisTime(long startOrbit, long stopOrbit, const StfFile& stfFile, const StationRec& staRec, long mask, double aosElevation, double losElevation, double minDuration) const; 00077 00080 VisibilityList scVisTime(const SatNomTransId& satNomTransId1, 00081 const SatTransId& satTransId1, 00082 const InstrTransId& instrTransId1, 00083 long startOrbit, 00084 long stopOrbit, 00085 const OrbitId& orbitId2, 00086 const SatNomTransId& satNomTransId2, 00087 const SatTransId& satTransId2, 00088 const InstrTransId& instrTransId2, 00089 LinkData& linkData, 00090 double minDuration) const; // AN-430 00091 00093 void setScVisTimeStep(double timeStep); // AN-628 00094 00097 VisibilityList celestialBodyVisTime(const SatNomTransId& satNomTransId1, 00098 const SatTransId& satTransId1, 00099 const InstrTransId& instrTransId1, 00100 long startOrbit, 00101 long stopOrbit, 00102 long celestialBody_type, // XVTypeCelestialBodyEnum 00103 const LinkData& linkData, 00104 double minDuration) const; // AN-677 00105 00107 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; 00108 00110 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; 00111 00113 std::vector<VisibilityList> mapping(long startOrbit, long stopOrbit, const std::string& zoneId, const std::string& zoneDBFile, long projection) const; 00114 00116 std::vector<VisibilityList> mapping(long startOrbit, long stopOrbit, long projection, const ZoneRec& zoneRec) const; 00117 00119 std::string genSwath(long requestedOrbit, const std::string& dirName, const std::string& swathFile, const std::string& fileClass, long versionNumber, const std::string& fhSystem) const; 00120 00122 StfFile* genSwath(long requestedOrbit, const SdfFile& sdfFile) const; 00123 00125 std::vector<Geodetic> getPos(const StfFile& stfFile, const ANXTime& anxTime) const; 00126 00128 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; 00129 00131 VisibilityList zoneVisTimeCompute(AttitudeDef& attDef, SwathId& swathId, ZoneInfoList& zoneInfoList, 00132 VisTimeInterval& searchInterval) const; // AN-468 00133 00135 VisibilityList stationVisTimeCompute(AttitudeDef& attDef, SwathId& swathId, StationInfoList& staInfoList, 00136 VisTimeInterval& searchInterval) const; // AN-468 00137 00139 std::vector<Geodetic> getPosCompute(SwathId& swathId, VisTime& posTime) const; // AN-468 00140 00142 std::vector<VisibilityList> mappingCompute(SwathId& swathId, ZoneInfoList& zoneInfoList, VisTimeInterval& searchInterval) const; 00143 00144 protected: 00145 private: 00146 OrbitId orbitId; 00147 AtmosId atmosId; 00148 long swathFlag; 00149 std::string swathFileName; 00150 00152 VisibilityList zoneVisTime(long startOrbit, long stopOrbit, long zoneFlag, const std::string& zoneId, const std::string& zoneDBFile, long projection, const ZoneRec& zoneRec, double minDuration) const; 00153 00155 std::vector<VisibilityList> mapping(long startOrbit, long stopOrbit, bool zoneFlag, const std::string& zoneId, const std::string& zoneDBFile, long projection, const ZoneRec& zoneRec) const; 00156 }; 00157 00158 } // namespace EECFI 00159 00160 #endif