Class FieldTLEPropagator<T extends CalculusFieldElement<T>>
- Type Parameters:
T- type of the field elements
- All Implemented Interfaces:
FieldPropagator<T>,FieldPVCoordinatesProvider<T>,ParameterDriversProvider
- Direct Known Subclasses:
FieldDeepSDP4,FieldSGP4
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(FieldTLE, CalculusFieldElement[]) 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.
- Since:
- 11.0
- 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), Thomas Paulet (field translation)
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Tfinal semi major axis.protected Toriginal recovered semi major axis.protected Tsqrt (1 - e2).protected T1 - e2.protected TC1 from SPTRCK #3.protected TC2 from SPTRCK #3.protected TC4 from SPTRCK #3.protected Tcoef for SGP C3 computation.protected Tcoef for SGP C5 computation.protected Tcosinus original inclination.protected Tfinal eccentricity.protected Toriginal eccentricity squared.protected Toriginal eccentricity * eta.protected Teta from SPTRCK #3.protected Teta squared.protected Tfinal inclination.protected Tfinal perigee argument.protected Tcommon parameter for perigee argument (omega) computation.protected Tperigee, expressed in KM and ALTITUDE.protected Ts* new value for the contant s.protected Tsinus original inclination.protected T3/2 * C1.protected Tcos io squared.Initial state.protected Ttsi from SPTRCK #3.protected final TimeScaleUTC time scale.protected TL from SPTRCK #3.protected Tcommon parameter for mean anomaly (M) computation.protected Toriginal recovered mean motion.protected Tcommon parameter for raan (OMEGA) computation.protected Tfinal RAAN.protected Tcommon parameter for raan (OMEGA) computation.Fields inherited from interface org.orekit.propagation.FieldPropagator
DEFAULT_MASS -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFieldTLEPropagator(FieldTLE<T> initialTLE, AttitudeProvider attitudeProvider, T mass, Frame teme, T[] parameters) Protected constructor for derived classes.protectedFieldTLEPropagator(FieldTLE<T> initialTLE, AttitudeProvider attitudeProvider, T mass, T[] parameters) Protected constructor for derived classes. -
Method Summary
Modifier and TypeMethodDescriptiongetFrame()Get the frame in which the orbit is propagated.protected TgetMass(FieldAbsoluteDate<T> date) Get the mass.static doublegetMU()Get the Earth gravity coefficient used for TLE propagation.Get the drivers for parameters.getPVCoordinates(FieldAbsoluteDate<T> date, T[] parameters) Get the extrapolated position and velocity from an initial TLE.getTLE()Get the underlying TLE.propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters) Propagate an orbit up to a specific target date.voidresetInitialState(FieldSpacecraftState<T> state) Reset the propagator initial state.protected voidresetIntermediateState(FieldSpacecraftState<T> state, boolean forward) Reset an intermediate state.static <T extends CalculusFieldElement<T>>
FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, AttitudeProvider attitudeProvider, T mass, Frame teme, T[] parameters) Selects the extrapolator to use with the selected TLE.static <T extends CalculusFieldElement<T>>
FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, AttitudeProvider attitudeProvider, T mass, T[] parameters) Selects the extrapolator to use with the selected TLE.static <T extends CalculusFieldElement<T>>
FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, Frame teme, T[] parameters) Selects the extrapolator to use with the selected TLE.static <T extends CalculusFieldElement<T>>
FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, T[] parameters) Selects the extrapolator to use with the selected TLE.protected abstract voidsxpInitialize(T[] parameters) Initialization proper to each propagator (SGP or SDP).protected abstract voidsxpPropagate(T t, T[] parameters) Propagation proper to each propagator (SGP or SDP).Methods inherited from class org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEphemerisGenerator, getEventDetectors, propagateMethods inherited from class org.orekit.propagation.FieldAbstractPropagator
addAdditionalDataProvider, getAdditionalDataProviders, getAttitudeProvider, getField, getInitialState, getManagedAdditionalData, getMultiplexer, getStartDate, initializeAdditionalData, initializePropagation, isAdditionalDataManaged, propagate, removeAdditionalDataProvider, setAttitudeProvider, setStartDate, stateChanged, updateAdditionalData, updateUnmanagedDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.FieldPropagator
clearStepHandlers, getPosition, getPVCoordinates, getVelocity, setStepHandler, setStepHandlerMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
Field Details
-
tle
Initial state. -
utc
UTC time scale. -
xnode
final RAAN. -
a
final semi major axis. -
e
final eccentricity. -
i
final inclination. -
omega
final perigee argument. -
xl
L from SPTRCK #3. -
a0dp
original recovered semi major axis. -
xn0dp
original recovered mean motion. -
cosi0
cosinus original inclination. -
theta2
cos io squared. -
sini0
sinus original inclination. -
xmdot
common parameter for mean anomaly (M) computation. -
omgdot
common parameter for perigee argument (omega) computation. -
xnodot
common parameter for raan (OMEGA) computation. -
e0sq
original eccentricity squared. -
beta02
1 - e2. -
beta0
sqrt (1 - e2). -
perige
perigee, expressed in KM and ALTITUDE. -
etasq
eta squared. -
eeta
original eccentricity * eta. -
s4
s* new value for the contant s. -
tsi
tsi from SPTRCK #3. -
eta
eta from SPTRCK #3. -
coef
coef for SGP C3 computation. -
coef1
coef for SGP C5 computation. -
c1
C1 from SPTRCK #3. -
c2
C2 from SPTRCK #3. -
c4
C4 from SPTRCK #3. -
xnodcf
common parameter for raan (OMEGA) computation. -
t2cof
3/2 * C1.
-
-
Constructor Details
-
FieldTLEPropagator
@DefaultDataContext protected FieldTLEPropagator(FieldTLE<T> initialTLE, AttitudeProvider attitudeProvider, T mass, T[] parameters) Protected constructor for derived classes.This constructor uses the
default data context.- Parameters:
initialTLE- the unique TLE to propagateattitudeProvider- provider for attitude computationmass- spacecraft mass (kg)parameters- SGP4 and SDP4 model parameters- See Also:
-
FieldTLEPropagator
protected FieldTLEPropagator(FieldTLE<T> initialTLE, AttitudeProvider attitudeProvider, T mass, Frame teme, T[] parameters) Protected constructor for derived classes.- Parameters:
initialTLE- the unique TLE to propagateattitudeProvider- provider for attitude computationmass- spacecraft mass (kg)teme- the TEME frame to use for propagation.parameters- SGP4 and SDP4 model parameters
-
-
Method Details
-
selectExtrapolator
@DefaultDataContext public static <T extends CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, T[] parameters) Selects the extrapolator to use with the selected TLE.This method uses the
default data context.- Type Parameters:
T- elements type- Parameters:
tle- the TLE to propagate.parameters- SGP4 and SDP4 model parameters- Returns:
- the correct propagator.
- See Also:
-
selectExtrapolator
public static <T extends CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, Frame teme, T[] parameters) Selects the extrapolator to use with the selected TLE.This method uses the
default data context.- Type Parameters:
T- elements type- Parameters:
tle- the TLE to propagate.teme- TEME frame.parameters- SGP4 and SDP4 model parameters- Returns:
- the correct propagator.
-
selectExtrapolator
@DefaultDataContext public static <T extends CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, AttitudeProvider attitudeProvider, T mass, T[] parameters) Selects the extrapolator to use with the selected TLE.This method uses the
default data context.- Type Parameters:
T- elements type- Parameters:
tle- the TLE to propagate.attitudeProvider- provider for attitude computationmass- spacecraft mass (kg)parameters- SGP4 and SDP4 model parameters- Returns:
- the correct propagator.
- See Also:
-
selectExtrapolator
public static <T extends CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, AttitudeProvider attitudeProvider, T mass, Frame teme, T[] parameters) Selects the extrapolator to use with the selected TLE.- Type Parameters:
T- elements type- Parameters:
tle- the TLE to propagate.attitudeProvider- provider for attitude computationmass- spacecraft mass (kg)teme- the TEME frame to use for propagation.parameters- SGP4 and SDP4 model parameters- Returns:
- the correct propagator.
-
getMU
public static double getMU()Get the Earth gravity coefficient used for TLE propagation.- Returns:
- the Earth gravity coefficient.
-
getPVCoordinates
Get the extrapolated position and velocity from an initial TLE.- Parameters:
date- the final dateparameters- values of the model- Returns:
- the final PVCoordinates
-
getParametersDrivers
Get the drivers for parameters.- Returns:
- drivers for parameters
-
sxpInitialize
Initialization proper to each propagator (SGP or SDP).- Parameters:
parameters- model parameters
-
sxpPropagate
Propagation proper to each propagator (SGP or SDP).- Parameters:
t- the offset from initial epoch (min)parameters- model parameters
-
resetInitialState
Reset the propagator initial state.For TLE propagator, calling this method is only recommended for covariance propagation when the new
statediffers from the previous one by only adding the additional state containing the derivatives.- Specified by:
resetInitialStatein interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Overrides:
resetInitialStatein classFieldAbstractPropagator<T extends CalculusFieldElement<T>>- Parameters:
state- new initial state to consider
-
resetIntermediateState
Reset an intermediate state.- Specified by:
resetIntermediateStatein classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>- Parameters:
state- new intermediate state to considerforward- if true, the intermediate state is valid for propagations after itself
-
getMass
Get the mass.- Specified by:
getMassin classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>- Parameters:
date- target date for the orbit- Returns:
- mass mass
-
propagateOrbit
Propagate an orbit up to a specific target date.- Specified by:
propagateOrbitin classFieldAbstractAnalyticalPropagator<T extends CalculusFieldElement<T>>- Parameters:
date- target date for the orbitparameters- model parameters- Returns:
- propagated orbit
-
getTLE
Get the underlying TLE. If there has been calls to #resetInitialState or #resetIntermediateState, it will not be the same as given to the constructor.- Returns:
- underlying TLE
-
getFrame
Get the frame in which the orbit is propagated.The propagation frame is the definition frame of the initial state, so this method should be called after this state has been set, otherwise it may return null.
- Specified by:
getFramein interfaceFieldPropagator<T extends CalculusFieldElement<T>>- Overrides:
getFramein classFieldAbstractPropagator<T extends CalculusFieldElement<T>>- Returns:
- frame in which the orbit is propagated
- See Also:
-