org.orekit.propagation.analytical.tle
Class TLEPropagator

java.lang.Object
  extended by org.orekit.propagation.AbstractPropagator
      extended by org.orekit.propagation.analytical.tle.TLEPropagator
All Implemented Interfaces:
Serializable, Propagator, PVCoordinatesProvider

public abstract class TLEPropagator
extends AbstractPropagator
implements Serializable

This class provides elements to propagate TLE's.

The models used are SGP4 and SDP4, initially proposed by NORAD as the unique convenient propagator for TLE's. Inputs and outputs of this propagator are only suited for NORAD two lines elements sets, since it uses estimations and mean values appropriate for TLE's only.

Deep- or near- space propagator is selected internally according to NORAD recommendations so that the user has not to worry about the used computation methods. One instance is created for each TLE (this instance can only be get using selectExtrapolator(TLE) method, and can compute position and velocity coordinates at any time. Maximum accuracy is guaranteed in a 24h range period before and after the provided TLE epoch (of course this accuracy is not really measurable nor predictable: according to CelesTrak, the precision is close to one kilometer and error won't probably rise above 2 km).

This implementation is largely inspired from the paper and source code Revisiting Spacetrack Report #3 and is fully compliant with its results and tests cases.

Author:
Felix R. Hoots, Ronald L. Roehrich, December 1980 (original fortran), David A. Vallado, Paul Crawford, Richard Hujsak, T.S. Kelso (C++ translation and improvements), Fabien Maussion (java translation)
See Also:
TLE, Serialized Form

Field Summary
protected  double a
          final semi major axis.
protected  double a0dp
          original recovered semi major axis.
protected  double beta0
          sqrt (1 - e2).
protected  double beta02
          1 - e2.
protected  double c1
          C1 from SPTRCK #3.
protected  double c2
          C2 from SPTRCK #3.
protected  double c4
          C4 from SPTRCK #3.
protected  double coef
          coef for SGP C3 computation.
protected  double coef1
          coef for SGP C5 computation.
protected  double cosi0
          cosinus original inclination.
protected  double e
          final eccentricity.
protected  double e0sq
          original eccentricity squared.
protected  double eeta
          original eccentricity * eta.
protected  double eta
          eta from SPTRCK #3.
protected  double etasq
          eta squared.
protected  double i
          final inclination.
protected  double omega
          final perigee argument.
protected  double omgdot
          common parameter for perigee argument (omega) computation.
protected  double perige
          perigee, expressed in KM and ALTITUDE.
protected  double s4
          s* new value for the contant s.
protected  double sini0
          sinus original inclination.
protected  double t2cof
          3/2 * C1.
protected  double theta2
          cos io squared.
protected  TLE tle
          Initial state.
protected  double tsi
          tsi from SPTRCK #3.
protected  double xl
          L from SPTRCK #3.
protected  double xmdot
          common parameter for mean anomaly (M) computation.
protected  double xn0dp
          original recovered mean motion.
protected  double xnodcf
          common parameter for raan (OMEGA) computation.
protected  double xnode
          final RAAN.
protected  double xnodot
          common parameter for raan (OMEGA) computation.
 
Fields inherited from class org.orekit.propagation.AbstractPropagator
MASS
 
Fields inherited from interface org.orekit.propagation.Propagator
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
 
Constructor Summary
protected TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProviderForces, AttitudeProvider attitudeProviderEvents, MassProvider mass)
          Protected constructor for derived classes.
protected TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProvider, MassProvider mass)
          Protected constructor for derived classes.
 
Method Summary
 Frame getFrame()
          Get the frame in which the orbit is propagated.
 PVCoordinates getPVCoordinates(AbsoluteDate date)
          Get the extrapolated position and velocity from an initial TLE.
 TLE getTLE()
          Get the underlying TLE.
protected  Orbit propagateOrbit(AbsoluteDate date)
          Extrapolate an orbit up to a specific target date.
static TLEPropagator selectExtrapolator(TLE tle)
          Selects the extrapolator to use with the selected TLE.
static TLEPropagator selectExtrapolator(TLE tle, AttitudeProvider attitudeProviderForces, AttitudeProvider attitudeProviderEvents, MassProvider mass)
          Selects the extrapolator to use with the selected TLE.
static TLEPropagator selectExtrapolator(TLE tle, AttitudeProvider attitudeProvider, MassProvider mass)
          Selects the extrapolator to use with the selected TLE.
protected abstract  void sxpInitialize()
          Initialization proper to each propagator (SGP or SDP).
protected abstract  void sxpPropagate(double t)
          Propagation proper to each propagator (SGP or SDP).
 
Methods inherited from class org.orekit.propagation.AbstractPropagator
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getGeneratedEphemeris, getInitialState, getMode, getPVCoordinates, getPvProvider, manageStateFrame, propagate, propagate, resetInitialState, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tle

protected final TLE tle
Initial state.


xnode

protected double xnode
final RAAN.


a

protected double a
final semi major axis.


e

protected double e
final eccentricity.


i

protected double i
final inclination.


omega

protected double omega
final perigee argument.


xl

protected double xl
L from SPTRCK #3.


a0dp

protected double a0dp
original recovered semi major axis.


xn0dp

