public class Ephemeris extends AbstractAnalyticalPropagator implements BoundedPropagator
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
Default extrapolation time threshold: 1ms.
|
DEFAULT_MASS
Constructor and Description |
---|
Ephemeris(List<SpacecraftState> states,
int interpolationPoints)
Constructor with tabulated states.
|
Ephemeris(List<SpacecraftState> states,
int interpolationPoints,
double extrapolationThreshold)
Constructor with tabulated states.
|
Ephemeris(List<SpacecraftState> states,
int interpolationPoints,
double extrapolationThreshold,
AttitudeProvider attitudeProvider)
Constructor with tabulated states.
|
Modifier and Type | Method and Description |
---|---|
SpacecraftState |
basicPropagate(AbsoluteDate date)
Propagate an orbit without any fancy features.
|
protected AbstractMatricesHarvester |
createHarvester(String stmName,
RealMatrix initialStm,
DoubleArrayDictionary initialJacobianColumns)
Create the harvester suitable for propagator.
|
double |
getExtrapolationThreshold()
Get the maximum timespan outside of the stored ephemeris that is allowed
for extrapolation.
|
Frame |
getFrame()
Get the frame in which the orbit is propagated.
|
SpacecraftState |
getInitialState()
Get the propagator initial state.
|
String[] |
getManagedAdditionalStates()
Get all the names of all managed states.
|
protected double |
getMass(AbsoluteDate date)
Get the mass.
|
AbsoluteDate |
getMaxDate()
Get the last date of the range.
|
AbsoluteDate |
getMinDate()
Get the first date of the range.
|
TimeStampedPVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame f)
Get the
PVCoordinates of the body in the selected frame. |
boolean |
isAdditionalStateManaged(String name)
Check if an additional state is managed.
|
protected Orbit |
propagateOrbit(AbsoluteDate date)
Extrapolate an orbit up to a specific target date.
|
void |
resetInitialState(SpacecraftState state)
Try (and fail) to reset the initial state.
|
protected void |
resetIntermediateState(SpacecraftState state,
boolean forward)
Reset an intermediate state.
|
acceptStep, addEventDetector, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getJacobiansColumnsNames, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getHarvester, getMultiplexer, getStartDate, initializeAdditionalStates, initializePropagation, propagate, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalStates, updateUnmanagedStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addAdditionalStateProvider, addEventDetector, clearEventsDetectors, clearStepHandlers, getAdditionalStateProviders, getAttitudeProvider, getDefaultLaw, getEphemerisGenerator, getEventsDetectors, getMultiplexer, propagate, propagate, setAttitudeProvider, setStepHandler, setStepHandler, setupMatricesComputation
public static final double DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
public Ephemeris(List<SpacecraftState> states, int interpolationPoints) throws MathIllegalArgumentException
This constructor allows extrapolating outside of the states time span
by up to the 1ms default
extrapolation threshold
.
states
- tabulates statesinterpolationPoints
- number of points to use in interpolationMathIllegalArgumentException
- if the number of states is smaller than
the number of points to use in interpolationEphemeris(List, int, double)
,
Ephemeris(List, int, double, AttitudeProvider)
public Ephemeris(List<SpacecraftState> states, int interpolationPoints, double extrapolationThreshold) throws MathIllegalArgumentException
states
- tabulates statesinterpolationPoints
- number of points to use in interpolationextrapolationThreshold
- the largest time difference in seconds between
the start or stop boundary of the ephemeris bounds to be doing extrapolationMathIllegalArgumentException
- if the number of states is smaller than
the number of points to use in interpolationEphemeris(List, int, double, AttitudeProvider)
public Ephemeris(List<SpacecraftState> states, int interpolationPoints, double extrapolationThreshold, AttitudeProvider attitudeProvider) throws MathIllegalArgumentException
states
- tabulates statesinterpolationPoints
- number of points to use in interpolationextrapolationThreshold
- the largest time difference in seconds between
the start or stop boundary of the ephemeris bounds to be doing extrapolationattitudeProvider
- attitude law to use.MathIllegalArgumentException
- if the number of states is smaller than
the number of points to use in interpolationpublic AbsoluteDate getMinDate()
getMinDate
in interface BoundedPropagator
public AbsoluteDate getMaxDate()
getMaxDate
in interface BoundedPropagator
public double getExtrapolationThreshold()
public Frame getFrame()
AbstractPropagator
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 Propagator
getFrame
in class AbstractPropagator
Propagator.resetInitialState(SpacecraftState)
public SpacecraftState basicPropagate(AbsoluteDate date)
AbstractAnalyticalPropagator
This method is similar in spirit to the AbstractAnalyticalPropagator.propagate(org.orekit.time.AbsoluteDate, org.orekit.time.AbsoluteDate)
method,
except that it does not call any handler during
propagation, nor any discrete events, not additional states. It always
stop exactly at the specified date.
basicPropagate
in class AbstractAnalyticalPropagator
date
- target date for propagationprotected Orbit propagateOrbit(AbsoluteDate date)
propagateOrbit
in class AbstractAnalyticalPropagator
date
- target date for the orbitprotected double getMass(AbsoluteDate date)
getMass
in class AbstractAnalyticalPropagator
date
- target date for the orbitpublic TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame f)
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
getPVCoordinates
in class AbstractPropagator
date
- current datef
- the frame where to define the positionpublic void resetInitialState(SpacecraftState state)
This method always throws an exception, as ephemerides cannot be reset.
resetInitialState
in interface Propagator
resetInitialState
in class AbstractPropagator
state
- new initial state to considerprotected void resetIntermediateState(SpacecraftState state, boolean forward)
resetIntermediateState
in class AbstractAnalyticalPropagator
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfpublic SpacecraftState getInitialState()
getInitialState
in interface Propagator
getInitialState
in class AbstractPropagator
public boolean isAdditionalStateManaged(String name)
Managed states are states for which the propagators know how to compute
its evolution. They correspond to additional states for which a
provider
has been registered by calling the
addAdditionalStateProvider
method.
Additional states that are present in the initial state
but have no evolution method registered are not considered as managed states.
These unmanaged additional states are not lost during propagation, though. Their
value are piecewise constant between state resets that may change them if some
event handler resetState
method is called at an event occurrence and happens
to change the unmanaged additional state.
isAdditionalStateManaged
in interface Propagator
isAdditionalStateManaged
in class AbstractPropagator
name
- name of the additional statepublic String[] getManagedAdditionalStates()
getManagedAdditionalStates
in interface Propagator
getManagedAdditionalStates
in class AbstractPropagator
protected AbstractMatricesHarvester createHarvester(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
createHarvester
in class AbstractPropagator
stmName
- State Transition Matrix state nameinitialStm
- initial State Transition Matrix ∂Y/∂Y₀,
if null (which is the most frequent case), assumed to be 6x6 identityinitialJacobianColumns
- initial columns of the Jacobians matrix with respect to parameters,
if null or if some selected parameters are missing from the dictionary, the corresponding
initial column is assumed to be 0Copyright © 2002-2023 CS GROUP. All rights reserved.