| Earth Observation Mission CFI Software Visibility Software User Manual |

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

# Z:/work/code/expcfidev/cplusplusWrapper/Visibility/include/VisibilityData.h

    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