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
  • Field Details

    • DEFAULT_EXTRAPOLATION_THRESHOLD_SEC

      public static final double DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
      Default extrapolation time threshold: 1ms.
      See Also:
    • DEFAULT_INTERPOLATION_POINTS

      public static final int DEFAULT_INTERPOLATION_POINTS
      Default number of interpolation points.
      See Also:
  • Constructor Details

    • AbstractTimeInterpolator

      protected AbstractTimeInterpolator(int interpolationPoints, double extrapolationThreshold)
      Constructor.
      Parameters:
      interpolationPoints - number of interpolation points
      extrapolationThreshold - extrapolation threshold beyond which the propagation will fail
  • Method Details

    • 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.
      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
      See Also:
    • 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 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 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.
    • getExtrapolationThreshold

      public double getExtrapolationThreshold()
      Get the extrapolation threshold.
      Specified by:
      getExtrapolationThreshold in interface TimeInterpolator<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 add
      subInterpolators - list of sub interpolators
    • interpolate

      protected abstract T interpolate(AbstractTimeInterpolator<T>.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]