org.orekit.propagation.precomputed
Class IntegratedEphemeris

java.lang.Object
  extended by org.orekit.propagation.AbstractPropagator
      extended by org.orekit.propagation.precomputed.IntegratedEphemeris
All Implemented Interfaces:
Serializable, BoundedPropagator, Propagator, PVCoordinatesProvider

public class IntegratedEphemeris
extends AbstractPropagator
implements BoundedPropagator

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 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 for persistence, as this class is 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 class org.orekit.propagation.AbstractPropagator
MASS
 
Fields inherited from interface org.orekit.propagation.Propagator
EPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE
 
Constructor Summary
IntegratedEphemeris(List<AbsoluteDate> startDates, List<AbsoluteDate> minDates, List<AbsoluteDate> maxDates, OrbitType orbitType, PositionAngle angleType, AttitudeProvider attitudeForcesProvider, AttitudeProvider attitudeEventsProvider, Map<String,AdditionalStateInfo> additionalStateInfos, List<ContinuousOutputModel> models, Frame referenceFrame, double mu)
          Creates a new instance of IntegratedEphemeris.
 
Method Summary
protected  SpacecraftState basicPropagate(AbsoluteDate date)
          Propagate an orbit without any fancy features.
 SpacecraftState getInitialState()
          Get the propagator initial state.
 AbsoluteDate getMaxDate()
          Get the last date of the range.
 AbsoluteDate getMinDate()
          Get the first date of the range.
 PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
          Get the PVCoordinates of the body in the selected frame.
 void manageStateFrame()
          In this class, nothing as to be done in the frame managing before propagation because propagation will be performed in Frame referenceFrame It just throws an OrekitException if this frame is non inertial or pseudo-inertial.
protected  Orbit propagateOrbit(AbsoluteDate date)
          Extrapolate an orbit up to a specific target date.
 void resetInitialState(SpacecraftState state)
          Reset the propagator initial state.
 
Methods inherited from class org.orekit.propagation.AbstractPropagator
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getMode, getPvProvider, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode, setStartDate
 
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
addEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getFrame, getGeneratedEphemeris, getMode, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setOrbitFrame, setSlaveMode
 

Constructor Detail

IntegratedEphemeris

public IntegratedEphemeris(List<AbsoluteDate> startDates,
                           List<AbsoluteDate> minDates,
                           List<AbsoluteDate> maxDates,
                           OrbitType orbitType,
                           PositionAngle angleType,
                           AttitudeProvider attitudeForcesProvider,
                           AttitudeProvider attitudeEventsProvider,
                           Map<String,AdditionalStateInfo> additionalStateInfos,
                           List<ContinuousOutputModel> models,
                           Frame referenceFrame,
                           double mu)
                    throws OrekitException
Creates a new instance of IntegratedEphemeris.

Parameters:
startDates - list of start dates of the integration (can be minDate or maxDate)
minDates - list of first dates of the ranges
maxDates - list of last dates of the ranges
orbitType - orbit type
angleType - position angle type
attitudeForcesProvider - attitude provider for forces computation
attitudeEventsProvider - attitude provider for events computation
additionalStateInfos - additional states informations
models - list of underlying raw mathematical models
referenceFrame - reference referenceFrame
mu - central body attraction coefficient
Throws:
OrekitException - if several providers have the same name
Method Detail

basicPropagate

protected SpacecraftState basicPropagate(AbsoluteDate date)
                                  throws PropagationException
Propagate an orbit without any fancy features.

This method is similar in spirit to the AbstractPropagator.propagate(org.orekit.time.AbsoluteDate) method, except that it does not call any handler during propagation, nor any discrete events. It always stop exactly at the specified date.

Overrides:
basicPropagate in class AbstractPropagator
Parameters:
date - target date for propagation
Returns:
state at specified date
Throws:
PropagationException - if propagation cannot reach specified date

manageStateFrame

public void manageStateFrame()
                      throws OrekitException
In this class, nothing as to be done in the frame managing before propagation because propagation will be performed in Frame referenceFrame It just throws an OrekitException if this frame is non inertial or pseudo-inertial.

Overrides:
manageStateFrame in class AbstractPropagator
Throws:
OrekitException - if the frame is non inertial or pseudo-inertial

propagateOrbit

protected Orbit propagateOrbit(AbsoluteDate date)
                        throws PropagationException
Extrapolate an orbit up to a specific target date.

Specified by:
propagateOrbit in class AbstractPropagator
Parameters:
date - target date for the orbit
Returns:
extrapolated parameters
Throws:
PropagationException - if some parameters are out of bounds

getPVCoordinates

public PVCoordinates getPVCoordinates(AbsoluteDate date,
                                      Frame frame)
                               throws OrekitException
Get the PVCoordinates of the body in the selected frame.

Specified by:
getPVCoordinates in interface PVCoordinatesProvider
Overrides:
getPVCoordinates in class AbstractPropagator
Parameters:
date - current date
frame - the frame where to define the position
Returns:
position/velocity of the body (m and m/s)
Throws:
OrekitException - if position cannot be computed in given frame

getMinDate

public AbsoluteDate getMinDate()
Get the first date of the range.

Specified by:
getMinDate in interface BoundedPropagator
Returns:
the first date of the range

getMaxDate

public AbsoluteDate getMaxDate()
Get the last date of the range.

Specified by:
getMaxDate in interface BoundedPropagator
Returns:
the last date of the range

resetInitialState

public void resetInitialState(SpacecraftState state)
                       throws PropagationException
Reset the propagator initial state.

Specified by:
resetInitialState in interface Propagator
Overrides:
resetInitialState in class AbstractPropagator
Parameters:
state - new initial state to consider
Throws:
PropagationException - if initial state cannot be reset

getInitialState

public SpacecraftState getInitialState()
                                throws OrekitException
Get the propagator initial state.

Specified by:
getInitialState in interface Propagator
Overrides:
getInitialState in class AbstractPropagator
Returns:
initial state
Throws:
OrekitException - if state cannot be retrieved


Copyright © 2017 CNES. All Rights Reserved.