Class IntegratedEphemeris
- java.lang.Object
-
- org.orekit.propagation.AbstractPropagator
-
- org.orekit.propagation.analytical.AbstractAnalyticalPropagator
-
- org.orekit.propagation.integration.IntegratedEphemeris
-
- All Implemented Interfaces:
Serializable
,BoundedPropagator
,Propagator
,PVCoordinatesProvider
public class IntegratedEphemeris extends AbstractAnalyticalPropagator implements BoundedPropagator, Serializable
This class stores sequentially generated orbital parameters for later retrieval.Instances of this class are built and then must be fed with the results provided by
Propagator
objects configured inephemeris generation mode
. Once propagation is o, random access to any intermediate state of the orbit throughout the propagation range is possible.A typical use case is for numerically integrated orbits, which can be used by algorithms that need to wander around according to their own algorithm without cumbersome tight links with the integrator.
Another use case is persistence, as this class is one of the few propagators to be serializable.
As this class implements the
Propagator
interface, it can itself be used in batch mode to build another instance of the same type. This is however not recommended since it would be a waste of resources.Note that this class stores all intermediate states along with interpolation models, so it may be memory intensive.
- Author:
- Mathieu Roméro, Luc Maisonobe, Véronique Pommier-Maurussane
- See Also:
NumericalPropagator
, Serialized Form
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.Propagator
DEFAULT_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
-
-
Constructor Summary
Constructors Constructor Description IntegratedEphemeris(AbsoluteDate startDate, AbsoluteDate minDate, AbsoluteDate maxDate, StateMapper mapper, boolean meanOrbit, org.hipparchus.ode.DenseOutputModel model, Map<String,double[]> unmanaged, List<AdditionalStateProvider> providers, String[] equations)
Creates a new instance of IntegratedEphemeris.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SpacecraftState
basicPropagate(AbsoluteDate date)
Propagate an orbit without any fancy features.Frame
getFrame()
Get the frame in which the orbit is propagated.SpacecraftState
getInitialState()
Get the propagator initial state.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 frame)
Get thePVCoordinates
of the body in the selected frame.protected Orbit
propagateOrbit(AbsoluteDate date)
Extrapolate an orbit up to a specific target date.void
resetInitialState(SpacecraftState state)
Reset the propagator 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, getManagedAdditionalStates, getMode, getStartDate, getStepHandler, isAdditionalStateManaged, 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, getManagedAdditionalStates, getMode, isAdditionalStateManaged, propagate, propagate, setAttitudeProvider, setEphemerisMode, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode
-
-
-
-
Constructor Detail
-
IntegratedEphemeris
public IntegratedEphemeris(AbsoluteDate startDate, AbsoluteDate minDate, AbsoluteDate maxDate, StateMapper mapper, boolean meanOrbit, org.hipparchus.ode.DenseOutputModel model, Map<String,double[]> unmanaged, List<AdditionalStateProvider> providers, String[] equations)
Creates a new instance of IntegratedEphemeris.- Parameters:
startDate
- Start date of the integration (can be minDate or maxDate)minDate
- first date of the rangemaxDate
- last date of the rangemapper
- mapper between raw double components and spacecraft statemeanOrbit
- output only the mean orbitmodel
- underlying raw mathematical modelunmanaged
- unmanaged additional states that must be simply copiedproviders
- providers for pre-integrated statesequations
- names of additional equations
-
-
Method Detail
-
basicPropagate
protected SpacecraftState basicPropagate(AbsoluteDate date)
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 frame)
Get thePVCoordinates
of the body in the selected frame.- Specified by:
getPVCoordinates
in interfacePVCoordinatesProvider
- Overrides:
getPVCoordinates
in classAbstractPropagator
- Parameters:
date
- current dateframe
- the frame where to define the position- Returns:
- time-stamped position/velocity of the body (m and m/s)
-
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
-
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)
-
resetInitialState
public void resetInitialState(SpacecraftState state)
Reset the propagator initial state.- 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
-
-