public class IntegratedEphemeris extends AbstractAnalyticalPropagator implements BoundedPropagator, Serializable
Instances of this class are built and then must be fed with the results
provided by Propagator
objects
configured in ephemeris 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.
NumericalPropagator
,
Serialized FormDEFAULT_LAW, DEFAULT_MASS, EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
Constructor and Description |
---|
IntegratedEphemeris(AbsoluteDate startDate,
AbsoluteDate minDate,
AbsoluteDate maxDate,
StateMapper mapper,
boolean meanOrbit,
DenseOutputModel model,
Map<String,double[]> unmanaged,
List<AdditionalStateProvider> providers,
String[] equations)
Creates a new instance of IntegratedEphemeris.
|
Modifier and Type | Method and 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 the
PVCoordinates 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.
|
acceptStep, addEventDetector, clearEventsDetectors, getEventsDetectors, getGeneratedEphemeris, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getFixedStepSize, getManagedAdditionalStates, getMode, getStartDate, getStepHandler, isAdditionalStateManaged, propagate, setAttitudeProvider, setEphemerisMode, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDate, updateAdditionalStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addAdditionalStateProvider, addEventDetector, clearEventsDetectors, getAdditionalStateProviders, getAttitudeProvider, getEventsDetectors, getGeneratedEphemeris, getManagedAdditionalStates, getMode, isAdditionalStateManaged, propagate, propagate, setAttitudeProvider, setEphemerisMode, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode
public IntegratedEphemeris(AbsoluteDate startDate, AbsoluteDate minDate, AbsoluteDate maxDate, StateMapper mapper, boolean meanOrbit, DenseOutputModel model, Map<String,double[]> unmanaged, List<AdditionalStateProvider> providers, String[] equations) throws OrekitException
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 equationsOrekitException
- if several providers have the same nameprotected SpacecraftState basicPropagate(AbsoluteDate date) throws OrekitException
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 propagationOrekitException
- if propagation cannot reach specified dateprotected Orbit propagateOrbit(AbsoluteDate date) throws OrekitException
propagateOrbit
in class AbstractAnalyticalPropagator
date
- target date for the orbitOrekitException
- if some parameters are out of boundsprotected double getMass(AbsoluteDate date) throws OrekitException
getMass
in class AbstractAnalyticalPropagator
date
- target date for the orbitOrekitException
- if some parameters are out of boundspublic TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws OrekitException
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
getPVCoordinates
in class AbstractPropagator
date
- current dateframe
- the frame where to define the positionOrekitException
- if position cannot be computed in given framepublic AbsoluteDate getMinDate()
getMinDate
in interface BoundedPropagator
public AbsoluteDate getMaxDate()
getMaxDate
in interface BoundedPropagator
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 void resetInitialState(SpacecraftState state) throws OrekitException
resetInitialState
in interface Propagator
resetInitialState
in class AbstractPropagator
state
- new initial state to considerOrekitException
- if initial state cannot be resetprotected void resetIntermediateState(SpacecraftState state, boolean forward) throws OrekitException
resetIntermediateState
in class AbstractAnalyticalPropagator
state
- new intermediate state to considerforward
- if true, the intermediate state is valid for
propagations after itselfOrekitException
- if initial state cannot be resetpublic SpacecraftState getInitialState() throws OrekitException
getInitialState
in interface Propagator
getInitialState
in class AbstractPropagator
OrekitException
- if state cannot be retrievedCopyright © 2002-2017 CS Systèmes d'information. All rights reserved.