public class Ephemeris extends AbstractAnalyticalPropagator implements BoundedPropagator
DEFAULT_MASS| Constructor and Description |
|---|
Ephemeris(List<SpacecraftState> states,
int interpolationPoints)
Legacy constructor with tabulated states and default Hermite interpolation.
|
Ephemeris(List<SpacecraftState> states,
TimeInterpolator<SpacecraftState> stateInterpolator)
Constructor with tabulated states.
|
Ephemeris(List<SpacecraftState> states,
TimeInterpolator<SpacecraftState> stateInterpolator,
AttitudeProvider attitudeProvider)
Constructor with tabulated states.
|
Ephemeris(List<SpacecraftState> states,
TimeInterpolator<SpacecraftState> stateInterpolator,
List<StateCovariance> covariances,
TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>> covarianceInterpolator)
Constructor with tabulated states and associated covariances.
|
Ephemeris(List<SpacecraftState> states,
TimeInterpolator<SpacecraftState> stateInterpolator,
List<StateCovariance> covariances,
TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>> covarianceInterpolator,
AttitudeProvider attitudeProvider)
Constructor with tabulated states and associated covariances.
|
| Modifier and Type | Method and Description |
|---|---|
SpacecraftState |
basicPropagate(AbsoluteDate date)
Propagate an orbit without any fancy features.
|
static void |
checkInputConsistency(List<SpacecraftState> states,
TimeInterpolator<SpacecraftState> stateInterpolator,
List<StateCovariance> covariances,
TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>> covarianceInterpolator)
Check input consistency between states, covariances and their associated interpolators.
|
static void |
checkStatesAndCovariancesConsistency(List<SpacecraftState> states,
List<StateCovariance> covariances)
Check that given states and covariances are consistent.
|
protected AbstractMatricesHarvester |
createHarvester(String stmName,
org.hipparchus.linear.RealMatrix initialStm,
DoubleArrayDictionary initialJacobianColumns)
Create the harvester suitable for propagator.
|
Optional<StateCovariance> |
getCovariance(AbsoluteDate date)
Get the covariance at given date.
|
Optional<TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>>> |
getCovarianceInterpolator()
Get covariance interpolator.
|
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.
|
TimeInterpolator<SpacecraftState> |
getStateInterpolator()
Get state interpolator.
|
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.
|
acceptStep, addEventDetector, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getJacobiansColumnsNames, getPvProvider, propagateaddAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getHarvester, getMultiplexer, getPVCoordinates, getStartDate, initializeAdditionalStates, initializePropagation, propagate, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalStates, updateUnmanagedStatesclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddAdditionalStateProvider, addEventDetector, clearEventsDetectors, clearStepHandlers, getAdditionalStateProviders, getAttitudeProvider, getDefaultLaw, getEphemerisGenerator, getEventsDetectors, getMultiplexer, propagate, propagate, setAttitudeProvider, setStepHandler, setStepHandler, setupMatricesComputationgetPosition, getPVCoordinatespublic Ephemeris(List<SpacecraftState> states, int interpolationPoints) throws org.hipparchus.exception.MathIllegalArgumentException
As this implementation of interpolation is polynomial, it should be used only with small samples (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
states - list of spacecraft statesinterpolationPoints - number of points to use in interpolationorg.hipparchus.exception.MathIllegalArgumentException - if the number of states is smaller than the number of points to use in
interpolationOrekitIllegalArgumentException - if states are not defined the same way (orbit or absolute
position-velocity-acceleration)Ephemeris(List, TimeInterpolator, List, TimeInterpolator),
SpacecraftStateInterpolatorpublic Ephemeris(List<SpacecraftState> states, TimeInterpolator<SpacecraftState> stateInterpolator) throws org.hipparchus.exception.MathIllegalArgumentException
states - list of spacecraft statesstateInterpolator - spacecraft state interpolatororg.hipparchus.exception.MathIllegalArgumentException - if the number of states is smaller than the number of points to use in
interpolationOrekitIllegalArgumentException - if states are not defined the same way (orbit or absolute
position-velocity-acceleration)Ephemeris(List, TimeInterpolator, List, TimeInterpolator)public Ephemeris(List<SpacecraftState> states, TimeInterpolator<SpacecraftState> stateInterpolator, AttitudeProvider attitudeProvider) throws org.hipparchus.exception.MathIllegalArgumentException
states - list of spacecraft statesstateInterpolator - spacecraft state interpolatorattitudeProvider - attitude law to use, null by defaultorg.hipparchus.exception.MathIllegalArgumentException - if the number of states is smaller than the number of points to use in
interpolationOrekitIllegalArgumentException - if states are not defined the same way (orbit or absolute
position-velocity-acceleration)Ephemeris(List, TimeInterpolator, List, TimeInterpolator)public Ephemeris(List<SpacecraftState> states, TimeInterpolator<SpacecraftState> stateInterpolator, List<StateCovariance> covariances, TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>> covarianceInterpolator) throws org.hipparchus.exception.MathIllegalArgumentException
states - list of spacecraft statesstateInterpolator - spacecraft state interpolatorcovariances - tabulated covariances associated to tabulated states ephemeris bounds to be doing extrapolationcovarianceInterpolator - covariance interpolatororg.hipparchus.exception.MathIllegalArgumentException - if the number of states is smaller than the number of points to use in
interpolationOrekitIllegalArgumentException - if states are not defined the same way (orbit or absolute
position-velocity-acceleration)OrekitIllegalArgumentException - if number of states is different from the number of covariancesOrekitIllegalStateException - if dates between states and associated covariances are differentEphemeris(List, TimeInterpolator, List, TimeInterpolator, AttitudeProvider)public Ephemeris(List<SpacecraftState> states, TimeInterpolator<SpacecraftState> stateInterpolator, List<StateCovariance> covariances, TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>> covarianceInterpolator, AttitudeProvider attitudeProvider) throws org.hipparchus.exception.MathIllegalArgumentException
The user is expected to explicitly define an attitude provider if they want to use one. Otherwise, it is null by default
states - list of spacecraft statesstateInterpolator - spacecraft state interpolatorcovariances - tabulated covariances associated to tabulated statescovarianceInterpolator - covariance interpolatorattitudeProvider - attitude law to use, null by defaultorg.hipparchus.exception.MathIllegalArgumentException - if the number of states is smaller than the number of points to use in
interpolationOrekitIllegalArgumentException - if states are not defined the same way (orbit or absolute
position-velocity-acceleration)OrekitIllegalArgumentException - if number of states is different from the number of covariancesOrekitIllegalStateException - if dates between states and associated covariances are differentpublic static void checkInputConsistency(List<SpacecraftState> states, TimeInterpolator<SpacecraftState> stateInterpolator, List<StateCovariance> covariances, TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>> covarianceInterpolator)
states - spacecraft states samplestateInterpolator - spacecraft state interpolatorcovariances - covariances samplecovarianceInterpolator - covariance interpolatorpublic static void checkStatesAndCovariancesConsistency(List<SpacecraftState> states, List<StateCovariance> covariances)
states - tabulates states to checkcovariances - tabulated covariances associated to tabulated states to checkpublic AbsoluteDate getMinDate()
getMinDate in interface BoundedPropagatorpublic AbsoluteDate getMaxDate()
getMaxDate in interface BoundedPropagatorpublic Frame getFrame()
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 PropagatorgetFrame in class AbstractPropagatorPropagator.resetInitialState(SpacecraftState)public Optional<StateCovariance> getCovariance(AbsoluteDate date)
BEWARE : If this instance has been created without sample of covariances and/or with spacecraft states defined with
absolute position-velocity-acceleration, it will return an empty Optional.
date - date at which the covariance is desiredOptionalpublic SpacecraftState basicPropagate(AbsoluteDate date)
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 AbstractAnalyticalPropagatordate - target date for propagationprotected Orbit propagateOrbit(AbsoluteDate date)
propagateOrbit in class AbstractAnalyticalPropagatordate - target date for the orbitprotected double getMass(AbsoluteDate date)
getMass in class AbstractAnalyticalPropagatordate - target date for the orbitpublic void resetInitialState(SpacecraftState state)
This method always throws an exception, as ephemerides cannot be reset.
resetInitialState in interface PropagatorresetInitialState in class AbstractPropagatorstate - new initial state to considerprotected void resetIntermediateState(SpacecraftState state, boolean forward)
resetIntermediateState in class AbstractAnalyticalPropagatorstate - new intermediate state to considerforward - if true, the intermediate state is valid for
propagations after itselfpublic SpacecraftState getInitialState()
getInitialState in interface PropagatorgetInitialState in class AbstractPropagatorpublic boolean isAdditionalStateManaged(String name)
Managed states are states for which the propagators know how to compute
its evolution. They correspond to additional states for which a
provider has been registered by calling the
addAdditionalStateProvider method.
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 are piecewise constant between state resets that may change them if some
event handler resetState method is called at an event occurrence and happens
to change the unmanaged additional state.
isAdditionalStateManaged in interface PropagatorisAdditionalStateManaged in class AbstractPropagatorname - name of the additional statepublic String[] getManagedAdditionalStates()
getManagedAdditionalStates in interface PropagatorgetManagedAdditionalStates in class AbstractPropagatorprotected AbstractMatricesHarvester createHarvester(String stmName, org.hipparchus.linear.RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
createHarvester in class AbstractPropagatorstmName - State Transition Matrix state nameinitialStm - initial State Transition Matrix ∂Y/∂Y₀,
if null (which is the most frequent case), assumed to be 6x6 identityinitialJacobianColumns - initial columns of the Jacobians matrix with respect to parameters,
if null or if some selected parameters are missing from the dictionary, the corresponding
initial column is assumed to be 0public TimeInterpolator<SpacecraftState> getStateInterpolator()
public Optional<TimeInterpolator<TimeStampedPair<Orbit,StateCovariance>>> getCovarianceInterpolator()
OptionalCopyright © 2002-2023 CS GROUP. All rights reserved.