public abstract class TLEPropagator extends AbstractPropagator
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.
TLE
,
Serialized FormModifier and Type | Field and Description |
---|---|
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.
|
MASS
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Modifier | Constructor and Description |
---|---|
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.
|
Modifier and Type | Method and Description |
---|---|
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).
|
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getGeneratedEphemeris, getInitialState, getMode, getPVCoordinates, getPvProvider, getSpacecraftState, manageStateFrame, propagate, propagate, resetInitialState, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNativeFrame
protected final TLE tle
protected double xnode
protected double a
protected double e
protected double i
protected double omega
protected double xl
protected double a0dp
protected double xn0dp
protected double cosi0
protected double theta2
protected double sini0
protected double xmdot
protected double omgdot
protected double xnodot
protected double e0sq
protected double beta02
protected double beta0
protected double perige
protected double etasq
protected double eeta
protected double s4
protected double tsi
protected double eta
protected double coef
protected double coef1
protected double c1
protected double c2
protected double c4
protected double xnodcf
protected double t2cof
protected TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProvider, MassProvider mass) throws PatriusException
initialTLE
- the unique TLE to propagateattitudeProvider
- provider for attitude computationmass
- spacecraft mass (kg)PatriusException
- if some specific error occursprotected TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProviderForces, AttitudeProvider attitudeProviderEvents, MassProvider mass) throws PatriusException
initialTLE
- the unique TLE to propagateattitudeProviderForces
- provider for attitude computation in forces computation caseattitudeProviderEvents
- provider for attitude computation in events computation casemass
- spacecraft mass (kg)PatriusException
- if some specific error occurspublic static TLEPropagator selectExtrapolator(TLE tle) throws PatriusException
tle
- the TLE to propagate.PatriusException
- if the underlying model cannot be initializedpublic static TLEPropagator selectExtrapolator(TLE tle, AttitudeProvider attitudeProvider, MassProvider mass) throws PatriusException
tle
- the TLE to propagate.attitudeProvider
- provider for attitude computationmass
- spacecraft mass (kg)PatriusException
- if the underlying model cannot be initializedpublic static TLEPropagator selectExtrapolator(TLE tle, AttitudeProvider attitudeProviderForces, AttitudeProvider attitudeProviderEvents, MassProvider mass) throws PatriusException
tle
- the TLE to propagate.attitudeProviderForces
- provider for attitude computation in forces computation caseattitudeProviderEvents
- provider for attitude computation in events computation casemass
- spacecraft mass (kg)PatriusException
- if the underlying model cannot be initializedpublic PVCoordinates getPVCoordinates(AbsoluteDate date) throws PatriusException
date
- the final datePatriusException
- if propagation cannot be performed at given dateprotected abstract void sxpInitialize() throws PatriusException
PatriusException
- if some specific error occursprotected abstract void sxpPropagate(double t) throws PatriusException
t
- the offset from initial epoch (min)PatriusException
- if current state cannot be propagatedprotected Orbit propagateOrbit(AbsoluteDate date) throws PropagationException
propagateOrbit
in class AbstractPropagator
date
- target date for the orbitPropagationException
- if some parameters are out of boundspublic TLE getTLE()
public Frame getFrame()
4 cases are possible:
#setOrbitFrame(Frame)
): it is returned.getFrame
in interface Propagator
getFrame
in class AbstractPropagator
Copyright © 2023 CNES. All rights reserved.