T
- type of the field elementspublic abstract class FieldTLEPropagator<T extends org.hipparchus.CalculusFieldElement<T>> extends FieldAbstractAnalyticalPropagator<T>
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.
FieldTLE
Modifier and Type | Field and Description |
---|---|
protected T |
a
final semi major axis.
|
protected T |
a0dp
original recovered semi major axis.
|
protected T |
beta0
sqrt (1 - e2).
|
protected T |
beta02
1 - e2.
|
protected T |
c1
C1 from SPTRCK #3.
|
protected T |
c2
C2 from SPTRCK #3.
|
protected T |
c4
C4 from SPTRCK #3.
|
protected T |
coef
coef for SGP C3 computation.
|
protected T |
coef1
coef for SGP C5 computation.
|
protected T |
cosi0
cosinus original inclination.
|
protected T |
e
final eccentricity.
|
protected T |
e0sq
original eccentricity squared.
|
protected T |
eeta
original eccentricity * eta.
|
protected T |
eta
eta from SPTRCK #3.
|
protected T |
etasq
eta squared.
|
protected T |
i
final inclination.
|
protected T |
omega
final perigee argument.
|
protected T |
omgdot
common parameter for perigee argument (omega) computation.
|
protected T |
perige
perigee, expressed in KM and ALTITUDE.
|
protected T |
s4
s* new value for the contant s.
|
protected T |
sini0
sinus original inclination.
|
protected T |
t2cof
3/2 * C1.
|
protected T |
theta2
cos io squared.
|
protected FieldTLE<T> |
tle
Initial state.
|
protected T |
tsi
tsi from SPTRCK #3.
|
protected TimeScale |
utc
UTC time scale.
|
protected T |
xl
L from SPTRCK #3.
|
protected T |
xmdot
common parameter for mean anomaly (M) computation.
|
protected T |
xn0dp
original recovered mean motion.
|
protected T |
xnodcf
common parameter for raan (OMEGA) computation.
|
protected T |
xnode
final RAAN.
|
protected T |
xnodot
common parameter for raan (OMEGA) computation.
|
DEFAULT_MASS
Modifier | Constructor and Description |
---|---|
protected |
FieldTLEPropagator(FieldTLE<T> initialTLE,
AttitudeProvider attitudeProvider,
T mass,
Frame teme,
T[] parameters)
Protected constructor for derived classes.
|
protected |
FieldTLEPropagator(FieldTLE<T> initialTLE,
AttitudeProvider attitudeProvider,
T mass,
T[] parameters)
Protected constructor for derived classes.
|
Modifier and Type | Method and Description |
---|---|
Frame |
getFrame()
Get the frame in which the orbit is propagated.
|
protected T |
getMass(FieldAbsoluteDate<T> date)
Get the mass.
|
static double |
getMU()
Get the Earth gravity coefficient used for TLE propagation.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for parameters.
|
FieldPVCoordinates<T> |
getPVCoordinates(FieldAbsoluteDate<T> date,
T[] parameters)
Get the extrapolated position and velocity from an initial TLE.
|
FieldTLE<T> |
getTLE()
Get the underlying TLE.
|
FieldOrbit<T> |
propagateOrbit(FieldAbsoluteDate<T> date,
T[] parameters)
Extrapolate an orbit up to a specific target date.
|
void |
resetInitialState(FieldSpacecraftState<T> state)
Reset the propagator initial state.
|
protected void |
resetIntermediateState(FieldSpacecraftState<T> state,
boolean forward)
Reset an intermediate state.
|
static <T extends org.hipparchus.CalculusFieldElement<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 org.hipparchus.CalculusFieldElement<T>> |
selectExtrapolator(FieldTLE<T> tle,
AttitudeProvider attitudeProvider,
T mass,
T[] parameters)
Selects the extrapolator to use with the selected TLE.
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
selectExtrapolator(FieldTLE<T> tle,
Frame teme,
T[] parameters)
Selects the extrapolator to use with the selected TLE.
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
selectExtrapolator(FieldTLE<T> tle,
T[] parameters)
Selects the extrapolator to use with the selected TLE.
|
protected abstract void |
sxpInitialize(T[] parameters)
Initialization proper to each propagator (SGP or SDP).
|
protected abstract void |
sxpPropagate(T t,
T[] parameters)
Propagation proper to each propagator (SGP or SDP).
|
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getField, getInitialState, getManagedAdditionalStates, getMultiplexer, getPVCoordinates, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, stateChanged, updateAdditionalStates, updateUnmanagedStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
clearStepHandlers, setStepHandler, setStepHandler
getPosition
protected final TimeScale utc
protected T extends org.hipparchus.CalculusFieldElement<T> a0dp
protected T extends org.hipparchus.CalculusFieldElement<T> xn0dp
protected T extends org.hipparchus.CalculusFieldElement<T> cosi0
protected T extends org.hipparchus.CalculusFieldElement<T> xmdot
protected T extends org.hipparchus.CalculusFieldElement<T> omgdot
protected T extends org.hipparchus.CalculusFieldElement<T> xnodot
protected T extends org.hipparchus.CalculusFieldElement<T> perige
protected T extends org.hipparchus.CalculusFieldElement<T> xnodcf
@DefaultDataContext protected FieldTLEPropagator(FieldTLE<T> initialTLE, AttitudeProvider attitudeProvider, T mass, T[] parameters)
This constructor uses the default data context
.
initialTLE
- the unique TLE to propagateattitudeProvider
- provider for attitude computationmass
- spacecraft mass (kg)parameters
- SGP4 and SDP4 model parametersFieldTLEPropagator(FieldTLE, AttitudeProvider, CalculusFieldElement, Frame, CalculusFieldElement[])
protected FieldTLEPropagator(FieldTLE<T> initialTLE, AttitudeProvider attitudeProvider, T mass, Frame teme, T[] 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@DefaultDataContext public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, T[] parameters)
This method uses the default data context
.
T
- elements typetle
- the TLE to propagate.parameters
- SGP4 and SDP4 model parametersselectExtrapolator(FieldTLE, Frame, CalculusFieldElement[])
public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, Frame teme, T[] parameters)
This method uses the default data context
.
T
- elements typetle
- the TLE to propagate.teme
- TEME frame.parameters
- SGP4 and SDP4 model parameters@DefaultDataContext public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, AttitudeProvider attitudeProvider, T mass, T[] parameters)
This method uses the default data context
.
T
- elements typetle
- the TLE to propagate.attitudeProvider
- provider for attitude computationmass
- spacecraft mass (kg)parameters
- SGP4 and SDP4 model parametersselectExtrapolator(FieldTLE, AttitudeProvider, CalculusFieldElement, Frame, CalculusFieldElement[])
public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldTLEPropagator<T> selectExtrapolator(FieldTLE<T> tle, AttitudeProvider attitudeProvider, T mass, Frame teme, T[] parameters)
T
- elements typetle
- 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 parameterspublic static double getMU()
public FieldPVCoordinates<T> getPVCoordinates(FieldAbsoluteDate<T> date, T[] parameters)
date
- the final dateparameters
- values of the modelpublic List<ParameterDriver> getParametersDrivers()
protected abstract void sxpInitialize(T[] parameters)
parameters
- model parametersprotected abstract void sxpPropagate(T t, T[] parameters)
t
- the offset from initial epoch (min)parameters
- model parameterspublic void resetInitialState(FieldSpacecraftState<T> state)
For TLE propagator, calling this method is only recommended
for covariance propagation when the new state
differs from the previous one by only adding the additional
state containing the derivatives.
resetInitialState
in interface FieldPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
resetInitialState
in class FieldAbstractPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
state
- new initial state to considerprotected void resetIntermediateState(FieldSpacecraftState<T> state, boolean forward)
resetIntermediateState
in class FieldAbstractAnalyticalPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfprotected T getMass(FieldAbsoluteDate<T> date)
getMass
in class FieldAbstractAnalyticalPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
date
- target date for the orbitpublic FieldOrbit<T> propagateOrbit(FieldAbsoluteDate<T> date, T[] parameters)
propagateOrbit
in class FieldAbstractAnalyticalPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
date
- target date for the orbitparameters
- model parameterspublic Frame getFrame()
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.
getFrame
in interface FieldPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
getFrame
in class FieldAbstractPropagator<T extends org.hipparchus.CalculusFieldElement<T>>
FieldPropagator.resetInitialState(FieldSpacecraftState)
Copyright © 2002-2023 CS GROUP. All rights reserved.