| Earth Observation Mission CFI Software Orbit Software User Manual |

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

- File List

# Z:/work/code/expcfidev/cplusplusWrapper/Orbit/include/OrbitData.h

    00001 //--------------------------------------------------------
    00002 // Earth Observation Mission CFI Software. Version 4.4
    00003 //--------------------------------------------------------
    00004
    00005 //--------------------------------------------------------------------
    00006 // CVS Info: $Id: OrbitData.h,v 1.16 2012/06/20 16:11:22 expcfi Exp $
    00007 //--------------------------------------------------------------------
    00008
    00013
    00014 #ifndef __EECFI_ORBITDATA__
    00015 #define __EECFI_ORBITDATA__
    00016
    00017 //--INCLUDE-----------------------------------------------------------
    00018 #include "DataHandlingData.h"
    00019 #include "LibData.h"
    00020
    00021 //--NAMESPACES--------------------------------------------------------
    00022 using namespace std;
    00023
    00024 namespace EECFI
    00025 {
    00026   //------------------------------------------------------
    00027   // CONSTANT DATA
    00028   //------------------------------------------------------
    00030   #define XOCFI_NUM_CHECK_PARAMS 6
    00031
    00032   /* AN-353: Geostationary default values */
    00034   #define XOCFI_GEO_DEFAULT_LATITUDE 0.
    00035
    00037   #define XOCFI_GEO_DEFAULT_ALTITUDE 35786000.
    00038
    00039   //------------------------------------------------------
    00040   // DATA ENUMERATION
    00041   // Enumeration values are defined in an equivalent way to the C library
    00042   // except for the prefix that has been changed from XX_ to XXCFI_
    00043   //------------------------------------------------------
    00044
    00046   typedef enum
    00047   {
    00048     XOCFI_ORBIT_EXTRA_DEP_NODAL_PERIOD = 0,
    00049     XOCFI_ORBIT_EXTRA_DEP_UTC_CURRENT_ANX,
    00050     XOCFI_ORBIT_EXTRA_DEP_ORBIT_NUMBER,
    00051     XOCFI_ORBIT_EXTRA_DEP_SEC_SINCE_ANX,
    00052     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_A,
    00053     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_E,
    00054     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_I,
    00055     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_RA,
    00056     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_W,
    00057     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPL_M,
    00058     XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS
    00059   } OrbitExtraModelMKODependantEnum;
    00060
    00062   typedef enum
    00063   {
    00064     XOCFI_ORBIT_EXTRA_GEOC_LONG = 0,
    00065     XOCFI_ORBIT_EXTRA_GEOD_LAT,
    00066     XOCFI_ORBIT_EXTRA_GEOD_ALT,
    00067     XOCFI_ORBIT_EXTRA_GEOC_LONG_D,
    00068     XOCFI_ORBIT_EXTRA_GEOD_LAT_D,
    00069     XOCFI_ORBIT_EXTRA_GEOD_ALT_D,
    00070     XOCFI_ORBIT_EXTRA_GEOC_LONG_2D,
    00071     XOCFI_ORBIT_EXTRA_GEOD_LAT_2D,
    00072     XOCFI_ORBIT_EXTRA_GEOD_ALT_2D,
    00073     XOCFI_ORBIT_EXTRA_RAD_CUR_PARALLEL_MERIDIAN,
    00074     XOCFI_ORBIT_EXTRA_RAD_CUR_ORTHO_MERIDIAN,
    00075     XOCFI_ORBIT_EXTRA_RAD_CUR_ALONG_GROUNDTRACK,
    00076     XOCFI_ORBIT_EXTRA_NORTH_VEL,
    00077     XOCFI_ORBIT_EXTRA_EAST_VEL,
    00078     XOCFI_ORBIT_EXTRA_MAG_VEL,
    00079     XOCFI_ORBIT_EXTRA_AZ_VEL,
    00080     XOCFI_ORBIT_EXTRA_NORTH_ACC,
    00081     XOCFI_ORBIT_EXTRA_EAST_ACC,
    00082     XOCFI_ORBIT_EXTRA_GROUNDTRACK_ACC,
    00083     XOCFI_ORBIT_EXTRA_AZ_ACC,
    00084     XOCFI_ORBIT_EXTRA_SAT_ECLIPSE_FLAG,
    00085     XOCFI_ORBIT_EXTRA_SZA,
    00086     XOCFI_ORBIT_EXTRA_MLST,
    00087     XOCFI_ORBIT_EXTRA_TLST,
    00088     XOCFI_ORBIT_EXTRA_TRUE_SUN_RA,
    00089     XOCFI_ORBIT_EXTRA_TRUE_SUN_DEC,
    00090     XOCFI_ORBIT_EXTRA_TRUE_SUN_SEMIDIAM,
    00091     XOCFI_ORBIT_EXTRA_MOON_RA,
    00092     XOCFI_ORBIT_EXTRA_MOON_DEC,
    00093     XOCFI_ORBIT_EXTRA_MOON_SEMI_DIAM,
    00094     XOCFI_ORBIT_EXTRA_MOON_AREA_LIT,
    00095     XOCFI_ORBIT_EXTRA_OSC_KEPL_A,
    00096     XOCFI_ORBIT_EXTRA_OSC_KEPL_E,
    00097     XOCFI_ORBIT_EXTRA_OSC_KEPL_I,
    00098     XOCFI_ORBIT_EXTRA_OSC_KEPL_RA,
    00099     XOCFI_ORBIT_EXTRA_OSC_KEPL_W,
    00100     XOCFI_ORBIT_EXTRA_OSC_KEPL_M,
    00101     XOCFI_ORBIT_EXTRA_ORBIT_RAD,
    00102     XOCFI_ORBIT_EXTRA_RADIAL_ORB_VEL,
    00103     XOCFI_ORBIT_EXTRA_TRANS_ORB_VEL,
    00104     XOCFI_ORBIT_EXTRA_ORB_VEL_MAG,
    00105     XOCFI_ORBIT_EXTRA_RA_SAT,
    00106     XOCFI_ORBIT_EXTRA_DEC_SAT,
    00107     XOCFI_ORBIT_EXTRA_EARTH_ROTATION_ANGLE,
    00108     XOCFI_ORBIT_EXTRA_RA_SAT_D,
    00109     XOCFI_ORBIT_EXTRA_RA_SAT_2D,
    00110     XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT,
    00111     XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT_D,
    00112     XOCFI_ORBIT_EXTRA_OSC_TRUE_LAT_2D,
    00113     XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS
    00114
    00115   } OrbitExtraModelMKOIndependantEnum;
    00116
    00118   typedef enum
    00119   {
    00120     // model independant
    00121     XOCFI_ORBIT_EXTRA_NO_RESULTS        = 0,
    00122     XOCFI_ORBIT_EXTRA_GEOLOCATION       = 1,
    00123     XOCFI_ORBIT_EXTRA_GEOLOCATION_D     = 2,
    00124     XOCFI_ORBIT_EXTRA_GEOLOCATION_2D    = 4,
    00125     XOCFI_ORBIT_EXTRA_GEOLOCATION_EXTRA = 8,
    00126     XOCFI_ORBIT_EXTRA_EARTH_FIXED_D     = 16,
    00127     XOCFI_ORBIT_EXTRA_EARTH_FIXED_2D    = 32,
    00128     XOCFI_ORBIT_EXTRA_SUN               = 64,
    00129     XOCFI_ORBIT_EXTRA_MOON              = 128,
    00130     XOCFI_ORBIT_EXTRA_OSCULATING_KEPLER = 256,
    00131     XOCFI_ORBIT_EXTRA_INERTIAL_AUX      = 512,
    00132     // model dependant
    00133     XOCFI_ORBIT_EXTRA_DEP_ANX_TIMING    = 1024,
    00134     XOCFI_ORBIT_EXTRA_DEP_MEAN_KEPLER   = 2048,
    00135     XOCFI_ORBIT_EXTRA_ALL_RESULTS       = 4095
    00136
    00137   }OrbitExtraChoiceEnum;
    00138
    00140   typedef enum
    00141   {
    00142     XOCFI_SAT_DEFAULT     = XLCFI_SAT_DEFAULT,
    00143     XOCFI_SAT_DEFAULT1    = XLCFI_SAT_DEFAULT1,
    00144     XOCFI_SAT_DEFAULT2    = XLCFI_SAT_DEFAULT2,
    00145     XOCFI_SAT_DEFAULT3    = XLCFI_SAT_DEFAULT3,
    00146     XOCFI_SAT_DEFAULT4    = XLCFI_SAT_DEFAULT4,
    00147     XOCFI_SAT_DEFAULT5    = XLCFI_SAT_DEFAULT5,
    00148     XOCFI_SAT_DEFAULT6    = XLCFI_SAT_DEFAULT6,
    00149     XOCFI_SAT_DEFAULT7    = XLCFI_SAT_DEFAULT7,
    00150     XOCFI_SAT_DEFAULT8    = XLCFI_SAT_DEFAULT8,
    00151     XOCFI_SAT_DEFAULT9    = XLCFI_SAT_DEFAULT9,
    00152     XOCFI_SAT_ERS1        = XLCFI_SAT_ERS1,
    00153     XOCFI_SAT_ERS2        = XLCFI_SAT_ERS2,
    00154     XOCFI_SAT_ENVISAT     = XLCFI_SAT_ENVISAT,
    00155     XOCFI_SAT_METOP1      = XLCFI_SAT_METOP1,
    00156     XOCFI_SAT_METOP2      = XLCFI_SAT_METOP2,
    00157     XOCFI_SAT_METOP3      = XLCFI_SAT_METOP3,
    00158     XOCFI_SAT_CRYOSAT     = XLCFI_SAT_CRYOSAT,
    00159     XOCFI_SAT_ADM         = XLCFI_SAT_ADM,
    00160     XOCFI_SAT_GOCE        = XLCFI_SAT_GOCE,
    00161     XOCFI_SAT_SMOS        = XLCFI_SAT_SMOS,
    00162     XOCFI_SAT_TERRASAR    = XLCFI_SAT_TERRASAR,
    00163     XOCFI_SAT_EARTHCARE   = XLCFI_SAT_EARTHCARE,
    00164     XOCFI_SAT_SWARM_A     = XLCFI_SAT_SWARM_A,
    00165     XOCFI_SAT_SWARM_B     = XLCFI_SAT_SWARM_B,
    00166     XOCFI_SAT_SWARM_C     = XLCFI_SAT_SWARM_C,
    00167     XOCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A,
    00168     XOCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B,
    00169     XOCFI_SAT_SENTINEL_2  = XLCFI_SAT_SENTINEL_2,
    00170     XOCFI_SAT_SENTINEL_3  = XLCFI_SAT_SENTINEL_3,
    00171     XOCFI_SAT_SEOSAT      = XLCFI_SAT_SEOSAT,
    00172     XOCFI_SAT_SENTINEL_1C = XLCFI_SAT_SENTINEL_1C,
    00173     XOCFI_SAT_SENTINEL_2A = XLCFI_SAT_SENTINEL_2A,
    00174     XOCFI_SAT_SENTINEL_2B = XLCFI_SAT_SENTINEL_2B,
    00175     XOCFI_SAT_SENTINEL_2C = XLCFI_SAT_SENTINEL_2C,
    00176     XOCFI_SAT_SENTINEL_3A = XLCFI_SAT_SENTINEL_3A,
    00177     XOCFI_SAT_SENTINEL_3B = XLCFI_SAT_SENTINEL_3B,
    00178     XOCFI_SAT_SENTINEL_3C = XLCFI_SAT_SENTINEL_3C,
    00179     XOCFI_SAT_GENERIC     = XLCFI_SAT_GENERIC,
    00180     // AN-353
    00181     XOCFI_SAT_GENERIC_GEO = XLCFI_SAT_GENERIC_GEO,
    00182     XOCFI_SAT_MTG         = XLCFI_SAT_MTG
    00183     // END AN-353
    00184   } SatIdOrbitEnum;
    00185
    00187   typedef enum
    00188   {
    00189     XOCFI_TIME_UNDEF = XLCFI_TIME_UNDEF,
    00190     XOCFI_TIME_TAI   = XLCFI_TIME_TAI,
    00191     XOCFI_TIME_UTC   = XLCFI_TIME_UTC,
    00192     XOCFI_TIME_UT1   = XLCFI_TIME_UT1,
    00193     XOCFI_TIME_GPS   = XLCFI_TIME_GPS
    00194   } TimeRefOrbitEnum;
    00195
    00197   typedef enum
    00198   {
    00199     XOCFI_TIME_REF_OF_TAI   = XDCFI_TIME_REF_OF_TAI,
    00200     XOCFI_TIME_REF_OF_UTC   = XDCFI_TIME_REF_OF_UTC,
    00201     XOCFI_TIME_REF_OF_UT1   = XDCFI_TIME_REF_OF_UT1,
    00202     XOCFI_TIME_REF_OF_GPS   = XDCFI_TIME_REF_OF_GPS
    00203   } TimeRefOfOrbitEnum;
    00204
    00206   typedef enum
    00207   {
    00208     XOCFI_SEL_FILE = 0,
    00209     XOCFI_SEL_TIME,
    00210     XOCFI_SEL_ORBIT,
    00211     XOCFI_SEL_DEFAULT
    00212   } InitModeEnum;
    00213
    00215   typedef enum
    00216   {
    00217     XOCFI_ORBIT_INIT_UNKNOWN_MODE      = -1,
    00218     XOCFI_ORBIT_INIT_AUTO              = XDCFI_AUTO,
    00219     XOCFI_ORBIT_INIT_ORBIT_CHANGE_MODE = XDCFI_ORBIT_CHANGE,
    00220     XOCFI_ORBIT_INIT_STATE_VECTOR_MODE = XDCFI_STATE_VECTOR,
    00221     XOCFI_ORBIT_INIT_OSF_MODE          = XDCFI_OSF_TYPE,
    00222     XOCFI_ORBIT_INIT_POF_MODE          = XDCFI_POF_TYPE,
    00223     XOCFI_ORBIT_INIT_ROF_MODE          = XDCFI_ROF_TYPE,
    00224     XOCFI_ORBIT_INIT_DORIS_MODE        = XDCFI_DORIS_TYPE,
    00225     XOCFI_ORBIT_INIT_POF_N_DORIS_MODE  = XDCFI_POF_N_DORIS_TYPE,
    00226     XOCFI_ORBIT_INIT_OEF_OSF_MODE      = XDCFI_OEF_OSF_TYPE,
    00227     XOCFI_ORBIT_INIT_OEF_POF_MODE      = XDCFI_OEF_POF_TYPE,
    00228     XOCFI_ORBIT_INIT_TLE_MODE          = XDCFI_TLE_TYPE,
    00229     XOCFI_ORBIT_INIT_STATE_VECTOR_PRECISE_MODE,
    00230     XOCFI_ORBIT_INIT_POF_PRECISE_MODE,
    00231     XOCFI_ORBIT_INIT_ROF_PRECISE_MODE,
    00232     XOCFI_ORBIT_INIT_DORIS_PRECISE_MODE,
    00233     XOCFI_ORBIT_INIT_OEF_POF_PRECISE_MODE,
    00234     XOCFI_ORBIT_INIT_POF_N_DORIS_PRECISE_MODE,
    00235     XOCFI_ORBIT_INIT_GEO_LON_MODE,   // Added for AN-353
    00236     XOCFI_ORBIT_INIT_MAX_VALUE
    00237
    00238   } OrbitInitModeEnum;
    00239
    00241   typedef enum
    00242   {
    00243     XOCFI_INTERPOL_MODEL_DEFAULT = 0
    00244   } InterpolModelEnum;
    00245
    00247   typedef enum
    00248   {
    00249     XOCFI_PROPAG_MODEL_MEAN_KEPL  = 0,
    00250     XOCFI_PROPAG_MODEL_SPOT       = 1,
    00251     XOCFI_PROPAG_MODEL_TLE        = 2,
    00252     XOCFI_PROPAG_MODEL_PRECISE    = 3,
    00253     XOCFI_PROPAG_MODEL_AUTO       = 10,
    00254     XOCFI_PROPAG_MODEL_DOUBLE     = 100
    00255   } PropagModelEnum;
    00256
    00258   typedef enum
    00259   {
    00260     XOCFI_NOSUNSYNC_DRIFT = 0,
    00261     XOCFI_NOSUNSYNC_INCLINATION,
    00262     XOCFI_NOSUNSYNC_DRIFT_NONLINEAR,
    00263     XOCFI_NOSUNSYNC_USE_SIM_MODEL = 10
    00264   } NoSunSychronousModeEnum;
    00265
    00267   typedef enum
    00268   {
    00269      XOCFI_OSV_PRECISE_NO = 1,
    00270      XOCFI_OSV_PRECISE_MINUTE,
    00271      XOCFI_OSV_PRECISE_TEN_SECONDS
    00272
    00273   } OsvPreciseEnum;
    00274
    00276   typedef enum
    00277   {
    00278     XOCFI_REF_FILETYPE_OSF = 1,
    00279     XOCFI_REF_FILETYPE_OEF_OSF,
    00280     XOCFI_REF_FILETYPE_POF,
    00281     XOCFI_REF_FILETYPE_OEF_POF,
    00282     XOCFI_REF_FILETYPE_DORIS_NAV,
    00283     XOCFI_REF_FILETYPE_ROF,
    00284     XOCFI_REF_FILETYPE_DORIS_PREM,
    00285     XOCFI_REF_FILETYPE_DORIS_PREC
    00286
    00287   } RefFiletypeEnum;
    00288
    00290   typedef enum
    00291   {
    00292      XOCFI_NO_PHASE_INCREMENT = 0,
    00293      XOCFI_PHASE_INCREMENT = 1
    00294   } GenOsfPhaseIncrementEnum;
    00295
    00297   typedef enum
    00298   {
    00299      XOCFI_FIT_TLE = 0,
    00300      XOCFI_ONE_TLE_PER_OSV
    00301   } TLEFitModeEnum;
    00302
    00304   typedef enum
    00305   {
    00306      XOCFI_SEARCH_FORWARD  =  1,
    00307      XOCFI_SEARCH_BACKWARD = -1
    00308   } GenOsfSearchDirectionEnum;
    00309
    00311   typedef enum
    00312   {
    00313     XOCFI_DEFAULT_VALUES = XDCFI_DEFAULT_VALUES,
    00314     XOCFI_USER_VALUES    = XDCFI_USER_VALUES
    00315   } OrbitPrecisePropagUserFlagEnum;
    00316
    00318   typedef enum
    00319   {
    00320     XOCFI_NOT_SELECT = XDCFI_NOT_SELECT,
    00321     XOCFI_SELECT     = XDCFI_SELECT
    00322   } OrbitPrecisePropagSelectionFlagEnum;
    00323
    00325   typedef enum
    00326   {
    00327     XOCFI_SGA_USE_PARAMETERS        = XDCFI_SGA_USE_PARAMETERS,
    00328     XOCFI_SGA_READ_VALUES_FROM_FILE = XDCFI_SGA_READ_VALUES_FROM_FILE
    00329   } OrbitPrecisePropagSgaFlagEnum;
    00330
    00332   typedef enum
    00333   {
    00334     XOCFI_GC_LONGITUDE_ONLY
    00335   } GeoCoordEnum; // Created for AN-353
    00336
    00337   //------------------------------------------------------
    00338   // DATA STRUCTURES
    00339   //------------------------------------------------------
    00340
    00342   class ANXExtra
    00343   {
    00344     public:
    00345       long absOrbit;
    00346       double tAnx;
    00347       double tNod;
    00348
    00350       ANXExtra()
    00351       {
    00352          absOrbit = -1;
    00353          tAnx = -1;
    00354          tNod = -1;
    00355       };
    00356
    00358       ANXExtra( long absOrb, double timeAnx, double timeNod )
    00359       {
    00360          absOrbit = absOrb;
    00361          tAnx = timeAnx;
    00362          tNod = timeNod;
    00363       }
    00364
    00365   };
    00366
    00368   class ValidityTime
    00369   {
    00370      public:
    00371       long timeRef;
    00372       double start;
    00373       double stop;
    00374
    00376       ValidityTime()
    00377       {
    00378          timeRef = -1;
    00379          start = -1;
    00380          stop = -1;
    00381       }
    00382
    00384       ValidityTime( long timeReference, double startVal, double stopVal )
    00385       {
    00386          timeRef = timeReference;
    00387          start = startVal;
    00388          stop = stopVal;
    00389       }
    00390   };
    00391
    00393   class OrbitInfo
    00394   {
    00395      public:
    00396       long absOrbit;
    00397       long relOrbit;
    00398       long cycle;
    00399       long phase;
    00400
    00402       OrbitInfo()
    00403       {
    00404          absOrbit = -1;
    00405          relOrbit = -1;
    00406          cycle = -1;
    00407          phase = -1;
    00408       }
    00409
    00411       OrbitInfo( long absoluteOrbit, long relativeOrbit, long cycleOrbit,
    00412                  long phaseOrbit)
    00413       {
    00414          absOrbit = absoluteOrbit;
    00415          relOrbit = relativeOrbit;
    00416          cycle = cycleOrbit;
    00417          phase = phaseOrbit;
    00418       }
    00419
    00420   };
    00421
    00423   class StateVectorInfo
    00424   {
    00425      public:
    00426       double pos[3];
    00427       double vel[3];
    00428       double acc[3];
    00429
    00431       StateVectorInfo()
    00432       {
    00433         pos[0] = 0.; vel[1] = 0.; acc[2] = 0.;
    00434         pos[0] = 0.; vel[1] = 0.; acc[2] = 0.;
    00435         pos[0] = 0.; vel[1] = 0.; acc[2] = 0.;
    00436       }
    00437
    00439       StateVectorInfo( double *posIn, double *velIn, double *accIn )
    00440       {
    00441         pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2];
    00442         pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2];
    00443         pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2];
    00444       }
    00445   };
    00446
    00448   class StateVectorExtraInfo
    00449   {
    00450      public:
    00451       double modelDep[XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS];
    00452       double modelIndep[XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS];
    00453
    00455       StateVectorExtraInfo()
    00456       {
    00457         int i;
    00458         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS ; i++ )
    00459           modelDep[i] = 0.;
    00460         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS ; i++ )
    00461           modelIndep[i] = 0.;
    00462       }
    00463
    00465       StateVectorExtraInfo( double *model, double *extra )
    00466       {
    00467         int i;
    00468         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS ; i++ )
    00469           modelDep[i] = model[i];
    00470         for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS ; i++ )
    00471           modelIndep[i] = extra[i];
    00472       }
    00473   };
    00474
    00476   class AnxInfo
    00477   {
    00478      public:
    00479       double anxTai;
    00480       double anxUtc;
    00481       double anxUt1;
    00482       double anxPos[3];
    00483       double anxVel[3];
    00484       double kepl[6];
    00485       double tNod;
    00486   };
    00487
    00489   class RefOrbitInfo
    00490   {
    00491      public:
    00492       long driftMode;
    00493       double inclination;
    00494       long repCycle;
    00495       long cycleLength;
    00496       double AnxLong;
    00497       double mlst;
    00498       double mlstDrift;
    00499       MlstNonlinearDrift mlstNonlinearDrift;
    00500   };
    00501
    00503   class OsfRecords
    00504   {
    00505      public:
    00506       OrbitInfo missionInfo;
    00507       RefOrbitInfo refOrbitinfo;
    00508       AnxInfo anxInfo;
    00509   };
    00510
    00512   class OrbitalInfo
    00513   {
    00514     public:
    00515       long absOrbit;
    00516       long repCycle;
    00517       long cycLength;
    00518       double mlstDrift;
    00519       double mlst;
    00520       double phasing;
    00521       double utcAnx;
    00522       double posAnx[3];
    00523       double velAnx[3];
    00524       double meanKep[6];
    00525       double oscKep[6];
    00526       double nodalPeriod;
    00527   };
    00528
    00529   // AN-353
    00531   class GeoGeodCoord
    00532   {
    00533     public:
    00534       double gcLongitude;
    00535       double gdLatitude;
    00536       double gdAltitude;
    00537   };
    00538
    00540   class GeoOrbitInfo
    00541   {
    00542     public:
    00543       GeoGeodCoord geodCoord;
    00544   };
    00545
    00547   class GeoOrbitInitData
    00548   {
    00549     public:
    00550       long type;
    00551       GeoOrbitInfo geoOrbitInfo;
    00552   };
    00553   // END AN-353
    00554
    00555 } // closing namespace
    00556
    00557 #endif