Package org.orekit.propagation
Propagation
This package provides tools to propagate orbital states with different methods.
Propagation is the prediction of the evolution of an initial state.
The initial state and the propagated states are represented in OREKIT by a
SpacecraftState, which is a simple container
for all needed information at a specific date : mass,
kinematics,
attitude,
date,
frame. The state provides basic interpolation
features allowing to shift it slightly to close dates. For more accurate and
farthest dates, several full-featured propagators are available to propagate
the state.
Keplerian propagation
The KeplerianPropagator
implements the Propagator
interface, which ensures that we can obtain a propagated SpacecraftState
at any time once the instance is initialized with an initial state.
This extrapolation is not a problem with a simple
EquinoctialOrbit
representation: only the mean anomaly value changes.
Eckstein-Hechler propagation
This analytical model is suited for near circular orbits and inclination
neither equatorial nor critical. It considers J2 to J6 potential
coefficients correctors, and uses mean parameters to compute the new
position. As the Keplerian propagator, it implements the
Propagator interface.
TLE propagation
This analytical model allows propagating {org.orekit.propagation.analytical.tle.TLE}
data using SGP4 or SDP4 models. It is very easy to initialize, only the initial
TLE is needed. As the other analytical propagators, it implements the
Propagator interface.
GNSS propagation
These analytical models allow propagating navigation messages such as
in GNSS almanacs available thanks to SEM
or YUMA files. Each GNSS constellation
has its own propagation model availables in org.orekit.propagation.analytical.gnss
package.
Numerical propagation
It is the most important part of the OREKIT project. Based on Hipparchus
integrators, the NumericalPropagator
class realizes the interface between space mechanics and mathematical
resolutions. If its utilization seems difficult on first sight, it is in
fact quite clear and intuitive.
The mathematical problem to integrate is a 6 dimension time derivative
equations system. The six first equations are given by the Gauss equations
(expressed in EquinoctialOrbit).
This first order system is computed
by the TimeDerivativesEquations
class. It will be instanced by the propagator and then be modified at each
step (a fixed t value) by all the needed force models which will add their contribution,
the perturbing acceleration.
The integrators
provided by Hipparchus need the state vector at t0, the state vector first
time derivate at t0, and then calculates the next step state vector, and ask
for the next first time derivative, etc. until it reaches the final asked date.
Semi-analytical propagation
Semi-analytical propagation in Orekit is based on Draper Semi-analytical Satellite Theory (DSST), which is applicable to all orbit types. DSST divides the computation of the osculating orbital elements into two contributions: the mean orbital elements and the short-periodic terms. Both models are developed in the equinoctial orbital elements via the Method of Averaging. Mean orbital elements are computed numerically while short period motion is computed using a combination of analytical and numerical techniques.
- Author:
- Luc Maisonobe, Fabien Maussion, Pascal Parraud
-
Interface Summary Interface Description AdditionalDataProvider<T> This interface allows to modifySpacecraftStateand set up additional data.BoundedPropagator This interface is intended for ephemerides valid only during a time range.CartesianToleranceProvider Interface to define integration tolerances for adaptive schemes (like the embedded Runge-Kutta ones) propagating the position-velocity vector and the mass, for a total of 7 primary dependent variables (in that order).EphemerisGenerator Generator for ephemerides.FieldAdditionalDataProvider<O,T extends CalculusFieldElement<T>> This interface allows to modifyFieldSpacecraftStateand set up additional data.FieldBoundedPropagator<T extends CalculusFieldElement<T>> This interface is intended for ephemerides valid only during a time range.FieldEphemerisGenerator<T extends CalculusFieldElement<T>> Generator for ephemerides.FieldPropagator<T extends CalculusFieldElement<T>> This interface provides a way to propagate an orbit at any time.MatricesHarvester Interface for extracting State Transition Matrices and Jacobians matrices fromspacecraft state.Propagator This interface provides a way to propagate an orbit at any time.ToleranceProvider Interface to define integration tolerances for adaptive schemes (like the embedded Runge-Kutta ones) propagating the position-velocity vector (or an equivalent set of coordinates) and the mass, for a total of 7 primary dependent variables (in that order). -
Class Summary Class Description AbstractMatricesHarvester Base harvester between two-dimensional Jacobian matrices and one-dimensionaladditional state arrays.AbstractPropagator Common handling ofPropagatormethods for propagators.AbstractStateModifier Abstract base class for modifying state during propagation.ConstantCartesianToleranceProvider Class implementing a Cartesian tolerance provider with values independent on input position-velocity vector.FieldAbstractPropagator<T extends CalculusFieldElement<T>> Common handling ofPropagatormethods for analytical propagators.FieldAbstractStateModifier<T extends CalculusFieldElement<T>> Abstract base class for modifying state during propagation.FieldOrbitBlender<T extends CalculusFieldElement<T>> Orbit blender.FieldSpacecraftState<T extends CalculusFieldElement<T>> This class is the representation of a complete state holding orbit, attitude and mass information at a given date, meant primarily for propagation.FieldSpacecraftStateInterpolator<KK extends CalculusFieldElement<KK>> Generic class for spacecraft state interpolator.OrbitBlender Orbit blender.PropagatorsParallelizer This class provides a way to propagate simultaneously several orbits.SimpleToleranceProvider Class implementing a tolerance provider with same relative and absolute tolerances for all dependent variables.SpacecraftState This class is the representation of a complete state holding orbit, attitude and mass information at a given date, meant primarily for propagation.SpacecraftStateInterpolator Generic class for spacecraft state interpolator. -
Enum Summary Enum Description PropagationType Enumerate to define the propagation type used by the propagator.