| Earth Observation Mission CFI Software Usage Guide for Object Oriented Software |

# USING DIFFERENT ASTRONOMICAL MODELS

The Earth Observation CFI software allows the user to choose the models for the Earth shape and astronomical calculations. The models that can be chosen are grouped in the following categories (for further details refer to [LIB_SUM]):

- Earth
- Sun
- Moon
- Planet
- Star
- Nutation
- Precession
- Physical and astronomical constants

In order to select the models with which the Earth Observation CFI has to work, the class ModelId has been created. The strategy to use different models is quite simple:

- Create the ModelId object:
  1. With the empty constructor: In this case, the default models will be used
  2. with a vector of enumeration values defining the models to be used:

         vector<long> modelVec;
         modelVec[XLCFI_MODEL_TYPE_EARTH]      = XLCFI_MODEL_EARTH_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_SUN]        = XLCFI_MODEL_SUN_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_MOON]       = XLCFI_MODEL_MOON_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_PLANET]     = XLCFI_MODEL_PLANETS_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_STAR]       = XLCFI_MODEL_STAR_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_NUTATION]   = XLCFI_MODEL_NUTATION_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_PRECESSION] = XLCFI_MODEL_PRECESSION_DEFAULT;
         modelVec[XLCFI_MODEL_TYPE_CONSTANTS]  = XLCFI_MODEL_CONSTANTS_DEFAULT;
         ModelId modelId(XLCFI_MODEL_CONFIG, modelVec);

  Another possibility is to use the empty contructor and then, initialise the models with the init method.
- Those functions that could use different models, will have the ModelId as an input parameter.