$LastChangedDate: 01-Mar-2010 $

# Overview of CelestLab

Overview of CelestLab

## Introduction to CelestLab

CelestLab is a library of space mechanics functions written in Scilab language. This library has been developed and maintained by CNES-DCT/SB/MS (Centre National d’Etudes Spatiales) for mission analysis purposes.

The library is used by CNES for trajectory analysis and orbit design for various types of space missions. CelestLab contains several modules that allow engineers to perform tasks such as: orbit propagation, attitude computation, elementary manoeuvre computation, change of reference frame, change of coordinates …

CelestLab has been validated against CNES flight dynamics reference software. Every function is described in its own help page with selected examples.

The functions are arranged into several categories:

- coordinates_frames : definition of reference frames, types of coordinates and time.
- geometry_event : computation of orbital geometry and orbital events (ground station visibility, ...)
- interplanetary : interplanetary and 3-body problem analysis.
- models : models for atmospheric density, polar motion, Sun and Moon position,...
- orbit_properties : orbit properties (sun sunchronicity, repeating ground tracks, frozen orbits, drift of orbital elements, ...)
- relative_motion : relative trajectory analysis using Clohessy Whiltshire formalism
- trajectory_maneuvers : orbit propagation and maneuver computation
- utils: miscellaneous and multi-purpose functions

## Use of CelestLab (important notice)

Some useful data are predefined in CelestLab. Their names all begin with the prefix "%CL_". They are loaded by a call to CL_init.

Depending on the way CelestLab has been installed, the data may be accessible (as local variables) or not.

- If CelestLab has been installed using ATOMS, the data are not directly accessible in the working environnement. The user must explicitly call the function CL_init for the variables to exist as local variables. This is in particular necessary before executing the examples (given in the functions help pages) that explicitely refer to CelestLab predefined data.

- If CelestLab has been installed "manually", and has been loaded by executing the loader script (exec('CelestLabRoot\loader.sce'), for example in the scilab.ini file), the data are immediately accessible as local variables in the working environment.

The value of CelestLab predefined data may be changed if needed. To do so, it is only needed to change the value of the corresponding local variable.

For example: %CL_mu = 398600.e3 (without any "global" declaration) will change the default value of the gravitational constant in all subsequent calls to CelestLab functions.

Note that the CelestLab demo tool calls CL_init before executing the scripts, therefore giving back all CelestLab predefined data their initial values.