| Earth Observation Mission CFI Software Orbit Software User Manual |

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

- File List

# C:/Jenkins/workspace/CPP_create_documentation/slaves/windows8/lib_src/Orbit/include/OrbitData.h

    00001 //--------------------------------------------------------
    00002 // Earth Observation Mission CFI Software. Version 4.11
    00003 //--------------------------------------------------------
    00004
    00005 //--------------------------------------------------------------------
    00006 // CVS Info: $Id: OrbitData.h,v 1.33 2014-03-25 07:51:59 cavm Exp $
    00007 //--------------------------------------------------------------------
    00008
    00013
    00014 #ifndef __EECFI_ORBITDATA__
    00015 #define __EECFI_ORBITDATA__
    00016
    00017 //--INCLUDE-----------------------------------------------------------
    00018 #include "DataHandlingData.h"
    00019 #include "LibData.h"
    00020 #include "OsfFile.h"
    00021 #include "OrbitDllExport.h"
    00022
    00023 //--NAMESPACES--------------------------------------------------------
    00024 using namespace std;
    00025
    00026 namespace EECFI
    00027 {
    00028   //------------------------------------------------------
    00029   // CONSTANT DATA
    00030   //------------------------------------------------------
    00032   #define XOCFI_NUM_CHECK_PARAMS 6
    00033
    00034   /* AN-353: Geostationary default values */
    00036   #define XOCFI_GEO_DEFAULT_LATITUDE 0.
    00037
    00039   #define XOCFI_GEO_DEFAULT_ALTITUDE 35786000.
    00040
    00041   //------------------------------------------------------
    00042   // DATA ENUMERATION
    00043   // Enumeration values are defined in an equivalent way to the C library
    00044   // except for the prefix that has been changed from XX_ to XXCFI_
    00045   //------------------------------------------------------
    00046
    00048   typedef enum
    00049   {
    00050     XOCFI_ORBIT_EXTRA_DEP_NODAL_PERIOD = 0,
    00051     XOCFI_ORBIT_EXTRA_DEP_UTC_CURRENT_ANX,
    00052     XOCFI_ORBIT_EXTRA_DEP_ORBIT_NUMBER,
    00053     XOCFI_ORBIT_EXTRA_DEP_SEC_SINCE_ANX,
    00054     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_A,
    00055     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_E,
    00056     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_I,
    00057     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_RA,
    00058     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_W,
    00059     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_M,
    00060     XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS
    00061   } OrbitExtraModelMKODependantEnum;
    00062
    00064   typedef enum
    00065   {
    00066     XOCFI_ORBIT_EXTRA_GEOC_LONG = 0,
    00067     XOCFI_ORBIT_EXTRA_GEOD_LAT,
    00068     XOCFI_ORBIT_EXTRA_GEOD_ALT,
    00069     XOCFI_ORBIT_EXTRA_GEOC_LONG_D,
    00070     XOCFI_ORBIT_EXTRA_GEOD_LAT_D,
    00071     XOCFI_ORBIT_EXTRA_GEOD_ALT_D,
    00072     XOCFI_ORBIT_EXTRA_GEOC_LONG_2D,
    00073     XOCFI_ORBIT_EXTRA_GEOD_LAT_2D,
    00074     XOCFI_ORBIT_EXTRA_GEOD_ALT_2D,
    00075     XOCFI_ORBIT_EXTRA_RAD_CUR_PARALLEL_MERIDIAN,
    00076     XOCFI_ORBIT_EXTRA_RAD_CUR_ORTHO_MERIDIAN,
    00077     XOCFI_ORBIT_EXTRA_RAD_CUR_ALONG_GROUNDTRACK,
    00078     XOCFI_ORBIT_EXTRA_NORTH_VEL,
    00079     XOCFI_ORBIT_EXTRA_EAST_VEL,
    00080     XOCFI_ORBIT_EXTRA_MAG_VEL,
    00081     XOCFI_ORBIT_EXTRA_AZ_VEL,
    00082     XOCFI_ORBIT_EXTRA_NORTH_ACC,
    00083     XOCFI_ORBIT_EXTRA_EAST_ACC,
    00084     XOCFI_ORBIT_EXTRA_GROUNDTRACK_ACC,
    00085     XOCFI_ORBIT_EXTRA_AZ_ACC,
    00086     XOCFI_ORBIT_EXTRA_SAT_ECLIPSE_FLAG,
    00087     XOCFI_ORBIT_EXTRA_SZA,
    00088     XOCFI_ORBIT_EXTRA_MLST,
    00089     XOCFI_ORBIT_EXTRA_TLST,
    00090     XOCFI_ORBIT_EXTRA_TRUE_SUN_RA,
    00091     XOCFI_ORBIT_EXTRA_TRUE_SUN_DEC,
    00092     XOCFI_ORBIT_EXTRA_TRUE_SUN_SEMIDIAM,
    00093     XOCFI_ORBIT_EXTRA_MOON_RA,
    00094     XOCFI_ORBIT_EXTRA_MOON_DEC,
    00095     XOCFI_ORBIT_EXTRA_MOON_SEMI_DIAM,
    00096     XOCFI_ORBIT_EXTRA_MOON_AREA_LIT,
    00097     XOCFI_ORBIT_EXTRA_OSC_KEPL_A,
    00098     XOCFI_ORBIT_EXTRA_OSC_KEPL_E,
    00099     XOCFI_ORBIT_EXTRA_OSC_KEPL_I,
    00100     XOCFI_ORBIT_EXTRA_OSC_KEPL_RA,
    00101     XOCFI_ORBIT_EXTRA_OSC_KEPL_W,
    00102     XOCFI_ORBIT_EXTRA_OSC_KEPL_M,
    00103     XOCFI_ORBIT_EXTRA_ORBIT_RAD,
    00104     XOCFI_ORBIT_EXTRA_RADIAL_ORB_VEL,
    00105     XOCFI_ORBIT_EXTRA_TRANS_ORB_VEL,
    00106     XOCFI_ORBIT_EXTRA_ORB_VEL_MAG,
    00107     XOCFI_ORBIT_EXTRA_RA_SAT,
    00108     XOCFI_ORBIT_EXTRA_DEC_SAT,
    00109     XOCFI_ORBIT_EXTRA_EARTH_ROTATION_ANGLE,
    00110     XOCFI_ORBIT_EXTRA_RA_SAT_D,
    00111     XOCFI_ORBIT_EXTRA_RA_SAT_2D,
    00112     XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT,
    00113     XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT_D,
    00114     XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT_2D,
    00115     XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS
    00116
    00117   } OrbitExtraModelMKOIndependantEnum;
    00118
    00120   typedef enum
    00121   {
    00122     // model independant
    00123     XOCFI_ORBIT_EXTRA_NO_RESULTS        = 0,
    00124     XOCFI_ORBIT_EXTRA_GEOLOCATION       = 1,
    00125     XOCFI_ORBIT_EXTRA_GEOLOCATION_D     = 2,
    00126     XOCFI_ORBIT_EXTRA_GEOLOCATION_2D    = 4,
    00127     XOCFI_ORBIT_EXTRA_GEOLOCATION_EXTRA = 8,
    00128     XOCFI_ORBIT_EXTRA_EARTH_FIXED_D     = 16,
    00129     XOCFI_ORBIT_EXTRA_EARTH_FIXED_2D    = 32,
    00130     XOCFI_ORBIT_EXTRA_SUN               = 64,
    00131     XOCFI_ORBIT_EXTRA_MOON              = 128,
    00132     XOCFI_ORBIT_EXTRA_OSCULATING_KEPLER = 256,
    00133     XOCFI_ORBIT_EXTRA_INERTIAL_AUX      = 512,
    00134     // model dependant
    00135     XOCFI_ORBIT_EXTRA_DEP_ANX_TIMING    = 1024,
    00136     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPLER   = 2048,
    00137     XOCFI_ORBIT_EXTRA_ALL_RESULTS       = 4095
    00138
    00139   }OrbitExtraChoiceEnum;
    00140
    00142   typedef enum
    00143   {
    00144     XOCFI_SAT_DEFAULT     = XLCFI_SAT_DEFAULT,
    00145     XOCFI_SAT_DEFAULT1    = XLCFI_SAT_DEFAULT1,
    00146     XOCFI_SAT_DEFAULT2    = XLCFI_SAT_DEFAULT2,
    00147     XOCFI_SAT_DEFAULT3    = XLCFI_SAT_DEFAULT3,
    00148     XOCFI_SAT_DEFAULT4    = XLCFI_SAT_DEFAULT4,
    00149     XOCFI_SAT_DEFAULT5    = XLCFI_SAT_DEFAULT5,
    00150     XOCFI_SAT_DEFAULT6    = XLCFI_SAT_DEFAULT6,
    00151     XOCFI_SAT_DEFAULT7    = XLCFI_SAT_DEFAULT7,
    00152     XOCFI_SAT_DEFAULT8    = XLCFI_SAT_DEFAULT8,
    00153     XOCFI_SAT_DEFAULT9    = XLCFI_SAT_DEFAULT9,
    00154     XOCFI_SAT_ERS1        = XLCFI_SAT_ERS1,
    00155     XOCFI_SAT_ERS2        = XLCFI_SAT_ERS2,
    00156     XOCFI_SAT_ENVISAT     = XLCFI_SAT_ENVISAT,
    00157     XOCFI_SAT_METOP1      = XLCFI_SAT_METOP1,
    00158     XOCFI_SAT_METOP2      = XLCFI_SAT_METOP2,
    00159     XOCFI_SAT_METOP3      = XLCFI_SAT_METOP3,
    00160     XOCFI_SAT_CRYOSAT     = XLCFI_SAT_CRYOSAT,
    00161     XOCFI_SAT_ADM         = XLCFI_SAT_ADM,
    00162     XOCFI_SAT_GOCE        = XLCFI_SAT_GOCE,
    00163     XOCFI_SAT_SMOS        = XLCFI_SAT_SMOS,
    00164     XOCFI_SAT_TERRASAR    = XLCFI_SAT_TERRASAR,
    00165     XOCFI_SAT_EARTHCARE   = XLCFI_SAT_EARTHCARE,
    00166     XOCFI_SAT_SWARM_A     = XLCFI_SAT_SWARM_A,
    00167     XOCFI_SAT_SWARM_B     = XLCFI_SAT_SWARM_B,
    00168     XOCFI_SAT_SWARM_C     = XLCFI_SAT_SWARM_C,
    00169     XOCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A,
    00170     XOCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B,
    00171     XOCFI_SAT_SENTINEL_2  = XLCFI_SAT_SENTINEL_2,
    00172     XOCFI_SAT_SENTINEL_3  = XLCFI_SAT_SENTINEL_3,
    00173     XOCFI_SAT_SEOSAT      = XLCFI_SAT_SEOSAT,
    00174     XOCFI_SAT_SENTINEL_1C = XLCFI_SAT_SENTINEL_1C,
    00175     XOCFI_SAT_SENTINEL_2A = XLCFI_SAT_SENTINEL_2A,
    00176     XOCFI_SAT_SENTINEL_2B = XLCFI_SAT_SENTINEL_2B,
    00177     XOCFI_SAT_SENTINEL_2C = XLCFI_SAT_SENTINEL_2C,
    00178     XOCFI_SAT_SENTINEL_3A = XLCFI_SAT_SENTINEL_3A,
    00179     XOCFI_SAT_SENTINEL_3B = XLCFI_SAT_SENTINEL_3B,
    00180     XOCFI_SAT_SENTINEL_3C = XLCFI_SAT_SENTINEL_3C,
    00181     XOCFI_SAT_JASON_CSA   = XLCFI_SAT_JASON_CSA,   // AN-531
    00182     XOCFI_SAT_JASON_CSB   = XLCFI_SAT_JASON_CSB,   // AN-531
    00183     XOCFI_SAT_METOP_SG_A1 = XLCFI_SAT_METOP_SG_A1, // AN-530
    00184     XOCFI_SAT_METOP_SG_A2 = XLCFI_SAT_METOP_SG_A2, // AN-530
    00185     XOCFI_SAT_METOP_SG_A3 = XLCFI_SAT_METOP_SG_A3, // AN-530
    00186     XOCFI_SAT_METOP_SG_B1 = XLCFI_SAT_METOP_SG_B1, // AN-530
    00187     XOCFI_SAT_METOP_SG_B2 = XLCFI_SAT_METOP_SG_B2, // AN-530
    00188     XOCFI_SAT_METOP_SG_B3 = XLCFI_SAT_METOP_SG_B3, // AN-530
    00189     XOCFI_SAT_SENTINEL_5P = XLCFI_SAT_SENTINEL_5P, // AN-502
    00190     XOCFI_SAT_BIOMASS     = XLCFI_SAT_BIOMASS,     // AN-601
    00191     XOCFI_SAT_SENTINEL_5  = XLCFI_SAT_SENTINEL_5,  // AN-639
    00192     XOCFI_SAT_SAOCOM_CS   = XLCFI_SAT_SAOCOM_CS,   // AN-640
    00193     XOCFI_SAT_GENERIC     = XLCFI_SAT_GENERIC,
    00194     // AN-353
    00195     XOCFI_SAT_GENERIC_GEO = XLCFI_SAT_GENERIC_GEO,
    00196     XOCFI_SAT_MTG         = XLCFI_SAT_MTG,
    00197     // END AN-353
    00198     XOCFI_SAT_GENERIC_MEO = XLCFI_SAT_GENERIC_MEO // AN-550
    00199   } SatIdOrbitEnum;
    00200
    00202   typedef enum
    00203   {
    00204     XOCFI_TIME_UNDEF = XLCFI_TIME_UNDEF,
    00205     XOCFI_TIME_TAI   = XLCFI_TIME_TAI,
    00206     XOCFI_TIME_UTC   = XLCFI_TIME_UTC,
    00207     XOCFI_TIME_UT1   = XLCFI_TIME_UT1,
    00208     XOCFI_TIME_GPS   = XLCFI_TIME_GPS
    00209   } TimeRefOrbitEnum;
    00210
    00212   typedef enum
    00213   {
    00214     XOCFI_TIME_REF_OF_TAI   = XDCFI_TIME_REF_OF_TAI,
    00215     XOCFI_TIME_REF_OF_UTC   = XDCFI_TIME_REF_OF_UTC,
    00216     XOCFI_TIME_REF_OF_UT1   = XDCFI_TIME_REF_OF_UT1,
    00217     XOCFI_TIME_REF_OF_GPS   = XDCFI_TIME_REF_OF_GPS
    00218   } TimeRefOfOrbitEnum;
    00219
    00221   typedef enum
    00222   {
    00223     XOCFI_SEL_FILE = 0,
    00224     XOCFI_SEL_TIME,
    00225     XOCFI_SEL_ORBIT,
    00226     XOCFI_SEL_DEFAULT
    00227   } InitModeEnum;
    00228
    00230   typedef enum
    00231   {
    00232     XOCFI_ORBIT_INIT_UNKNOWN_MODE      = -1,
    00233     XOCFI_ORBIT_INIT_AUTO              = XDCFI_AUTO,
    00234     XOCFI_ORBIT_INIT_ORBIT_CHANGE_MODE = XDCFI_ORBIT_CHANGE,
    00235     XOCFI_ORBIT_INIT_STATE_VECTOR_MODE = XDCFI_STATE_VECTOR,
    00236     XOCFI_ORBIT_INIT_OSF_MODE          = XDCFI_OSF_TYPE,
    00237     XOCFI_ORBIT_INIT_POF_MODE          = XDCFI_POF_TYPE,
    00238     XOCFI_ORBIT_INIT_ROF_MODE          = XDCFI_ROF_TYPE,
    00239     XOCFI_ORBIT_INIT_DORIS_MODE        = XDCFI_DORIS_TYPE,
    00240     XOCFI_ORBIT_INIT_POF_N_DORIS_MODE  = XDCFI_POF_N_DORIS_TYPE,
    00241     XOCFI_ORBIT_INIT_OEF_OSF_MODE      = XDCFI_OEF_OSF_TYPE,
    00242     XOCFI_ORBIT_INIT_OEF_POF_MODE      = XDCFI_OEF_POF_TYPE,
    00243     XOCFI_ORBIT_INIT_TLE_MODE          = XDCFI_TLE_TYPE,
    00244     XOCFI_ORBIT_INIT_SP3_MODE          = XDCFI_SP3_TYPE, // AN-550
    00245     XOCFI_ORBIT_INIT_OEM_MODE          = XDCFI_OEM_TYPE, // AN-578
    00246     XOCFI_ORBIT_INIT_STATE_VECTOR_PRECISE_MODE,
    00247     XOCFI_ORBIT_INIT_POF_PRECISE_MODE,
    00248     XOCFI_ORBIT_INIT_ROF_PRECISE_MODE,
    00249     XOCFI_ORBIT_INIT_DORIS_PRECISE_MODE,
    00250     XOCFI_ORBIT_INIT_OEF_POF_PRECISE_MODE,
    00251     XOCFI_ORBIT_INIT_POF_N_DORIS_PRECISE_MODE,
    00252     XOCFI_ORBIT_INIT_GEO_LON_MODE,       // AN-353
    00253     XOCFI_ORBIT_INIT_TLE_SDP4_MODE,      // AN-494
    00254     XOCFI_ORBIT_INIT_TLE_SGP4_MODE,      // AN-494
    00255     XOCFI_ORBIT_INIT_USER_OSV_LIST_MODE, // AN-497
    00256     XOCFI_ORBIT_INIT_POF_ORBNUM_ADJ_MODE,       /* ANR-527 */
    00257     XOCFI_ORBIT_INIT_ROF_ORBNUM_ADJ_MODE,       /* ANR-527 */
    00258     XOCFI_ORBIT_INIT_DORIS_ORBNUM_ADJ_MODE,     /* ANR-527 */
    00259     XOCFI_ORBIT_INIT_OEM_ORBNUM_ADJ_MODE,       // AN-578
    00260     XOCFI_ORBIT_INIT_MAX_VALUE
    00261
    00262   } OrbitInitModeEnum;
    00263
    00265   typedef enum
    00266   {
    00267     XOCFI_INTERPOL_MODEL_DEFAULT = 0
    00268   } InterpolModelEnum;
    00269
    00271   typedef enum
    00272   {
    00273     // AN-497
    00274     XOCFI_PROPAG_MODEL_NOT_INITIALIZED = -1,
    00275     XOCFI_PROPAG_MODEL_MEAN_KEPL  = 0,
    00276     XOCFI_PROPAG_MODEL_SPOT       = 1,
    00277     XOCFI_PROPAG_MODEL_TLE        = 2,
    00278     XOCFI_PROPAG_MODEL_PRECISE    = 3,
    00279     XOCFI_PROPAG_MODEL_GEO        = 4,
    00280     XOCFI_PROPAG_MODEL_AUTO       = 10,
    00281     XOCFI_PROPAG_MODEL_DOUBLE     = 100
    00282   } PropagModelEnum;
    00283
    00285   typedef enum
    00286   {
    00287     XOCFI_NOSUNSYNC_DRIFT = 0,
    00288     XOCFI_NOSUNSYNC_INCLINATION,
    00289     XOCFI_NOSUNSYNC_DRIFT_NONLINEAR,
    00290     XOCFI_NOSUNSYNC_USE_SIM_MODEL = 10
    00291   } NoSunSychronousModeEnum;
    00292
    00294   typedef enum
    00295   {
    00296      XOCFI_OSV_PRECISE_NO = 1,
    00297      XOCFI_OSV_PRECISE_MINUTE,
    00298      XOCFI_OSV_PRECISE_TEN_SECONDS
    00299
    00300   } OsvPreciseEnum;
    00301
    00303   typedef enum
    00304   {
    00305     XOCFI_REF_FILETYPE_OSF = 1,
    00306     XOCFI_REF_FILETYPE_OEF_OSF,
    00307     XOCFI_REF_FILETYPE_POF,
    00308     XOCFI_REF_FILETYPE_OEF_POF,
    00309     XOCFI_REF_FILETYPE_DORIS_NAV,
    00310     XOCFI_REF_FILETYPE_ROF,
    00311     XOCFI_REF_FILETYPE_DORIS_PREM,
    00312     XOCFI_REF_FILETYPE_DORIS_PREC
    00313
    00314   } RefFiletypeEnum;
    00315
    00317   typedef enum
    00318   {
    00319      XOCFI_NO_PHASE_INCREMENT = 0,
    00320      XOCFI_PHASE_INCREMENT = 1
    00321   } GenOsfPhaseIncrementEnum;
    00322
    00324   typedef enum
    00325   {
    00326      XOCFI_FIT_TLE = XDCFI_FIT_TLE,
    00327      XOCFI_FIT_TLE_LIST = XDCFI_FIT_TLE_LIST,
    00328      XOCFI_ONE_TLE_PER_OSV = XDCFI_ONE_TLE_PER_OSV
    00329   } TLEFitModeEnum;
    00330
    00332   typedef enum
    00333   {
    00334      XOCFI_SEARCH_FORWARD  =  1,
    00335      XOCFI_SEARCH_BACKWARD = -1
    00336   } GenOsfSearchDirectionEnum;
    00337
    00339   typedef enum
    00340   {
    00341     XOCFI_DEFAULT_VALUES = XDCFI_DEFAULT_VALUES,
    00342     XOCFI_USER_VALUES    = XDCFI_USER_VALUES
    00343   } OrbitPrecisePropagUserFlagEnum;
    00344
    00346   typedef enum
    00347   {
    00348     XOCFI_NOT_SELECT = XDCFI_NOT_SELECT,
    00349     XOCFI_SELECT     = XDCFI_SELECT
    00350   } OrbitPrecisePropagSelectionFlagEnum;
    00351
    00353   typedef enum
    00354   {
    00355     XOCFI_SGA_USE_PARAMETERS        = XDCFI_SGA_USE_PARAMETERS,
    00356     XOCFI_SGA_READ_VALUES_FROM_FILE = XDCFI_SGA_READ_VALUES_FROM_FILE
    00357   } OrbitPrecisePropagSgaFlagEnum;
    00358
    00360   typedef enum
    00361   {
    00362     XOCFI_GC_LONGITUDE_ONLY
    00363   } GeoCoordEnum; // Created for AN-353
    00364
    00365
    00367   typedef enum
    00368   {
    00369     XOCFI_FILTER_OUTLIERS
    00370   } OrbitDataFilterEnum; // Created for ANR-382/455
    00371
    00373   typedef enum
    00374   {
    00375     XOCFI_REMOVE = 0,
    00376     XOCFI_SMOOTH
    00377   } OrbitDataFilterActionEnum; // Created for ANR-382/455
    00378
    00380   typedef enum
    00381   {
    00382     XOCFI_ORBIT_ID_CHANGE_OSF = 0,
    00383     XOCFI_ORBIT_ID_CHANGE_TIME_ORBIT
    00384   } OrbitIdChangeEnum; // ANR-527
    00385
    00387   typedef enum
    00388   {
    00389     XOCFI_ORBIT_INFO_ITEM_SMX
    00390   } OrbitInfoItemsEnum; // AN-523
    00391
    00393   typedef enum
    00394   {
    00395     XOCFI_DEACTIVATE_ITEM,
    00396     XOCFI_ACTIVATE_ITEM
    00397   } OrbitInfoFlagEnum; // AN-523
    00398
    00400   typedef enum
    00401   {
    00402     XOCFI_ORBIT_ABS = 0,
    00403     XOCFI_ORBIT_REL = 1
    00404   } XOOrbitTypeEnum;  //AN-596
    00405
    00407   typedef enum
    00408   {
    00409     XOCFI_TIME_TYPE,
    00410     XOCFI_ORBIT_TYPE,
    00411     XOCFI_BOTH_TYPE
    00412   } XOTimeTypeEnum;
    00413   // END AN-596
    00414
    00415   //------------------------------------------------------
    00416   // DATA STRUCTURES
    00417   //------------------------------------------------------
    00418
    00420   class XO_DECL ANXExtra
    00421   {
    00422     public:
    00423       long absOrbit;
    00424       double tAnx;
    00425       double tNod;
    00426
    00428       ANXExtra()
    00429       {
    00430          absOrbit = -1;
    00431          tAnx = -1;
    00432          tNod = -1;
    00433       };
    00434
    00436       ANXExtra( long absOrb, double timeAnx, double timeNod )
    00437       {
    00438          absOrbit = absOrb;
    00439          tAnx = timeAnx;
    00440          tNod = timeNod;
    00441       }
    00442
    00443   };
    00444
    00446   class XO_DECL ValidityTime
    00447   {
    00448      public:
    00449       long timeRef;
    00450       double start;
    00451       double stop;
    00452
    00454       ValidityTime()
    00455       {
    00456          timeRef = -1;
    00457          start = -1;
    00458          stop = -1;
    00459       }
    00460
    00462       ValidityTime( long timeReference, double startVal, double stopVal )
    00463       {
    00464          timeRef = timeReference;
    00465          start = startVal;
    00466          stop = stopVal;
    00467       }
    00468   };
    00469
    00471   class XO_DECL OrbitInfo
    00472   {
    00473      public:
    00474       long absOrbit;
    00475       long relOrbit;
    00476       long cycle;
    00477       long phase;
    00478
    00480       OrbitInfo()
    00481       {
    00482          absOrbit = -1;
    00483          relOrbit = -1;
    00484          cycle = -1;
    00485          phase = -1;
    00486       }
    00487
    00489       OrbitInfo( long absoluteOrbit, long relativeOrbit, long cycleOrbit,
    00490                  long phaseOrbit)
    00491       {
    00492          absOrbit = absoluteOrbit;
    00493          relOrbit = relativeOrbit;
    00494          cycle = cycleOrbit;
    00495          phase = phaseOrbit;
    00496       }
    00497
    00498   };
    00499
    00501   class XO_DECL StateVectorInfo
    00502   {
    00503      public:
    00504       double pos[3];
    00505       double vel[3];
    00506       double acc[3];
    00507
    00509       StateVectorInfo()
    00510       {
    00511         pos[0] = 0.; vel[1] = 0.; acc[2] = 0.;
    00512         pos[0] = 0.; vel[1] = 0.; acc[2] = 0.;
    00513         pos[0] = 0.; vel[1] = 0.; acc[2] = 0.;
    00514       }
    00515
    00517       StateVectorInfo( double *posIn, double *velIn, double *accIn )
    00518       {
    00519         pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2];
    00520         pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2];
    00521         pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2];
    00522       }
    00523   };
    00524
    00526   class XO_DECL StateVectorExtraInfo
    00527   {
    00528      public:
    00529       double modelDep[XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS];
    00530       double modelIndep[XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS];
    00531
    00533       StateVectorExtraInfo()
    00534       {
    00535         int i;
    00536         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS ; i++ )
    00537           modelDep[i] = 0.;
    00538         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS ; i++ )
    00539           modelIndep[i] = 0.;
    00540       }
    00541
    00543       StateVectorExtraInfo( double *model, double *extra )
    00544       {
    00545         int i;
    00546         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS ; i++ )
    00547           modelDep[i] = model[i];
    00548         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS ; i++ )
    00549           modelIndep[i] = extra[i];
    00550       }
    00551   };
    00552
    00554   class XO_DECL AnxInfo
    00555   {
    00556      public:
    00557       double anxTai;
    00558       double anxUtc;
    00559       double anxUt1;
    00560       double anxPos[3];
    00561       double anxVel[3];
    00562       double kepl[6];
    00563       double tNod;
    00564   };
    00565
    00567   class XO_DECL RefOrbitInfo
    00568   {
    00569      public:
    00570       long driftMode;
    00571       double inclination;
    00572       long repCycle;
    00573       long cycleLength;
    00574       double AnxLong;
    00575       double mlst;
    00576       double mlstDrift;
    00577       MlstNonlinearDrift mlstNonlinearDrift;
    00578   };
    00579
    00581   class XO_DECL OsfRecords
    00582   {
    00583      public:
    00584       OrbitInfo missionInfo;
    00585       RefOrbitInfo refOrbitinfo;
    00586       AnxInfo anxInfo;
    00587   };
    00588
    00590   class XO_DECL OrbitalInfo
    00591   {
    00592     public:
    00593       long absOrbit;
    00594       long repCycle;
    00595       long cycLength;
    00596       double mlstDrift;
    00597       double mlst;
    00598       double phasing;
    00599       double utcAnx;
    00600       double posAnx[3];
    00601       double velAnx[3];
    00602       double meanKep[6];
    00603       double oscKep[6];
    00604       double nodalPeriod;
    00605       // AN-523
    00606       double utcSmx;
    00607   };
    00608
    00609   // AN-353
    00611   class XO_DECL GeoGeodCoord
    00612   {
    00613     public:
    00614       double gcLongitude;
    00615       double gdLatitude;
    00616       double gdAltitude;
    00617   };
    00618
    00620   class XO_DECL GeoOrbitInfo
    00621   {
    00622     public:
    00623       GeoGeodCoord geodCoord;
    00624   };
    00625
    00627   class XO_DECL GeoOrbitInitData
    00628   {
    00629     public:
    00630       long type;
    00631       GeoOrbitInfo geoOrbitInfo;
    00632   };
    00633   // END AN-353
    00634
    00635
    00636
    00637   // ANR-382
    00639   class XO_DECL OrbitDataFilterOutliersConfiguration
    00640   {
    00641     public:
    00642       OrbitDataFilterOutliersConfiguration()
    00643       {
    00644         action       = XOCFI_REMOVE;
    00645         thresholdPos = 0;
    00646         thresholdVel = 0;
    00647       }
    00648       OrbitDataFilterOutliersConfiguration(long a, double p, double v)
    00649       {
    00650         action       = a;
    00651         thresholdPos = p;
    00652         thresholdVel = v;
    00653       }
    00654
    00655       long   action;
    00656       double thresholdPos;
    00657       double thresholdVel;
    00658   };
    00659
    00661   class XO_DECL OrbitDataFilterConfiguration
    00662   {
    00663     public:
    00664       OrbitDataFilterConfiguration(){}
    00665
    00669       OrbitDataFilterConfiguration(long t)
    00670       {
    00671         type = t;
    00672         switch (type)
    00673         {
    00674           case XOCFI_FILTER_OUTLIERS: outliersConfiguration = OrbitDataFilterOutliersConfiguration(XOCFI_REMOVE, 0, 0);
    00675                                       break;
    00676         }
    00677       }
    00678
    00685       OrbitDataFilterConfiguration(long t, long a, double p, double v)
    00686       {
    00687         type = t;
    00688         switch (type)
    00689         {
    00690           case XOCFI_FILTER_OUTLIERS: outliersConfiguration = OrbitDataFilterOutliersConfiguration(a, p, v);
    00691                                       break;
    00692         }
    00693       }
    00694       long type;
    00695       OrbitDataFilterOutliersConfiguration outliersConfiguration;
    00696   };
    00697
    00699   class XO_DECL OrbitDataFilterOutliersReport
    00700   {
    00701     public:
    00702       OrbitDataFilterOutliersReport()
    00703       {
    00704         nofOSVin       = 0;
    00705         nofOSVfiltered = 0;
    00706         minTimeGap     = 0;
    00707         maxTimeGap     = 0;
    00708         minRMSPos      = 0;
    00709         maxRMSPos      = 0;
    00710         minRMSVel      = 0;
    00711         maxRMSVel      = 0;
    00712       }
    00713       OrbitDataFilterOutliersReport(long in, long fi, double ming, double MaxG, double minp, double MaxP, double minv, double MaxV)
    00714       {
    00715         nofOSVin       = in;
    00716         nofOSVfiltered = fi;
    00717         minTimeGap     = ming;
    00718         maxTimeGap     = MaxG;
    00719         minRMSPos      = minp;
    00720         maxRMSPos      = MaxP;
    00721         minRMSVel      = minv;
    00722         maxRMSVel      = MaxV;
    00723       }
    00724
    00725       long   nofOSVin;
    00726       long   nofOSVfiltered;
    00727       double minTimeGap;
    00728       double maxTimeGap;
    00729       double minRMSPos;
    00730       double maxRMSPos;
    00731       double minRMSVel;
    00732       double maxRMSVel;
    00733   };
    00734
    00736   class XO_DECL OrbitDataFilterReport
    00737   {
    00738     public:
    00739       OrbitDataFilterReport(){}
    00740       OrbitDataFilterReport(long t)
    00741       {
    00742         type = t;
    00743       }
    00744
    00745       long type;
    00746       OrbitDataFilterOutliersReport outliersReport;
    00747   };
    00748   // END ANR-382
    00749
    00751   class XO_DECL OrbitChangeFile
    00752   {
    00753     public:
    00754       long fileType;
    00755       OsfFile     osfData;
    00756
    00757       OrbitChangeFile()
    00758       {
    00759         fileType = -1;
    00760       }
    00761   }; // AN-527
    00762
    00764   class XO_DECL OrbitChangeData
    00765   {
    00766     public:
    00767       long            changeMode;
    00768       OrbitChangeFile changeFile;
    00769       double          changeTimeRef;
    00770       double          changeTime;
    00771       long            changeOrbit;
    00772
    00773       OrbitChangeData()
    00774       {
    00775         changeMode = -1;
    00776       }
    00777
    00778   }; // AN-527
    00779
    00781   class XO_DECL OrbTime
    00782   {
    00783     public:
    00784       long   type;
    00785       long   timeRef;
    00786       double time;
    00787       long   orbitNum;
    00788       long   sec;
    00789       long   msec;
    00790
    00791       OrbTime()
    00792       {
    00793         type      = 0;
    00794         timeRef   = XOCFI_TIME_UTC;
    00795         time      = 0.;
    00796         orbitNum  = 0;
    00797         sec       = 0;
    00798         msec      = 0;
    00799       }
    00800       OrbTime(long typeIn, long timeR, double timeIn, long orbitNumIn,
    00801               long secIn, long msecIn)
    00802       {
    00803         type      = typeIn;
    00804         timeRef   = timeR;
    00805         time      = timeIn;
    00806         orbitNum  = orbitNumIn;
    00807         sec       = secIn;
    00808         msec      = msecIn;
    00809       }
    00810   };// AN-596
    00811
    00813   class XO_DECL OrbTimeInterval
    00814   {
    00815     public:
    00816       OrbTime tstart;
    00817       OrbTime tstop;
    00818
    00819       OrbTimeInterval()
    00820       {
    00821       }
    00822
    00823       OrbTimeInterval(OrbTime t0, OrbTime t1)
    00824       {
    00825         tstart = t0;
    00826         tstop  = t1;
    00827       }
    00828   }; // AN-596
    00829
    00830 } // closing namespace
    00831
    00832 #endif