public class PVEphemeris extends AbstractPropagator implements BoundedPropagator
time-stamped PVCoordinates.
Note: This implementation does not support all the methods of the Propagator interface in the case the
provided frame is not pseudo-inertial. In particular, the propagate methods.
MASSEPHEMERIS_GENERATION_MODE, MASTER_MODE, SLAVE_MODE| Constructor and Description |
|---|
PVEphemeris(List<TimeStampedPVCoordinates> pvts,
int order,
Frame frame,
double mu,
CartesianDerivativesFilter filter)
Standard constructor.
|
PVEphemeris(List<TimeStampedPVCoordinates> pvts,
int order,
Frame frame,
double mu,
CartesianDerivativesFilter filter,
AttitudeProvider attitudeProvider)
Standard constructor.
|
PVEphemeris(List<TimeStampedPVCoordinates> pvts,
int order,
Frame frame,
double mu,
CartesianDerivativesFilter filter,
AttitudeProvider attitudeProvider,
boolean acceptOutOfOptimalRange)
Standard constructor.
|
PVEphemeris(List<TimeStampedPVCoordinates> pvts,
int order,
Frame frame,
double mu,
CartesianDerivativesFilter filter,
AttitudeProvider attitudeProvider,
boolean acceptOutOfOptimalRange,
int cacheSize)
Standard constructor.
|
PVEphemeris(List<TimeStampedPVCoordinates> pvts,
int order,
Frame frame,
double mu,
CartesianDerivativesFilter filter,
AttitudeProvider attitudeProvider,
boolean acceptOutOfOptimalRange,
int cacheSize,
boolean computeAcceleration)
Full constructor.
|
| Modifier and Type | Method and Description |
|---|---|
double |
getCacheReusabilityRatio()
Provides the ratio of reusability of the internal cache.
|
TimeStampedPVCoordinates |
getFirstTimeStampedPVCoordinates()
Getter for the first time-stamped PVCoordinates.
|
Frame |
getFrame()
Getter for the frame in which the time-stamped PVCoordinates are defined.
|
SpacecraftState |
getInitialState()
Get the propagator initial state.
|
TimeStampedPVCoordinates |
getLastTimeStampedPVCoordinates()
Getter for the last time-stamped PVCoordinates.
|
AbsoluteDate |
getMaxDate()
Get the last date of the range.
|
AbsoluteDate |
getMaxOptimalDate() |
AbsoluteDate |
getMaxSampleDate() |
AbsoluteDate |
getMinDate()
Get the first date of the range.
|
AbsoluteDate |
getMinOptimalDate() |
AbsoluteDate |
getMinSampleDate() |
Frame |
getNativeFrame(AbsoluteDate date)
Getter for the frame in which the time-stamped PVCoordinates are defined.
|
PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frameOut)
Default implementation for PVCoordinatesProvider feature using the
SpacecraftState
object's orbit. |
TimeStampedInterpolableEphemeris.SearchMethod |
getSearchMethod()
Getter for the search method.
|
SpacecraftState |
getSpacecraftState(AbsoluteDate date)
Get the
SpacecraftState at provided date. |
TimeStampedPVCoordinates[] |
getTimeStampedPVCoordinates(boolean copy)
Getter for the time-stamped PVCoordinates array.
|
int |
getTimeStampedPVCoordinatesSize()
Getter for the time-stamped PVCoordinates size.
|
boolean |
isAcceptOutOfOptimalRange()
Indicates whether accept dates outside of the optimal interval which is a sub-interval from the full interval
interval required for interpolation with respect to the interpolation order.
|
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.
|
void |
setOrbitFrame(Frame frameIn)
Set propagation frame.
|
void |
setSearchMethod(TimeStampedInterpolableEphemeris.SearchMethod searchMethod)
Setter for the search method.
|
acceptStep, addAdditionalStateProvider, addAdditionalStateProvider, addEventDetector, basicPropagate, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getGeneratedEphemeris, getMode, getPvProvider, manageStateFrame, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setSlaveMode, setStartDateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddEventDetector, clearEventsDetectors, getAttitudeProvider, getAttitudeProviderEvents, getAttitudeProviderForces, getEventsDetectors, getGeneratedEphemeris, getMode, propagate, propagate, setAttitudeProvider, setAttitudeProviderEvents, setAttitudeProviderForces, setEphemerisMode, setMasterMode, setMasterMode, setSlaveModepublic PVEphemeris(List<TimeStampedPVCoordinates> pvts, int order, Frame frame, double mu, CartesianDerivativesFilter filter)
By default, the dates outside of the optimal interval aren't allowed.
By default, the cache size is set to DEFAULT_MAX_SIZE.
By default, the acceleration is computed.
pvts - Tabulated time-stamped PVCoordinatesorder - Interpolation order (number of points to use for the interpolation). It must be even.frame - The frame in which the time-stamped PVCoordinates are definedmu - Central attraction coefficient (m3/s2)filter - Filter describing which derivatives to use in TimeStampedPVCoordinates and interpolationNullArgumentException - if pvts, frame or filter is nullIllegalArgumentException - if the tabulated time-stamped PVCoordinates contained elements defined at the same date
if the order is an odd number or is lower than 2
if the tabulated time-stamped PVCoordinates array length is lower than the orderpublic PVEphemeris(List<TimeStampedPVCoordinates> pvts, int order, Frame frame, double mu, CartesianDerivativesFilter filter, AttitudeProvider attitudeProvider)
By default, the dates outside of the optimal interval aren't allowed.
By default, the cache size is set to DEFAULT_MAX_SIZE.
By default, the acceleration is computed.
pvts - Tabulated time-stamped PVCoordinatesorder - Interpolation order (number of points to use for the interpolation)frame - The frame in which the time-stamped PVCoordinates are definedmu - Central attraction coefficient (m3/s2)filter - Filter describing which derivatives to use in TimeStampedPVCoordinates and interpolationattitudeProvider - Provider for attitude computation in case of both forces and events computation. Can be null.NullArgumentException - if pvts, frame or filter is nullIllegalArgumentException - if the tabulated time-stamped PVCoordinates contained elements defined at the same date
if the order is an odd number or is lower than 2
if the tabulated time-stamped PVCoordinates array length is lower than the orderpublic PVEphemeris(List<TimeStampedPVCoordinates> pvts, int order, Frame frame, double mu, CartesianDerivativesFilter filter, AttitudeProvider attitudeProvider, boolean acceptOutOfOptimalRange)
By default, the cache size is set to DEFAULT_MAX_SIZE.
By default, the acceleration is computed.
pvts - Tabulated time-stamped PVCoordinatesorder - Interpolation order (number of points to use for the interpolation)frame - The frame in which the time-stamped PVCoordinates are definedmu - Central attraction coefficient (m3/s2)filter - Filter describing which derivatives to use in TimeStampedPVCoordinates and interpolationattitudeProvider - Provider for attitude computation in case of both forces and events computation. Can be null.acceptOutOfOptimalRange - Indicates whether accept dates outside of the optimal interval which is a sub-interval from the full
interval required for interpolation with respect to the interpolation orderNullArgumentException - if pvts, frame or filter is nullIllegalArgumentException - if the tabulated time-stamped PVCoordinates contained elements defined at the same date
if the order is an odd number or is lower than 2
if the tabulated time-stamped PVCoordinates array length is lower than the orderpublic PVEphemeris(List<TimeStampedPVCoordinates> pvts, int order, Frame frame, double mu, CartesianDerivativesFilter filter, AttitudeProvider attitudeProvider, boolean acceptOutOfOptimalRange, int cacheSize)
By default, the acceleration is computed.
pvts - Tabulated time-stamped PVCoordinatesorder - Interpolation order (number of points to use for the interpolation)frame - The frame in which the time-stamped PVCoordinates are definedmu - Central attraction coefficient (m3/s2)filter - Filter describing which derivatives to use in TimeStampedPVCoordinates and interpolationattitudeProvider - Provider for attitude computation in case of both forces and events computation. Can be null.acceptOutOfOptimalRange - Indicates whether accept dates outside of the optimal interval which is a sub-interval from the full
interval required for interpolation with respect to the interpolation ordercacheSize - The size of the cache. 0 is a legitimate value emulating the absence of cache.NullArgumentException - if pvts, frame or filter is nullIllegalArgumentException - if the tabulated time-stamped PVCoordinates contained elements defined at the same date
if the order is an odd number or is lower than 2
if the tabulated time-stamped PVCoordinates array length is lower than the orderpublic PVEphemeris(List<TimeStampedPVCoordinates> pvts, int order, Frame frame, double mu, CartesianDerivativesFilter filter, AttitudeProvider attitudeProvider, boolean acceptOutOfOptimalRange, int cacheSize, boolean computeAcceleration)
pvts - Tabulated time-stamped PVCoordinatesorder - Interpolation order (number of points to use for the interpolation)frame - The frame in which the time-stamped PVCoordinates are definedmu - Central attraction coefficient (m3/s2)filter - Filter describing which derivatives to use in TimeStampedPVCoordinates and interpolationattitudeProvider - Provider for attitude computation in case of both forces and events computation. Can be null.acceptOutOfOptimalRange - Indicates whether accept dates outside of the optimal interval which is a sub-interval from the full
interval required for interpolation with respect to the interpolation ordercacheSize - The size of the cache. 0 is a legitimate value emulating the absence of cache.computeAcceleration - true if the acceleration should be computed, false otherwiseNullArgumentException - if pvts, frame or filter is nullIllegalArgumentException - if the tabulated time-stamped PVCoordinates contained elements defined at the same date
if the order is an odd number or is lower than 2
if the tabulated time-stamped PVCoordinates array length is lower than the orderNotPositiveException - if cacheSize < 0public Orbit propagateOrbit(AbsoluteDate date)
propagateOrbit in class AbstractPropagatordate - target date for the orbitIllegalStateException - if the date is outside the supported interval
if the instance has been built with the setting acceptOutOfOptimalRange = false and the date is
outside the optimal interval which is a sub-interval from the full interval interval required for
interpolation with respect to the interpolation orderpublic PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frameOut) throws PatriusException
SpacecraftState
object's orbit.
Get the PVCoordinates of the body in the selected frame.
getPVCoordinates in interface PVCoordinatesProvidergetPVCoordinates in interface SpacecraftStateProvidergetPVCoordinates in class AbstractPropagatordate - current dateframeOut - the frame where to define the positionIllegalStateException - if the date is outside the supported interval
if the instance has been built with the setting acceptOutOfOptimalRange = false and the date is
outside the optimal interval which is a sub-interval from the full interval interval required for
interpolation with respect to the interpolation orderPatriusException - if position cannot be computed in given framepublic SpacecraftState getSpacecraftState(AbsoluteDate date) throws PropagationException
SpacecraftState at provided date.getSpacecraftState in interface SpacecraftStateProvidergetSpacecraftState in class AbstractPropagatordate - target dateIllegalStateException - if the date is outside the supported interval
if the instance has been built with the setting acceptOutOfOptimalRange = false and the date is
outside the optimal interval which is a sub-interval from the full interval interval required for
interpolation with respect to the interpolation orderPropagationException - if state cannot be computedpublic void resetInitialState(SpacecraftState state) throws PropagationException
This method always throws an exception, as ephemeris cannot be reset.
resetInitialState in interface PropagatorresetInitialState in class AbstractPropagatorstate - New initial state to considerPropagationException - always thrown as ephemeris cannot be resetpublic SpacecraftState getInitialState() throws PropagationException
getInitialState in interface PropagatorgetInitialState in class AbstractPropagatorPropagationExceptionpublic TimeStampedPVCoordinates getFirstTimeStampedPVCoordinates()
public TimeStampedPVCoordinates getLastTimeStampedPVCoordinates()
public AbsoluteDate getMinDate()
getMinDate in interface BoundedPropagatorpublic AbsoluteDate getMaxDate()
getMaxDate in interface BoundedPropagatorpublic AbsoluteDate getMinSampleDate()
public AbsoluteDate getMaxSampleDate()
public AbsoluteDate getMinOptimalDate()
public AbsoluteDate getMaxOptimalDate()
public int getTimeStampedPVCoordinatesSize()
public TimeStampedPVCoordinates[] getTimeStampedPVCoordinates(boolean copy)
copy - if true return a copy of the time-stamped PVCoordinates array, otherwise return the stored arraypublic double getCacheReusabilityRatio()
public boolean isAcceptOutOfOptimalRange()
true if the dates outside of the optimal interval are accepted, false otherwisepublic TimeStampedInterpolableEphemeris.SearchMethod getSearchMethod()
public void setSearchMethod(TimeStampedInterpolableEphemeris.SearchMethod searchMethod)
searchMethod - the search method to setNullArgumentException - if searchMethod is nullpublic Frame getFrame()
getFrame in interface PropagatorgetFrame in class AbstractPropagatorpublic Frame getNativeFrame(AbsoluteDate date)
getNativeFrame in interface PVCoordinatesProvidergetNativeFrame in interface Propagatordate - a datepublic void setOrbitFrame(Frame frameIn)
This feature isn't supported by this implementation as the frame in which the time-stamped PVCoordinates are defined is set in the constructor and this frame is used to propagate the time-stamped PVCoordinates.
setOrbitFrame in interface BoundedPropagatorsetOrbitFrame in class AbstractPropagatorframeIn - the frame to useUnsupportedOperationException - always thrown by this implementationCopyright © 2025 CNES. All rights reserved.