Earth Observation Mission CFI Software Orbit Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.6 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: OrbitData.h,v 1.23 2013-09-18 07:43:59 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_TLE_SDP4_MODE, // AN-494 00237 XOCFI_ORBIT_INIT_TLE_SGP4_MODE, // AN-494 00238 XOCFI_ORBIT_INIT_USER_OSV_LIST_MODE, // AN-497 00239 XOCFI_ORBIT_INIT_MAX_VALUE 00240 00241 } OrbitInitModeEnum; 00242 00244 typedef enum 00245 { 00246 XOCFI_INTERPOL_MODEL_DEFAULT = 0 00247 } InterpolModelEnum; 00248 00250 typedef enum 00251 { 00252 // AN-497 00253 XOCFI_PROPAG_MODEL_NOT_INITIALIZED = -1, 00254 XOCFI_PROPAG_MODEL_MEAN_KEPL = 0, 00255 XOCFI_PROPAG_MODEL_SPOT = 1, 00256 XOCFI_PROPAG_MODEL_TLE = 2, 00257 XOCFI_PROPAG_MODEL_PRECISE = 3, 00258 XOCFI_PROPAG_MODEL_GEO = 4, 00259 XOCFI_PROPAG_MODEL_AUTO = 10, 00260 XOCFI_PROPAG_MODEL_DOUBLE = 100 00261 } PropagModelEnum; 00262 00264 typedef enum 00265 { 00266 XOCFI_NOSUNSYNC_DRIFT = 0, 00267 XOCFI_NOSUNSYNC_INCLINATION, 00268 XOCFI_NOSUNSYNC_DRIFT_NONLINEAR, 00269 XOCFI_NOSUNSYNC_USE_SIM_MODEL = 10 00270 } NoSunSychronousModeEnum; 00271 00273 typedef enum 00274 { 00275 XOCFI_OSV_PRECISE_NO = 1, 00276 XOCFI_OSV_PRECISE_MINUTE, 00277 XOCFI_OSV_PRECISE_TEN_SECONDS 00278 00279 } OsvPreciseEnum; 00280 00282 typedef enum 00283 { 00284 XOCFI_REF_FILETYPE_OSF = 1, 00285 XOCFI_REF_FILETYPE_OEF_OSF, 00286 XOCFI_REF_FILETYPE_POF, 00287 XOCFI_REF_FILETYPE_OEF_POF, 00288 XOCFI_REF_FILETYPE_DORIS_NAV, 00289 XOCFI_REF_FILETYPE_ROF, 00290 XOCFI_REF_FILETYPE_DORIS_PREM, 00291 XOCFI_REF_FILETYPE_DORIS_PREC 00292 00293 } RefFiletypeEnum; 00294 00296 typedef enum 00297 { 00298 XOCFI_NO_PHASE_INCREMENT = 0, 00299 XOCFI_PHASE_INCREMENT = 1 00300 } GenOsfPhaseIncrementEnum; 00301 00303 typedef enum 00304 { 00305 XOCFI_FIT_TLE = XDCFI_FIT_TLE, 00306 XOCFI_FIT_TLE_LIST = XDCFI_FIT_TLE_LIST, 00307 XOCFI_ONE_TLE_PER_OSV = XDCFI_ONE_TLE_PER_OSV 00308 } TLEFitModeEnum; 00309 00311 typedef enum 00312 { 00313 XOCFI_SEARCH_FORWARD = 1, 00314 XOCFI_SEARCH_BACKWARD = -1 00315 } GenOsfSearchDirectionEnum; 00316 00318 typedef enum 00319 { 00320 XOCFI_DEFAULT_VALUES = XDCFI_DEFAULT_VALUES, 00321 XOCFI_USER_VALUES = XDCFI_USER_VALUES 00322 } OrbitPrecisePropagUserFlagEnum; 00323 00325 typedef enum 00326 { 00327 XOCFI_NOT_SELECT = XDCFI_NOT_SELECT, 00328 XOCFI_SELECT = XDCFI_SELECT 00329 } OrbitPrecisePropagSelectionFlagEnum; 00330 00332 typedef enum 00333 { 00334 XOCFI_SGA_USE_PARAMETERS = XDCFI_SGA_USE_PARAMETERS, 00335 XOCFI_SGA_READ_VALUES_FROM_FILE = XDCFI_SGA_READ_VALUES_FROM_FILE 00336 } OrbitPrecisePropagSgaFlagEnum; 00337 00339 typedef enum 00340 { 00341 XOCFI_GC_LONGITUDE_ONLY 00342 } GeoCoordEnum; // Created for AN-353 00343 00344 00346 typedef enum 00347 { 00348 XOCFI_FILTER_OUTLIERS 00349 } OrbitDataFilterEnum; // Created for ANR-382/455 00350 00352 typedef enum 00353 { 00354 XOCFI_REMOVE = 0, 00355 XOCFI_SMOOTH 00356 } OrbitDataFilterActionEnum; // Created for ANR-382/455 00357 00358 //------------------------------------------------------ 00359 // DATA STRUCTURES 00360 //------------------------------------------------------ 00361 00363 class ANXExtra 00364 { 00365 public: 00366 long absOrbit; 00367 double tAnx; 00368 double tNod; 00369 00371 ANXExtra() 00372 { 00373 absOrbit = -1; 00374 tAnx = -1; 00375 tNod = -1; 00376 }; 00377 00379 ANXExtra( long absOrb, double timeAnx, double timeNod ) 00380 { 00381 absOrbit = absOrb; 00382 tAnx = timeAnx; 00383 tNod = timeNod; 00384 } 00385 00386 }; 00387 00389 class ValidityTime 00390 { 00391 public: 00392 long timeRef; 00393 double start; 00394 double stop; 00395 00397 ValidityTime() 00398 { 00399 timeRef = -1; 00400 start = -1; 00401 stop = -1; 00402 } 00403 00405 ValidityTime( long timeReference, double startVal, double stopVal ) 00406 { 00407 timeRef = timeReference; 00408 start = startVal; 00409 stop = stopVal; 00410 } 00411 }; 00412 00414 class OrbitInfo 00415 { 00416 public: 00417 long absOrbit; 00418 long relOrbit; 00419 long cycle; 00420 long phase; 00421 00423 OrbitInfo() 00424 { 00425 absOrbit = -1; 00426 relOrbit = -1; 00427 cycle = -1; 00428 phase = -1; 00429 } 00430 00432 OrbitInfo( long absoluteOrbit, long relativeOrbit, long cycleOrbit, 00433 long phaseOrbit) 00434 { 00435 absOrbit = absoluteOrbit; 00436 relOrbit = relativeOrbit; 00437 cycle = cycleOrbit; 00438 phase = phaseOrbit; 00439 } 00440 00441 }; 00442 00444 class StateVectorInfo 00445 { 00446 public: 00447 double pos[3]; 00448 double vel[3]; 00449 double acc[3]; 00450 00452 StateVectorInfo() 00453 { 00454 pos[0] = 0.; vel[1] = 0.; acc[2] = 0.; 00455 pos[0] = 0.; vel[1] = 0.; acc[2] = 0.; 00456 pos[0] = 0.; vel[1] = 0.; acc[2] = 0.; 00457 } 00458 00460 StateVectorInfo( double *posIn, double *velIn, double *accIn ) 00461 { 00462 pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2]; 00463 pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2]; 00464 pos[0] = posIn[0]; vel[1] = velIn[1]; acc[2] = accIn[2]; 00465 } 00466 }; 00467 00469 class StateVectorExtraInfo 00470 { 00471 public: 00472 double modelDep[XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS]; 00473 double modelIndep[XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS]; 00474 00476 StateVectorExtraInfo() 00477 { 00478 int i; 00479 for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS ; i++ ) 00480 modelDep[i] = 0.; 00481 for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS ; i++ ) 00482 modelIndep[i] = 0.; 00483 } 00484 00486 StateVectorExtraInfo( double *model, double *extra ) 00487 { 00488 int i; 00489 for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_DEP_ELEMENTS ; i++ ) 00490 modelDep[i] = model[i]; 00491 for ( i = 0 ; i < XOCFI_ORBIT_EXTRA_NUM_INDEP_ELEMENTS ; i++ ) 00492 modelIndep[i] = extra[i]; 00493 } 00494 }; 00495 00497 class AnxInfo 00498 { 00499 public: 00500 double anxTai; 00501 double anxUtc; 00502 double anxUt1; 00503 double anxPos[3]; 00504 double anxVel[3]; 00505 double kepl[6]; 00506 double tNod; 00507 }; 00508 00510 class RefOrbitInfo 00511 { 00512 public: 00513 long driftMode; 00514 double inclination; 00515 long repCycle; 00516 long cycleLength; 00517 double AnxLong; 00518 double mlst; 00519 double mlstDrift; 00520 MlstNonlinearDrift mlstNonlinearDrift; 00521 }; 00522 00524 class OsfRecords 00525 { 00526 public: 00527 OrbitInfo missionInfo; 00528 RefOrbitInfo refOrbitinfo; 00529 AnxInfo anxInfo; 00530 }; 00531 00533 class OrbitalInfo 00534 { 00535 public: 00536 long absOrbit; 00537 long repCycle; 00538 long cycLength; 00539 double mlstDrift; 00540 double mlst; 00541 double phasing; 00542 double utcAnx; 00543 double posAnx[3]; 00544 double velAnx[3]; 00545 double meanKep[6]; 00546 double oscKep[6]; 00547 double nodalPeriod; 00548 }; 00549 00550 // AN-353 00552 class GeoGeodCoord 00553 { 00554 public: 00555 double gcLongitude; 00556 double gdLatitude; 00557 double gdAltitude; 00558 }; 00559 00561 class GeoOrbitInfo 00562 { 00563 public: 00564 GeoGeodCoord geodCoord; 00565 }; 00566 00568 class GeoOrbitInitData 00569 { 00570 public: 00571 long type; 00572 GeoOrbitInfo geoOrbitInfo; 00573 }; 00574 // END AN-353 00575 00576 00577 00578 // ANR-382 00580 class OrbitDataFilterOutliersConfiguration 00581 { 00582 public: 00583 OrbitDataFilterOutliersConfiguration() 00584 { 00585 action = XOCFI_REMOVE; 00586 thresholdPos = 0; 00587 thresholdVel = 0; 00588 } 00589 OrbitDataFilterOutliersConfiguration(long a, double p, double v) 00590 { 00591 action = a; 00592 thresholdPos = p; 00593 thresholdVel = v; 00594 } 00595 00596 long action; 00597 double thresholdPos; 00598 double thresholdVel; 00599 }; 00600 00602 class OrbitDataFilterConfiguration 00603 { 00604 public: 00605 OrbitDataFilterConfiguration(){} 00606 00610 OrbitDataFilterConfiguration(long t) 00611 { 00612 type = t; 00613 switch (type) 00614 { 00615 case XOCFI_FILTER_OUTLIERS: outliersConfiguration = OrbitDataFilterOutliersConfiguration(XOCFI_REMOVE, 0, 0); 00616 break; 00617 } 00618 } 00619 00626 OrbitDataFilterConfiguration(long t, long a, double p, double v) 00627 { 00628 type = t; 00629 switch (type) 00630 { 00631 case XOCFI_FILTER_OUTLIERS: outliersConfiguration = OrbitDataFilterOutliersConfiguration(a, p, v); 00632 break; 00633 } 00634 } 00635 long type; 00636 OrbitDataFilterOutliersConfiguration outliersConfiguration; 00637 }; 00638 00640 class OrbitDataFilterOutliersReport 00641 { 00642 public: 00643 OrbitDataFilterOutliersReport() 00644 { 00645 nofOSVin = 0; 00646 nofOSVfiltered = 0; 00647 minTimeGap = 0; 00648 maxTimeGap = 0; 00649 minRMSPos = 0; 00650 maxRMSPos = 0; 00651 minRMSVel = 0; 00652 maxRMSVel = 0; 00653 } 00654 OrbitDataFilterOutliersReport(long in, long fi, double ming, double MaxG, double minp, double MaxP, double minv, double MaxV) 00655 { 00656 nofOSVin = in; 00657 nofOSVfiltered = fi; 00658 minTimeGap = ming; 00659 maxTimeGap = MaxG; 00660 minRMSPos = minp; 00661 maxRMSPos = MaxP; 00662 minRMSVel = minv; 00663 maxRMSVel = MaxV; 00664 } 00665 00666 long nofOSVin; 00667 long nofOSVfiltered; 00668 double minTimeGap; 00669 double maxTimeGap; 00670 double minRMSPos; 00671 double maxRMSPos; 00672 double minRMSVel; 00673 double maxRMSVel; 00674 }; 00675 00677 class OrbitDataFilterReport 00678 { 00679 public: 00680 OrbitDataFilterReport(){} 00681 OrbitDataFilterReport(long t) 00682 { 00683 type = t; 00684 } 00685 00686 long type; 00687 OrbitDataFilterOutliersReport outliersReport; 00688 }; 00689 // END ANR-382 00690 00691 } // closing namespace 00692 00693 #endif