giant.ufo.dynamics

This module defines dynamics models to be used in an EKF for propagating the state and covariance of an estimated target.

Description

The dynamics specify how the target is expected to move in space given initial conditions. They are usually specified as an ODE initial value problem and integrated numerically, although for simple cases a few closed for analytic solutions exist. These models are generally used by the extended_kalman_filter module in order to link observations together and to propagate the state from one time to the next.

Use

This module defines 3 classes for defining Dynamics models. The first, Dynamics is an abstract base class that provides a template for creating a new dynamics model in GIANT.ufo. If you want to create your own custom model, you should subclass this and implement/update the Dynamics.State class describing the state vector for your model, and the abstract methods defined by the abstract class. If you do this then you will be able to use your dynamics model in the EKF (presuming your dynamics model works and describes what it going on).

Alternatively, the there are 2 basic dynamics models provided in this module which you can use directly or subclass and extend with more features. The first SpiceGravityDynamics implements a simple n-body problem dynamics model assuming point mass gravity, using NAIF spice to query the n-body positions at each integration step. The second, SolRadAndGravityDynamics adds cannonball model solar radiation pressure to the simple n-body gravity model. These 2 simple dynamics models are generally sufficient for most things you’ll be tracking in UFO and thus can be used directly. They also serve as examples for implementing/extending your own dynamics models.

Classes

Dynamics

Dynamics classes are used to propagate state and covariance through time.

SolRadAndGravityDynamics

This class adds spherical solar radiation pressure dynamics to the SpiceGravityDynamics class.

SpiceGravityDynamics

This class implements a simple N-Body gravity dynamics model using Spice as the source of the planet locations.

Function

zero3

This simple function returns a length 3 numpy array of zeros.