Class Ephemeris
- java.lang.Object
-
- org.orekit.propagation.AbstractPropagator
-
- org.orekit.propagation.analytical.AbstractAnalyticalPropagator
-
- org.orekit.propagation.analytical.Ephemeris
-
- All Implemented Interfaces:
Serializable
,BoundedPropagator
,Propagator
,PVCoordinatesProvider
public class Ephemeris extends AbstractAnalyticalPropagator implements BoundedPropagator, Serializable
This class is designed to accept and handle tabulated orbital entries. Tabulated entries are classified and then extrapolated in way to obtain continuous output, with accuracy and computation methods configured by the user.- Author:
- Fabien Maussion, Véronique Pommier-Maurussane, Luc Maisonobe
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static double
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
Default extrapolation time threshold: 1ms.-
Fields inherited from interface org.orekit.propagation.Propagator
DEFAULT_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
-
-
Constructor Summary
Constructors Constructor Description Ephemeris(List<SpacecraftState> states, int interpolationPoints)
Constructor with tabulated states.Ephemeris(List<SpacecraftState> states, int interpolationPoints, double extrapolationThreshold)
Constructor with tabulated states.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SpacecraftState
basicPropagate(AbsoluteDate date)
Propagate an orbit without any fancy features.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 thePVCoordinates
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.-
Methods inherited from class org.orekit.propagation.analytical.AbstractAnalyticalPropagator
acceptStep, addEventDetector, clearEventsDetectors, getEventsDetectors, getGeneratedEphemeris, getPvProvider, propagate
-
Methods inherited from class org.orekit.propagation.AbstractPropagator
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getFixedStepSize, getMode, getStartDate, getStepHandler, propagate, setAttitudeProvider, setEphemerisMode, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, updateAdditionalStates
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.Propagator
addAdditionalStateProvider, addEventDetector, clearEventsDetectors, getAdditionalStateProviders, getAttitudeProvider, getEventsDetectors, getGeneratedEphemeris, getMode, propagate, propagate, setAttitudeProvider, setEphemerisMode, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode
-
-
-
-
Field Detail
-
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
public static final double DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
Default extrapolation time threshold: 1ms.- Since:
- 9.0
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Ephemeris
public Ephemeris(List<SpacecraftState> states, int interpolationPoints) throws org.hipparchus.exception.MathIllegalArgumentException
Constructor with tabulated states.This constructor allows extrapolating outside of the states time span by up to the 1ms
default extrapolation threshold
.- Parameters:
states
- tabulates statesinterpolationPoints
- number of points to use in interpolation- Throws:
org.hipparchus.exception.MathIllegalArgumentException
- if the number of states is smaller than the number of points to use in interpolation- See Also:
Ephemeris(List, int, double)
-
Ephemeris
public Ephemeris(List<SpacecraftState> states, int interpolationPoints, double extrapolationThreshold) throws org.hipparchus.exception.MathIllegalArgumentException
Constructor with tabulated states.- Parameters:
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 extrapolation- Throws:
org.hipparchus.exception.MathIllegalArgumentException
- if the number of states is smaller than the number of points to use in interpolation- Since:
- 9.0
-
-
Method Detail
-
getMinDate
public AbsoluteDate getMinDate()
Get the first date of the range.- Specified by:
getMinDate
in interfaceBoundedPropagator
- Returns:
- the first date of the range
-
getMaxDate
public AbsoluteDate getMaxDate()
Get the last date of the range.- Specified by:
getMaxDate
in interfaceBoundedPropagator
- Returns:
- the last date of the range
-
getExtrapolationThreshold
public double getExtrapolationThreshold()
Get the maximum timespan outside of the stored ephemeris that is allowed for extrapolation.- Returns:
- the extrapolation threshold in seconds
-
getFrame
public Frame getFrame()
Description copied from class:AbstractPropagator
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:
getFrame
in interfacePropagator
- Overrides:
getFrame
in classAbstractPropagator
- Returns:
- frame in which the orbit is propagated
- See Also:
Propagator.resetInitialState(SpacecraftState)
-
basicPropagate
public SpacecraftState basicPropagate(AbsoluteDate date)
Description copied from class:AbstractAnalyticalPropagator
Propagate an orbit without any fancy features.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.- Overrides:
basicPropagate
in classAbstractAnalyticalPropagator
- Parameters:
date
- target date for propagation- Returns:
- state at specified date
-
propagateOrbit
protected Orbit propagateOrbit(AbsoluteDate date)
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbit
in classAbstractAnalyticalPropagator
- Parameters:
date
- target date for the orbit- Returns:
- extrapolated parameters
-
getMass
protected double getMass(AbsoluteDate date)
Get the mass.- Specified by:
getMass
in classAbstractAnalyticalPropagator
- Parameters:
date
- target date for the orbit- Returns:
- mass mass
-
getPVCoordinates
public TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame f)
Get thePVCoordinates
of the body in the selected frame.- Specified by:
getPVCoordinates
in interfacePVCoordinatesProvider
- Overrides:
getPVCoordinates
in classAbstractPropagator
- Parameters:
date
- current datef
- the frame where to define the position- Returns:
- time-stamped position/velocity of the body (m and m/s)
-
resetInitialState
public void resetInitialState(SpacecraftState state)
Try (and fail) to reset the initial state.This method always throws an exception, as ephemerides cannot be reset.
- Specified by:
resetInitialState
in interfacePropagator
- Overrides:
resetInitialState
in classAbstractPropagator
- Parameters:
state
- new initial state to consider
-
resetIntermediateState
protected void resetIntermediateState(SpacecraftState state, boolean forward)
Reset an intermediate state.- Specified by:
resetIntermediateState
in classAbstractAnalyticalPropagator
- Parameters:
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for propagations after itself
-
getInitialState
public SpacecraftState getInitialState()
Get the propagator initial state.- Specified by:
getInitialState
in interfacePropagator
- Overrides:
getInitialState
in classAbstractPropagator
- Returns:
- initial state
-
isAdditionalStateManaged
public boolean isAdditionalStateManaged(String name)
Check if an additional state is managed.Managed states are states for which the propagators know how to compute its evolution. They correspond to additional states for which an
additional state provider
has been registered by calling theaddAdditionalStateProvider
method. If the propagator is anintegrator-based propagator
, the states for which a set ofadditional equations
has been registered by calling theaddAdditionalEquations
method are also counted as managed additional states.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 will simply be copied unchanged throughout propagation.- Specified by:
isAdditionalStateManaged
in interfacePropagator
- Overrides:
isAdditionalStateManaged
in classAbstractPropagator
- Parameters:
name
- name of the additional state- Returns:
- true if the additional state is managed
-
getManagedAdditionalStates
public String[] getManagedAdditionalStates()
Get all the names of all managed states.- Specified by:
getManagedAdditionalStates
in interfacePropagator
- Overrides:
getManagedAdditionalStates
in classAbstractPropagator
- Returns:
- names of all managed states
-
-