Package org.orekit.time
Class AbstractTimeInterpolator<T extends TimeStamped>
- java.lang.Object
 - 
- org.orekit.time.AbstractTimeInterpolator<T>
 
 
- 
- Type Parameters:
 T- interpolated time stamped type
- All Implemented Interfaces:
 TimeInterpolator<T>
- Direct Known Subclasses:
 AbsolutePVCoordinatesHermiteInterpolator,AbstractOrbitInterpolator,AbstractStateCovarianceInterpolator,AttitudeInterpolator,ClockOffsetHermiteInterpolator,SP3CoordinateHermiteInterpolator,SpacecraftStateInterpolator,TimeStampedAngularCoordinatesHermiteInterpolator,TimeStampedDoubleAndDerivativeHermiteInterpolator,TimeStampedDoubleHermiteInterpolator,TimeStampedPVCoordinatesHermiteInterpolator
public abstract class AbstractTimeInterpolator<T extends TimeStamped> extends Object implements TimeInterpolator<T>
Abstract class for time interpolator.- Author:
 - Vincent Cucchietti
 
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description classAbstractTimeInterpolator.InterpolationDataNested class used to store interpolation data. 
- 
Field Summary
Fields Modifier and Type Field Description static doubleDEFAULT_EXTRAPOLATION_THRESHOLD_SECDefault extrapolation time threshold: 1ms.static intDEFAULT_INTERPOLATION_POINTSDefault number of interpolation points. 
- 
Constructor Summary
Constructors Constructor Description AbstractTimeInterpolator(int interpolationPoints, double extrapolationThreshold)Constructor. 
- 
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddOptionalSubInterpolatorIfDefined(TimeInterpolator<? extends TimeStamped> subInterpolator, List<TimeInterpolator<? extends TimeStamped>> subInterpolators)Add all lowest level sub interpolators to the sub interpolator list.static voidcheckInterpolatorCompatibilityWithSampleSize(TimeInterpolator<? extends TimeStamped> interpolator, int sampleSize)Method checking if given interpolator is compatible with given sample size.static <T extends TimeStamped>
AbsoluteDategetCentralDate(AbsoluteDate date, AbsoluteDate minDate, AbsoluteDate maxDate, double threshold)Get the central date to use to find neighbors while taking into account extrapolation threshold.static <T extends TimeStamped>
AbsoluteDategetCentralDate(AbsoluteDate date, ImmutableTimeStampedCache<T> cachedSamples, double threshold)Get the central date to use to find neighbors while taking into account extrapolation threshold.doublegetExtrapolationThreshold()Get the extrapolation threshold.intgetNbInterpolationPoints()Get the number of interpolation points.List<TimeInterpolator<? extends TimeStamped>>getSubInterpolators()Get all lowest level interpolators implemented by this instance, otherwise return a list with this instance only.protected doublegetTimeParameter(AbsoluteDate interpolatingTime, AbsoluteDate previousDate, AbsoluteDate nextDate)Get the time parameter which lies between [0:1] by normalizing the difference between interpolating time and previous date by the Δt between tabulated values.Tinterpolate(AbsoluteDate interpolationDate, Collection<T> sample)Get an interpolated instance.Tinterpolate(AbsoluteDate interpolationDate, Stream<T> sample)Get an interpolated instance.protected abstract Tinterpolate(AbstractTimeInterpolator.InterpolationData interpolationData)Interpolate instance from given interpolation data. 
 - 
 
- 
- 
Field Detail
- 
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
public static final double DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
Default extrapolation time threshold: 1ms.- See Also:
 - Constant Field Values
 
 
- 
DEFAULT_INTERPOLATION_POINTS
public static final int DEFAULT_INTERPOLATION_POINTS
Default number of interpolation points.- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
checkInterpolatorCompatibilityWithSampleSize
public static void checkInterpolatorCompatibilityWithSampleSize(TimeInterpolator<? extends TimeStamped> interpolator, int sampleSize)
Method checking if given interpolator is compatible with given sample size.- Parameters:
 interpolator- interpolatorsampleSize- sample size
 
