Earth Observation Mission CFI Software Visibility Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.4 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: VisibilityData.h,v 1.14 2012/06/20 16:11:37 expcfi Exp $ 00007 //-------------------------------------------------------------------- 00008 00013 00014 #ifndef __EECFI_VISIBILITYDATA__ 00015 #define __EECFI_VISIBILITYDATA__ 00016 00017 //--INCLUDE----------------------------------------------------------- 00018 #include "DataHandlingData.h" 00019 #include "LibData.h" 00020 #include "OrbitData.h" 00021 #include "PointingData.h" 00022 #include "ANXTime.h" 00023 #include "StationRec.h" 00024 00025 //--NAMESPACES-------------------------------------------------------- 00026 using namespace std; 00027 00028 namespace EECFI 00029 { 00030 //------------------------------------------------------ 00031 // CONSTANT DATA 00032 //------------------------------------------------------ 00033 00034 //------------------------------------------------------ 00035 // DATA ENUMERATION 00036 // Enumeration values are defined in an equivalent way to the C library 00037 // except for the prefix that has been changed from XX_ to XXCFI_ 00038 //------------------------------------------------------ 00039 00041 typedef enum 00042 { 00043 XVCFI_ORBIT_ABS = 0, 00044 XVCFI_ORBIT_REL = 1 00045 } OrbitTypeEnum; 00046 00048 typedef enum 00049 { 00050 XVCFI_STF = 0, 00051 XVCFI_SDF = 1 00052 } SwathTypeEnum; 00053 00055 typedef enum 00056 { 00057 XVCFI_COMPLETE = 0, 00058 XVCFI_LEFT = 1, 00059 XVCFI_RIGHT = 2, 00060 XVCFI_BOTH = 3 00061 } CoverageEnum; 00062 00064 typedef enum 00065 { 00066 XVCFI_COMBINE = 0, 00067 XVCFI_AOS_LOS = 1, 00068 XVCFI_PHYSICAL = 2, 00069 XVCFI_FROM_FILE = 3 00070 } MaskEnum; 00071 00073 typedef enum 00074 { 00075 XVCFI_STAR_UNDEFINED = 0, 00076 XVCFI_STAR_UPPER = 1, 00077 XVCFI_STAR_LOWER = 2, 00078 XVCFI_STAR_LEFT = 3, 00079 XVCFI_STAR_RIGHT = 4 00080 } CoverageStarEnum; 00081 00083 typedef enum 00084 { 00085 XVCFI_ASCENDING = 0, 00086 XVCFI_DESDENDING = 1 00087 } TimeSegmentsOrbitDirectionEnum; 00088 00090 typedef enum 00091 { 00092 XVCFI_NO_VIS = -1, 00093 XVCFI_ZONE_VIS = 0, 00094 XVCFI_STATION_VIS = 1, 00095 XVCFI_MULTI_ZONES_VIS = 2, 00096 XVCFI_MULTI_STATIONS_VIS = 3, 00097 XVCFI_MAPPING_VIS = 4, 00098 XVCFI_SC_VIS = 5, 00099 XVCFI_STAR_VIS = 6 00100 } VisibilityTypeEnum; 00101 00103 typedef enum 00104 { 00105 XVCFI_SAT_DEFAULT = XLCFI_SAT_DEFAULT, 00106 XVCFI_SAT_DEFAULT1 = XLCFI_SAT_DEFAULT1, 00107 XVCFI_SAT_DEFAULT2 = XLCFI_SAT_DEFAULT2, 00108 XVCFI_SAT_DEFAULT3 = XLCFI_SAT_DEFAULT3, 00109 XVCFI_SAT_DEFAULT4 = XLCFI_SAT_DEFAULT4, 00110 XVCFI_SAT_DEFAULT5 = XLCFI_SAT_DEFAULT5, 00111 XVCFI_SAT_DEFAULT6 = XLCFI_SAT_DEFAULT6, 00112 XVCFI_SAT_DEFAULT7 = XLCFI_SAT_DEFAULT7, 00113 XVCFI_SAT_DEFAULT8 = XLCFI_SAT_DEFAULT8, 00114 XVCFI_SAT_DEFAULT9 = XLCFI_SAT_DEFAULT9, 00115 XVCFI_SAT_ERS1 = XLCFI_SAT_ERS1, 00116 XVCFI_SAT_ERS2 = XLCFI_SAT_ERS2, 00117 XVCFI_SAT_ENVISAT = XLCFI_SAT_ENVISAT, 00118 XVCFI_SAT_METOP1 = XLCFI_SAT_METOP1, 00119 XVCFI_SAT_METOP2 = XLCFI_SAT_METOP2, 00120 XVCFI_SAT_METOP3 = XLCFI_SAT_METOP3, 00121 XVCFI_SAT_CRYOSAT = XLCFI_SAT_CRYOSAT, 00122 XVCFI_SAT_ADM = XLCFI_SAT_ADM, 00123 XVCFI_SAT_GOCE = XLCFI_SAT_GOCE, 00124 XVCFI_SAT_SMOS = XLCFI_SAT_SMOS, 00125 XVCFI_SAT_TERRASAR = XLCFI_SAT_TERRASAR, 00126 XVCFI_SAT_EARTHCARE = XLCFI_SAT_EARTHCARE, 00127 XVCFI_SAT_SWARM_A = XLCFI_SAT_SWARM_A, 00128 XVCFI_SAT_SWARM_B = XLCFI_SAT_SWARM_B, 00129 XVCFI_SAT_SWARM_C = XLCFI_SAT_SWARM_C, 00130 XVCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A, 00131 XVCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B, 00132 XVCFI_SAT_SENTINEL_2 = XLCFI_SAT_SENTINEL_2, 00133 XVCFI_SAT_SENTINEL_3 = XLCFI_SAT_SENTINEL_3, 00134 XVCFI_SAT_SEOSAT = XLCFI_SAT_SEOSAT, 00135 XVCFI_SAT_SENTINEL_1C = XLCFI_SAT_SENTINEL_1C, 00136 XVCFI_SAT_SENTINEL_2A = XLCFI_SAT_SENTINEL_2A, 00137 XVCFI_SAT_SENTINEL_2B = XLCFI_SAT_SENTINEL_2B, 00138 XVCFI_SAT_SENTINEL_2C = XLCFI_SAT_SENTINEL_2C, 00139 XVCFI_SAT_SENTINEL_3A = XLCFI_SAT_SENTINEL_3A, 00140 XVCFI_SAT_SENTINEL_3B = XLCFI_SAT_SENTINEL_3B, 00141 XVCFI_SAT_SENTINEL_3C = XLCFI_SAT_SENTINEL_3C, 00142 XVCFI_SAT_GENERIC = XLCFI_SAT_GENERIC, 00143 // AN-353 00144 XVCFI_SAT_GENERIC_GEO = XLCFI_SAT_GENERIC_GEO, 00145 XVCFI_SAT_MTG = XLCFI_SAT_MTG 00146 // END AN-353 00147 00148 } SatIdVisibilityEnum; 00149 00150 //------------------------------------------------------ 00151 // DATA STRUCTURES 00152 //------------------------------------------------------ 00154 class VisExtraInfo 00155 { 00156 // No atributes 00157 }; 00158 00160 class ZoneExtraInfo : public VisExtraInfo 00161 { 00162 public: 00163 00164 long coverage; 00165 }; 00166 00168 class StationExtraInfo : public VisExtraInfo 00169 { 00170 public: 00171 00172 // Zero doppler segments ( ONLY used in stationVisTime ). 00173 ANXTime zdop; 00174 }; 00175 00177 class MultiZonesExtraInfo : public VisExtraInfo 00178 { 00179 public: 00180 00181 long numberOfZones; 00182 vector<long> zonesInSegment; 00183 vector<long> multiCoverage; 00184 }; 00185 00187 class MultiStationsExtraInfo : public VisExtraInfo 00188 { 00189 public: 00190 00191 long numberOfStations; 00192 vector<long> stationsInSegment; 00193 vector<ANXTime> multiZdop; 00194 }; 00195 00197 class MappingExtraInfo : public VisExtraInfo 00198 { 00199 public: 00200 00201 long coverage; 00202 long direction; 00203 }; 00204 00206 class StarExtraInfo : public VisExtraInfo 00207 { 00208 public: 00209 00210 long startCoverage; 00211 long stopCoverage; 00212 }; 00213 00215 class OrbitExtraInfo 00216 { 00217 public: 00218 vector<double> szaUp; 00219 vector<double> szaDown; 00220 double eclipseEntry; 00221 double eclipseExit; 00222 double sunMoonEntry; 00223 double sunMoonExit; 00224 }; 00225 00227 class ScfAppear 00228 { 00229 public: 00230 long colour; 00231 long draw; 00232 long fill; 00233 long opacity; 00234 }; 00235 00236 // AN-430 00238 class AzElMask 00239 { 00240 public: 00241 long numMaskPt; 00242 double azimuth[MaxStationVertices]; 00243 double elevation[MaxStationVertices]; 00244 }; 00245 00247 class LinkMask 00248 { 00249 public: 00250 AzElMask inclMask; 00251 AzElMask exclMask; 00252 }; 00253 00255 class LinkData 00256 { 00257 public: 00258 LinkMask maskData; 00259 double minTgHeight; 00260 }; 00261 // End AN-430 00262 } // closing namespace 00263 00264 #endif