Earth Observation Mission CFI Software Visibility Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.18 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 <vector> 00014 #include <string> 00015 00016 #include "VisibilityData.h" 00017 #include "CfiError.h" 00018 #include "OrbitId.h" 00019 #include "AtmosId.h" 00020 #include "ZoneRec.h" 00021 #include "VisibilityList.h" 00022 #include "Geodetic.h" 00023 #include "StfFile.h" 00024 #include "SdfFile.h" 00025 #include "StationRec.h" 00026 #include "SatNomTransId.h" 00027 #include "SatTransId.h" 00028 #include "InstrTransId.h" 00029 #include "AttitudeDef.h" 00030 #include "SwathId.h" 00031 00032 //--NAMESPACES-------------------------------------------------------- 00033 00034 namespace EECFI 00035 { 00036 00040 class XV_DECL Swath: public CfiClass 00041 { 00042 public: 00043 00045 Swath(); 00046 00048 Swath( const OrbitId &orbitId, const std::string &swathFileName ) ; 00049 00051 Swath( const OrbitId &orbitId, long orbitNum, const std::string &swathFileName ) ; 00052 00054 ~Swath() NOEXCEPT; 00055 00057 void set( const OrbitId &orbitId, const std::string &swathFileName ) ; 00058 00060 void set( const OrbitId &orbitId, long orbitNum, const std::string &swathFileName ) ; 00061 00063 void set( const AtmosId &atmosId ) ; 00064 00066 VisibilityList zoneVisTime( long startOrbit, long stopOrbit, 00067 const std::string &zoneId, const std::string &zoneDBFile, 00068 long projection, 00069 double minDuration ) const; 00070 00072 VisibilityList zoneVisTime( long startOrbit, long stopOrbit, 00073 long projection, const ZoneRec &zoneRec, 00074 double minDuration ) const; 00075 00077 VisibilityList zoneVisTime( long startOrbit, long stopOrbit, 00078 long projection, const StfFile &stfFile, 00079 const ZoneRec &zoneRec, 00080 double minDuration ) const; 00081 00083 VisibilityList stationVisTime( long startOrbit,long stopOrbit, 00084 const std::string &staId, const std::string &staDBFile, 00085 long mask, double aosElevation, double losElevation, 00086 double minDuration ) const; 00087 00089 VisibilityList stationVisTime( long startOrbit,long stopOrbit, 00090 const StfFile &stfFile, const StationRec &staRec, 00091 long mask, double aosElevation, double losElevation, 00092 double minDuration ) const; 00093 00096 VisibilityList scVisTime( const SatNomTransId &satNomTransId1, 00097 const SatTransId &satTransId1, const InstrTransId &instrTransId1, 00098 long startOrbit,long stopOrbit, 00099 const OrbitId &orbitId2, const SatNomTransId &satNomTransId2, 00100 const SatTransId &satTransId2, const InstrTransId &instrTransId2, 00101 LinkData &linkData, double minDuration ) const; // AN-430 00102 00104 void setScVisTimeStep(double timeStep) ; // AN-628 00105 00106 00109 VisibilityList celestialBodyVisTime( const SatNomTransId &satNomTransId1, 00110 const SatTransId &satTransId1, const InstrTransId &instrTransId1, 00111 long startOrbit,long stopOrbit, 00112 long celestialBody_type, // XVTypeCelestialBodyEnum 00113 const LinkData &linkData, double minDuration ) const; // AN-677 00114 00115 00117 VisibilityList multiZonesVisTime( long startOrbit, long stopOrbit, 00118 const std::vector<std::string> &zoneId, const std::string &zoneDBFile, 00119 const std::vector<long> &projection, const std::vector<ZoneRec> &zoneRec, 00120 double minDuration, bool extraInfoFlag ) const; 00121 00123 VisibilityList multiStationsVisTime( long startOrbit,long stopOrbit, 00124 const std::vector<std::string> &staId, const std::string &staDBFile, 00125 const std::vector<double> &aosElevation, const std::vector<double> &losElevation, 00126 const std::vector<long> &mask, double minDuration, bool extraInfoFlag ) const; 00127 00129 std::vector<VisibilityList> mapping( long startOrbit, long stopOrbit, 00130 const std::string &zoneId, const std::string &zoneDBFile, 00131 long projection ) const; 00132 00134 std::vector<VisibilityList> mapping( long startOrbit, long stopOrbit, 00135 long projection, const ZoneRec &zoneRec ) const; 00136 00138 std::string genSwath( long requestedOrbit, const std::string &dirName, const std::string &swathFile, 00139 const std::string &fileClass, long versionNumber, const std::string &fhSystem ) const; 00140 00142 StfFile* genSwath( long requestedOrbit, const SdfFile &sdfFile ) const; 00143 00145 std::vector<Geodetic> getPos( const StfFile &stfFile, const ANXTime &anxTime ) const; 00146 00148 std::string genScf( const std::string &instrument, const VisibilityList &visList, const std::vector<ScfAppear> &scfApp, 00149 const std::string &dirName, const std::string &scfFileName, const std::string &fileClass, long versionNumber, 00150 const std::string &fhSystem ) const; 00151 00153 VisibilityList zoneVisTimeCompute(AttitudeDef &attDef, SwathId &swathId, 00154 ZoneInfoList &zoneInfoList, 00155 VisTimeInterval &searchInterval) const; // AN-468 00156 00158 VisibilityList stationVisTimeCompute(AttitudeDef &attDef, SwathId &swathId, 00159 StationInfoList &staInfoList, 00160 VisTimeInterval &searchInterval) const; // AN-468 00161 00163 std::vector<Geodetic> getPosCompute( SwathId &swathId, VisTime &posTime ) const; // AN-468 00164 00166 std::vector<VisibilityList> mappingCompute( SwathId &swathId, ZoneInfoList &zoneInfoList, 00167 VisTimeInterval &searchInterval) const; 00168 00169 protected: 00170 00171 private: 00172 00173 OrbitId orbitId; 00174 AtmosId atmosId; 00175 long swathFlag ; 00176 std::string swathFileName; 00177 00179 VisibilityList zoneVisTime( long startOrbit, long stopOrbit, 00180 long zoneFlag, 00181 const std::string &zoneId, const std::string &zoneDBFile, 00182 long projection, const ZoneRec &zoneRec, 00183 double minDuration ) const; 00184 00186 std::vector< VisibilityList> mapping( long startOrbit, long stopOrbit, 00187 bool zoneFlag, 00188 const std::string &zoneId, const std::string &zoneDBFile, 00189 long projection, const ZoneRec &zoneRec ) const; 00190 }; 00191 00192 } // closing namespace 00193 00194 #endif