![]() |
Earth Observation Mission CFI Software Visibility Software User Manual |
![]() |
00001 //-------------------------------------------------------------------- 00002 // CVS Info: $Id: VisibilityData.h,v 1.9 2010/04/05 10:27:50 cavm Exp $ 00003 //-------------------------------------------------------------------- 00004 00009 00010 #ifndef __EECFI_VISIBILITYDATA__ 00011 #define __EECFI_VISIBILITYDATA__ 00012 00013 //--INCLUDE----------------------------------------------------------- 00014 #include "DataHandlingData.h" 00015 #include "LibData.h" 00016 #include "OrbitData.h" 00017 #include "PointingData.h" 00018 #include "ANXTime.h" 00019 00020 //--NAMESPACES-------------------------------------------------------- 00021 using namespace std; 00022 00023 namespace EECFI 00024 { 00025 //------------------------------------------------------ 00026 // CONSTANT DATA 00027 //------------------------------------------------------ 00028 00029 //------------------------------------------------------ 00030 // DATA ENUMERATION 00031 // Enumeration values are defined in an equivalent way to the C library 00032 // except for the prefix that has been changed from XX_ to XXCFI_ 00033 //------------------------------------------------------ 00034 00036 typedef enum 00037 { 00038 XVCFI_ORBIT_ABS = 0, 00039 XVCFI_ORBIT_REL = 1 00040 } OrbitTypeEnum; 00041 00043 typedef enum 00044 { 00045 XVCFI_STF = 0, 00046 XVCFI_SDF = 1 00047 } SwathTypeEnum; 00048 00050 typedef enum 00051 { 00052 XVCFI_COMPLETE = 0, 00053 XVCFI_LEFT = 1, 00054 XVCFI_RIGHT = 2, 00055 XVCFI_BOTH = 3 00056 } CoverageEnum; 00057 00059 typedef enum 00060 { 00061 XVCFI_COMBINE = 0, 00062 XVCFI_AOS_LOS = 1, 00063 XVCFI_PHYSICAL = 2, 00064 XVCFI_FROM_FILE = 3 00065 } MaskEnum; 00066 00068 typedef enum 00069 { 00070 XVCFI_STAR_UNDEFINED = 0, 00071 XVCFI_STAR_UPPER = 1, 00072 XVCFI_STAR_LOWER = 2, 00073 XVCFI_STAR_LEFT = 3, 00074 XVCFI_STAR_RIGHT = 4 00075 } CoverageStarEnum; 00076 00078 typedef enum 00079 { 00080 XVCFI_ASCENDING = 0, 00081 XVCFI_DESDENDING = 1 00082 } TimeSegmentsOrbitDirectionEnum; 00083 00085 typedef enum 00086 { 00087 XVCFI_NO_VIS = -1, 00088 XVCFI_ZONE_VIS = 0, 00089 XVCFI_STATION_VIS = 1, 00090 XVCFI_MULTI_ZONES_VIS = 2, 00091 XVCFI_MULTI_STATIONS_VIS = 3, 00092 XVCFI_MAPPING_VIS = 4, 00093 XVCFI_DRS_VIS = 5, 00094 XVCFI_STAR_VIS = 6 00095 } VisibilityTypeEnum; 00096 00098 typedef enum 00099 { 00100 XVCFI_SAT_DEFAULT = XLCFI_SAT_DEFAULT, 00101 XVCFI_SAT_DEFAULT1 = XLCFI_SAT_DEFAULT1, 00102 XVCFI_SAT_DEFAULT2 = XLCFI_SAT_DEFAULT2, 00103 XVCFI_SAT_DEFAULT3 = XLCFI_SAT_DEFAULT3, 00104 XVCFI_SAT_DEFAULT4 = XLCFI_SAT_DEFAULT4, 00105 XVCFI_SAT_DEFAULT5 = XLCFI_SAT_DEFAULT5, 00106 XVCFI_SAT_DEFAULT6 = XLCFI_SAT_DEFAULT6, 00107 XVCFI_SAT_DEFAULT7 = XLCFI_SAT_DEFAULT7, 00108 XVCFI_SAT_DEFAULT8 = XLCFI_SAT_DEFAULT8, 00109 XVCFI_SAT_DEFAULT9 = XLCFI_SAT_DEFAULT9, 00110 XVCFI_SAT_ERS1 = XLCFI_SAT_ERS1, 00111 XVCFI_SAT_ERS2 = XLCFI_SAT_ERS2, 00112 XVCFI_SAT_ENVISAT = XLCFI_SAT_ENVISAT, 00113 XVCFI_SAT_METOP1 = XLCFI_SAT_METOP1, 00114 XVCFI_SAT_METOP2 = XLCFI_SAT_METOP2, 00115 XVCFI_SAT_METOP3 = XLCFI_SAT_METOP3, 00116 XVCFI_SAT_CRYOSAT = XLCFI_SAT_CRYOSAT, 00117 XVCFI_SAT_ADM = XLCFI_SAT_ADM, 00118 XVCFI_SAT_GOCE = XLCFI_SAT_GOCE, 00119 XVCFI_SAT_SMOS = XLCFI_SAT_SMOS, 00120 XVCFI_SAT_TERRASAR = XLCFI_SAT_TERRASAR, 00121 XVCFI_SAT_EARTHCARE = XLCFI_SAT_EARTHCARE, 00122 XVCFI_SAT_SWARM_A = XLCFI_SAT_SWARM_A, 00123 XVCFI_SAT_SWARM_B = XLCFI_SAT_SWARM_B, 00124 XVCFI_SAT_SWARM_C = XLCFI_SAT_SWARM_C, 00125 XVCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A, 00126 XVCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B, 00127 XVCFI_SAT_SENTINEL_2 = XLCFI_SAT_SENTINEL_2, 00128 XVCFI_SAT_SENTINEL_3 = XLCFI_SAT_SENTINEL_3, 00129 XVCFI_SAT_SEOSAT = XLCFI_SAT_SEOSAT, 00130 XVCFI_SAT_GENERIC = XLCFI_SAT_GENERIC 00131 00132 } SatIdVisibilityEnum; 00133 00134 //------------------------------------------------------ 00135 // DATA STRUCTURES 00136 //------------------------------------------------------ 00138 class VisExtraInfo 00139 { 00140 // No atributes 00141 }; 00142 00144 class ZoneExtraInfo : public VisExtraInfo 00145 { 00146 public: 00147 00148 long coverage; 00149 }; 00150 00152 class StationExtraInfo : public VisExtraInfo 00153 { 00154 public: 00155 00156 // Zero doppler segments ( ONLY used in stationVisTime ). 00157 ANXTime zdop; 00158 }; 00159 00161 class MultiZonesExtraInfo : public VisExtraInfo 00162 { 00163 public: 00164 00165 long numberOfZones; 00166 vector<long> zonesInSegment; 00167 vector<long> multiCoverage; 00168 }; 00169 00171 class MultiStationsExtraInfo : public VisExtraInfo 00172 { 00173 public: 00174 00175 long numberOfStations; 00176 vector<long> stationsInSegment; 00177 vector<ANXTime> multiZdop; 00178 }; 00179 00181 class MappingExtraInfo : public VisExtraInfo 00182 { 00183 public: 00184 00185 long coverage; 00186 long direction; 00187 }; 00188 00190 class StarExtraInfo : public VisExtraInfo 00191 { 00192 public: 00193 00194 long startCoverage; 00195 long stopCoverage; 00196 }; 00197 00199 class OrbitExtraInfo 00200 { 00201 public: 00202 vector<double> szaUp; 00203 vector<double> szaDown; 00204 double eclipseEntry; 00205 double eclipseExit; 00206 double sunMoonEntry; 00207 double sunMoonExit; 00208 }; 00209 00211 class ScfAppear 00212 { 00213 public: 00214 long colour; 00215 long draw; 00216 long fill; 00217 long opacity; 00218 }; 00219 00220 } // closing namespace 00221 00222 #endif