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 doubleDEFAULT_EXTRAPOLATION_THRESHOLD_SECDefault 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 SpacecraftStatebasicPropagate(AbsoluteDate date)Propagate an orbit without any fancy features.doublegetExtrapolationThreshold()Get the maximum timespan outside of the stored ephemeris that is allowed for extrapolation.FramegetFrame()Get the frame in which the orbit is propagated.SpacecraftStategetInitialState()Get the propagator initial state.String[]getManagedAdditionalStates()Get all the names of all managed states.protected doublegetMass(AbsoluteDate date)Get the mass.AbsoluteDategetMaxDate()Get the last date of the range.AbsoluteDategetMinDate()Get the first date of the range.TimeStampedPVCoordinatesgetPVCoordinates(AbsoluteDate date, Frame f)Get thePVCoordinatesof the body in the selected frame.booleanisAdditionalStateManaged(String name)Check if an additional state is managed.protected OrbitpropagateOrbit(AbsoluteDate date)Extrapolate an orbit up to a specific target date.voidresetInitialState(SpacecraftState state)Try (and fail) to reset the initial state.protected voidresetIntermediateState(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:
getMinDatein interfaceBoundedPropagator- Returns:
- the first date of the range
-
getMaxDate
public AbsoluteDate getMaxDate()
Get the last date of the range.- Specified by:
getMaxDatein 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:AbstractPropagatorGet 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 interfacePropagator- Overrides:
getFramein classAbstractPropagator- Returns:
- frame in which the orbit is propagated
- See Also:
Propagator.resetInitialState(SpacecraftState)
-
basicPropagate
public SpacecraftState basicPropagate(AbsoluteDate date)
Description copied from class:AbstractAnalyticalPropagatorPropagate 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:
basicPropagatein 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:
propagateOrbitin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- extrapolated parameters
-
getMass
protected double getMass(AbsoluteDate date)
Get the mass.- Specified by:
getMassin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- mass mass
-
getPVCoordinates
public TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame f)
Get thePVCoordinatesof the body in the selected frame.- Specified by:
getPVCoordinatesin interfacePVCoordinatesProvider- Overrides:
getPVCoordinatesin 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:
resetInitialStatein interfacePropagator- Overrides:
resetInitialStatein classAbstractPropagator- Parameters:
state- new initial state to consider
-
resetIntermediateState
protected void resetIntermediateState(SpacecraftState state, boolean forward)
Reset an intermediate state.- Specified by:
resetIntermediateStatein 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:
getInitialStatein interfacePropagator- Overrides:
getInitialStatein 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 providerhas been registered by calling theaddAdditionalStateProvidermethod. If the propagator is anintegrator-based propagator, the states for which a set ofadditional equationshas been registered by calling theaddAdditionalEquationsmethod are also counted as managed additional states.Additional states that are present in the
initial statebut 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:
isAdditionalStateManagedin interfacePropagator- Overrides:
isAdditionalStateManagedin 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:
getManagedAdditionalStatesin interfacePropagator- Overrides:
getManagedAdditionalStatesin classAbstractPropagator- Returns:
- names of all managed states
-
-