- 
interpolate
public T interpolate(AbsoluteDate interpolationDate, Stream<T> sample)
Get an interpolated instance.- Specified by:
 interpolatein interfaceTimeInterpolator<T extends TimeStamped>- Parameters:
 interpolationDate- interpolation datesample- time stamped sample- Returns:
 - a new instance, interpolated at specified date
 - See Also:
 TimeStamped,AbsoluteDate
 
- 
interpolate
public T interpolate(AbsoluteDate interpolationDate, Collection<T> sample)
Get an interpolated instance..- Specified by:
 interpolatein interfaceTimeInterpolator<T extends TimeStamped>- Parameters:
 interpolationDate- interpolation datesample- time stamped sample- Returns:
 - a new instance, interpolated at specified date
 
 
- 
getCentralDate
public static <T extends TimeStamped> AbsoluteDate getCentralDate(AbsoluteDate date, ImmutableTimeStampedCache<T> cachedSamples, double threshold)
Get the central date to use to find neighbors while taking into account extrapolation threshold.- Type Parameters:
 T- type of element- Parameters:
 date- interpolation datecachedSamples- cached samplesthreshold- extrapolation threshold- Returns:
 - central date to use to find neighbors
 - Since:
 - 12.0.1
 
 
- 
getCentralDate
public static <T extends TimeStamped> AbsoluteDate getCentralDate(AbsoluteDate date, AbsoluteDate minDate, AbsoluteDate maxDate, double threshold)
Get the central date to use to find neighbors while taking into account extrapolation threshold.- Type Parameters:
 T- type of element- Parameters:
 date- interpolation dateminDate- earliest date in the sample.maxDate- latest date in the sample.threshold- extrapolation threshold- Returns:
 - central date to use to find neighbors
 - Since:
 - 12.0.1
 
 
- 
getSubInterpolators
public List<TimeInterpolator<? extends TimeStamped>> getSubInterpolators()
Get all lowest level interpolators implemented by this instance, otherwise return a list with this instance only.An example would be the spacecraft state interpolator which can use different interpolators for each of its attributes (orbit, absolute position-velocity-acceleration coordinates, mass...). In this case, it would return the list of all of these interpolators (or possibly all of their sub-interpolators if they were to use multiple interpolators themselves).
- Specified by:
 getSubInterpolatorsin interfaceTimeInterpolator<T extends TimeStamped>- Returns:
 - list of interpolators
 
 
- 
getNbInterpolationPoints
public int getNbInterpolationPoints()
Get the number of interpolation points. In the specific case where this interpolator contains multiple sub-interpolators, this method will return the maximum number of interpolation points required among all sub-interpolators.- Specified by:
 getNbInterpolationPointsin interfaceTimeInterpolator<T extends TimeStamped>- Returns:
 - the number of interpolation points
 
 
- 
getExtrapolationThreshold
public double getExtrapolationThreshold()
Get the extrapolation threshold.- Specified by:
 getExtrapolationThresholdin interfaceTimeInterpolator<T extends TimeStamped>- Returns:
 - get the extrapolation threshold
 
 
- 
addOptionalSubInterpolatorIfDefined
protected void addOptionalSubInterpolatorIfDefined(TimeInterpolator<? extends TimeStamped> subInterpolator, List<TimeInterpolator<? extends TimeStamped>> subInterpolators)
Add all lowest level sub interpolators to the sub interpolator list.- Parameters:
 subInterpolator- optional sub interpolator to addsubInterpolators- list of sub interpolators
 
- 
interpolate
protected abstract T interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
Interpolate instance from given interpolation data.- Parameters:
 interpolationData- interpolation data- Returns:
 - interpolated instance from given interpolation data.
 
 
- 
getTimeParameter
protected double getTimeParameter(AbsoluteDate interpolatingTime, AbsoluteDate previousDate, AbsoluteDate nextDate)
Get the time parameter which lies between [0:1] by normalizing the difference between interpolating time and previous date by the Δt between tabulated values.- Parameters:
 interpolatingTime- time at which we want to interpolate a value (between previous and next tabulated dates)previousDate- previous tabulated value datenextDate- next tabulated value date- Returns:
 - time parameter which lies between [0:1]
 
 
 - 
 
 -