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,
                             Collection<T> sample)
        Get an interpolated instance..
        Specified by:
        interpolate in interface TimeInterpolator<T extends TimeStamped>
        Parameters:
        interpolationDate - interpolation date
        sample - time stamped sample
        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 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
      • 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]