Skip to content

Introduction

This user guide shows you how to use RAstro with a walk through of its modules, step by step.

Like RAstro, each section builds on previous ones but are each treated as separate topics allowing you to go directly to any specific topic or application of interest. This section is meant to provide a practical walk through of the library.

Validation

A Validation section provides information on the validation and verification steps used to provide indepdent confirmation of the correctness of the RAstro library implementation.

Library Architecture

Any astrodynamics library is a complex system that has to balance software implementation considerations with the underlying scientific models. RAstro is built based off of an astrodynamics-first principle with the belief that the software architecture should reflect the development of physics-based concepts at play. It is hoped that it will be easier for new users to navigate and learn software by logically grouping the software with respect to similar concepts taught in books and in schools. This enables users to apply their physics-based intuition in understanding the software.

With this development approach in mind RAstro is built starting from fundamental concepts like fixed-constants, time, and reference frames. Using these foundational functions higher level abstractions for more complex analysis like orbit dynamics and orbit propagation are built.

RAstro provides the following major modules and capabilities:

Module Description
constants Defined fixed mathematical and physicals constants.
data Provides functionality for loading fixed and time-varying empirical modeling data.
time Data structures and functions for handling time representation, including transformation between time systems.
orbits Functions for representing and analyzing orbital trajectories in terms of orbital elements and related parameters.
coordinates Transformations between different coordinate represtations of object state.
refsys Implementation of different reference systems and transformation between them.
orbit_dynamics Models of orbital dynamics. Includes both conservative and non-conservative forces.
tle Functions for handling Two-Line Elements and associate SGP propagators.
attitude Object orientation representation.
propagators Implementation of specific dynamics propagators
relative_motion Orbit and coordinate transforms for representation and analysis of satellite relative motion
math Mathematical support functions including numerical integrators used for propagation.

Design Tenets

RAstro has a few design tenets that have guided the implementation to improve overall usability and safety. Safety in this case means that the user should be protected from using models incorrectly and from making unintentional assumptions based on internal implementation details.

The first such tenet is that all parameter values and function specifications of RAstro assume that the inputs and outputs are in SI base units. This is made so that at no point does the user have to check if inputs or outputs are of the right type. This allows for functions and parameters of RAstro to be directly composable.

The second tenet is that the default values for frequent operations and functions should be chosen to be consistent with the most common use cases as well as with the highest fidelity models possible. Users should not have to spend significant effort to build accurate, high-fidelity models. That work should be provided by the library whenever possible.

The third tenet is that it is better to be explicit rather than implicit whenever possible. This ensures that the user must make conscious decisions about which parameter values to use, which functions to call. This tenet is sometimes in conflict with the second and in these cases the second tenent of usability is the preferred option with implementation assumptions captured in documentation and in code.

Back to top