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 AdditionalStateProvider This interface allows to modifySpacecraftState
and set up additional state data.BoundedPropagator This interface is intended for ephemerides valid only during a time range.EphemerisGenerator Generator for ephemerides.FieldAdditionalStateProvider<T extends CalculusFieldElement<T>> This interface allows to modifyFieldSpacecraftState
and set up additional state 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. -
Class Summary Class Description AbstractMatricesHarvester Base harvester between two-dimensional Jacobian matrices and one-dimensionaladditional state arrays
.AbstractPropagator Common handling ofPropagator
methods for analytical propagators.AbstractStateCovarianceInterpolator Abstract class for orbit and state covariance interpolator.AbstractStateModifier Abstract base class for modifying state during propagation.FieldAbstractPropagator<T extends CalculusFieldElement<T>> Common handling ofPropagator
methods for analytical propagators.FieldAbstractStateModifier<T extends CalculusFieldElement<T>> Abstract base class for modifying state during propagation.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.FieldStateCovariance<T extends CalculusFieldElement<T>> This class is the representation of a covariance matrix at a given date.PropagatorsParallelizer This class provides a way to propagate simultaneously several orbits.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.StateCovariance This class is the representation of a covariance matrix at a given date.StateCovarianceBlender State covariance blender.StateCovarianceKeplerianHermiteInterpolator State covariance Keplerian quintic interpolator.StateCovarianceMatrixProvider Additional state provider for state covariance matrix. -
Enum Summary Enum Description PropagationType Enumerate to define the propagation type used by the propagator.