protected double xn0dp
original recovered mean motion.


cosi0

protected double cosi0
cosinus original inclination.


theta2

protected double theta2
cos io squared.


sini0

protected double sini0
sinus original inclination.


xmdot

protected double xmdot
common parameter for mean anomaly (M) computation.


omgdot

protected double omgdot
common parameter for perigee argument (omega) computation.


xnodot

protected double xnodot
common parameter for raan (OMEGA) computation.


e0sq

protected double e0sq
original eccentricity squared.


beta02

protected double beta02
1 - e2.


beta0

protected double beta0
sqrt (1 - e2).


perige

protected double perige
perigee, expressed in KM and ALTITUDE.


etasq

protected double etasq
eta squared.


eeta

protected double eeta
original eccentricity * eta.


s4

protected double s4
s* new value for the contant s.


tsi

protected double tsi
tsi from SPTRCK #3.


eta

protected double eta
eta from SPTRCK #3.


coef

protected double coef
coef for SGP C3 computation.


coef1

protected double coef1
coef for SGP C5 computation.


c1

protected double c1
C1 from SPTRCK #3.


c2

protected double c2
C2 from SPTRCK #3.


c4

protected double c4
C4 from SPTRCK #3.


xnodcf

protected double xnodcf
common parameter for raan (OMEGA) computation.


t2cof

protected double t2cof
3/2 * C1.

Constructor Detail

TLEPropagator

protected TLEPropagator(TLE initialTLE,
                        AttitudeProvider attitudeProvider,
                        MassProvider mass)
                 throws OrekitException
Protected constructor for derived classes.

Parameters:
initialTLE - the unique TLE to propagate
attitudeProvider - provider for attitude computation
mass - spacecraft mass (kg)
Throws:
OrekitException - if some specific error occurs

TLEPropagator

protected TLEPropagator(TLE initialTLE,
                        AttitudeProvider attitudeProviderForces,
                        AttitudeProvider attitudeProviderEvents,
                        MassProvider mass)
                 throws OrekitException
Protected constructor for derived classes.

Parameters:
initialTLE - the unique TLE to propagate
attitudeProviderForces - provider for attitude computation in forces computation case
attitudeProviderEvents - provider for attitude computation in events computation case
mass - spacecraft mass (kg)
Throws:
OrekitException - if some specific error occurs
Method Detail

selectExtrapolator

public static TLEPropagator selectExtrapolator(TLE tle)
                                        throws OrekitException
Selects the extrapolator to use with the selected TLE.

Parameters:
tle - the TLE to propagate.
Returns:
the correct propagator.
Throws:
OrekitException - if the underlying model cannot be initialized

selectExtrapolator

public static TLEPropagator selectExtrapolator(TLE tle,
                                               AttitudeProvider attitudeProvider,
                                               MassProvider mass)
                                        throws OrekitException
Selects the extrapolator to use with the selected TLE.

Parameters:
tle - the TLE to propagate.
attitudeProvider - provider for attitude computation
mass - spacecraft mass (kg)
Returns:
the correct propagator.
Throws:
OrekitException - if the underlying model cannot be initialized

selectExtrapolator

public static TLEPropagator selectExtrapolator(TLE tle,
                                               AttitudeProvider attitudeProviderForces,
                                               AttitudeProvider attitudeProviderEvents,
                                               MassProvider mass)
                                        throws OrekitException
Selects the extrapolator to use with the selected TLE.

Parameters:
tle - the TLE to propagate.
attitudeProviderForces - provider for attitude computation in forces computation case
attitudeProviderEvents - provider for attitude computation in events computation case
mass - spacecraft mass (kg)
Returns:
the correct propagator.
Throws:
OrekitException - if the underlying model cannot be initialized

getPVCoordinates

public PVCoordinates getPVCoordinates(AbsoluteDate date)
                               throws OrekitException
Get the extrapolated position and velocity from an initial TLE.

Parameters:
date - the final date
Returns:
the final PVCoordinates
Throws:
OrekitException - if propagation cannot be performed at given date

sxpInitialize

protected abstract void sxpInitialize()
                               throws OrekitException
Initialization proper to each propagator (SGP or SDP).

Throws:
OrekitException - if some specific error occurs

sxpPropagate

protected abstract void sxpPropagate(double t)
                              throws OrekitException
Propagation proper to each propagator (SGP or SDP).

Parameters:
t - the offset from initial epoch (min)
Throws:
OrekitException - if current state cannot be propagated

propagateOrbit

protected Orbit propagateOrbit(AbsoluteDate date)
                        throws PropagationException
Extrapolate an orbit up to a specific target date.

Specified by:
propagateOrbit in class AbstractPropagator
Parameters:
date - target date for the orbit
Returns:
extrapolated parameters
Throws:
PropagationException - if some parameters are out of bounds

getTLE

public TLE getTLE()
Get the underlying TLE.

Returns:
underlying TLE

getFrame

public Frame getFrame()
Get the frame in which the orbit is propagated.

4 cases are possible:

Specified by:
getFrame in interface Propagator
Overrides:
getFrame in class AbstractPropagator
Returns:
frame in which the orbit is propagated


Copyright © 2016 CNES. All Rights Reserved.