Class AbstractTimeInterpolator<T extends TimeStamped>

    • 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
    • Constructor Detail

      • AbstractTimeInterpolator

        public AbstractTimeInterpolator​(int interpolationPoints,
                                        double extrapolationThreshold)
        Constructor.
        Parameters:
        interpolationPoints - number of interpolation points
        extrapolationThreshold - extrapolation threshold beyond which the propagation will fail
    • 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 - interpolator
        sampleSize - sample size
      • interpolate

        public T interpolate​(AbsoluteDate interpolationDate,
                             Stream<T> sample)
        Get an interpolated instance.

        The stream must yield elements in chronological order. Passing an unsorted stream yields undefined neighbors and may throw TimeStampedCacheException.

        The stream must hold elements in chronological order.

        Specified by:
        interpolate in interface TimeInterpolator<T extends TimeStamped>
        Parameters:
        interpolationDate - interpolation date
        sample - time stamped sample (chronologically sorted)
        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.

        The sample must be in chronological order. Passing an unsorted sample yields undefined neighbors and may throw TimeStampedCacheException.

        Precondition: sample must be sorted in chronological order. Passing an unsorted sample yields undefined neighbors and may throw TimeStampedCacheException.

        Specified by:
        interpolate in interface TimeInterpolator<T extends TimeStamped>
        Parameters:
        interpolationDate - interpolation date
        sample - time stamped sample (chronologically sorted)
        Returns:
        a new instance, interpolated at specified date
      • getCentralDate

        public static <T extends TimeStampedAbsoluteDate 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 date
        cachedSamples - cached samples
        threshold - extrapolation threshold
        Returns:
        central date to use to find neighbors
        Since:
        12.0.1
      • getCentralDate

        public static AbsoluteDate getCentralDate​(AbsoluteDate date,
                                                  AbsoluteDate minDate,
                                                  AbsoluteDate maxDate,
                                                  double threshold)
        Get the central date to use to find neighbors while taking into account an extrapolation threshold.
        Parameters:
        date - interpolation date
        minDate - 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:
        getSubInterpolators in interface TimeInterpolator<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:
        getNbInterpolationPoints in interface TimeInterpolator<T extends TimeStamped>
        Returns:
        the number of interpolation points
      • getInternalNbInterpolationPoints

        public int getInternalNbInterpolationPoints()
        Get the number of interpolation points for this instance only i.e., not taking into account sub-interpolators.
        Returns:
        required the number of interpolation points for this instance only i.e., not taking into account sub-interpolators.
      • 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 add
        subInterpolators - 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 date
        nextDate - next tabulated value date
        Returns:
        time parameter which lies between [0:1]