Class CubicSplineInterpolator


  • public class CubicSplineInterpolator
    extends Plottable
    Class used to interpolate datasource values from the collection of (timestamp, values) points using natural cubic spline interpolation.

    WARNING: So far, this class cannot handle NaN datasource values (an exception will be thrown by the constructor). Future releases might change this.

    • Constructor Detail

      • CubicSplineInterpolator

        public CubicSplineInterpolator​(long[] timestamps,
                                       double[] values)
                                throws RrdException
        Creates cubic spline interpolator from arrays of timestamps and corresponding datasource values.
        Parameters:
        timestamps - timestamps in seconds
        values - corresponding datasource values
        Throws:
        RrdException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.
      • CubicSplineInterpolator

        public CubicSplineInterpolator​(Date[] dates,
                                       double[] values)
                                throws RrdException
        Creates cubic spline interpolator from arrays of Date objects and corresponding datasource values.
        Parameters:
        dates - Array of Date objects
        values - corresponding datasource values
        Throws:
        RrdException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.
      • CubicSplineInterpolator

        public CubicSplineInterpolator​(Calendar[] dates,
                                       double[] values)
                                throws RrdException
        Creates cubic spline interpolator from arrays of GregorianCalendar objects and corresponding datasource values.
        Parameters:
        dates - Array of GregorianCalendar objects
        values - corresponding datasource values
        Throws:
        RrdException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.
      • CubicSplineInterpolator

        public CubicSplineInterpolator​(double[] x,
                                       double[] y)
                                throws RrdException
        Creates cubic spline interpolator for an array of 2D-points.
        Parameters:
        x - x-axis point coordinates
        y - y-axis point coordinates
        Throws:
        RrdException - Thrown if supplied arrays do not contain at least 3 values, or if timestamps are not ordered, or array lengths are not equal, or some datasource value is NaN.
    • Method Detail

      • getValue

        public double getValue​(double xval)
        Calculates spline-interpolated y-value for the corresponding x-value. Call this if you need spline-interpolated values in your code.
        Parameters:
        xval - x-value
        Returns:
        inteprolated y-value
      • getValue

        public double getValue​(long timestamp)
        Method overriden from the base class. This method will be called by the framework. Call this method only if you need spline-interpolated values in your code.
        Overrides:
        getValue in class Plottable
        Parameters:
        timestamp - timestamp in seconds
        Returns:
        inteprolated datasource value