colour.algebra.interpolation Module — Colour 0.3.0 documentation

# colour.algebra.interpolation Module

## Interpolation

Defines classes for interpolating variables.

- `LinearInterpolator1d`: 1-D function linear interpolation.
- `SpragueInterpolator`: 1-D function fifth-order polynomial interpolation.

class `colour.algebra.interpolation.` `LinearInterpolator1d`(x=None, y=None)

  Bases: `object`

  Linearly interpolates a 1-D function.

  Parameters: | x (ndarray) – Independent \(x\) variable values corresponding with \(y\) variable. y (ndarray) – Dependent and already known \(y\) variable values to interpolate.

  `__call__`()

  Notes

  This class is a wrapper around numpy.interp definition.

  See also

  `SpragueInterpolator`

  Examples

  Interpolating a single numeric variable:

      >>> y = np.array([5.9200, 9.3700, 10.8135, 4.5100, 69.5900, 27.8007, 86.0500])
      >>> x = np.arange(len(y))
      >>> f = LinearInterpolator1d(x, y)
      >>> # Doctests ellipsis for Python 2.x compatibility.
      >>> f(0.5)
      7.64...

  Interpolating an array_like variable:

      >>> f([0.25, 0.75])
      array([ 6.7825,  8.5075])

  `__call__`(x)

    Evaluates the interpolating polynomial at given point(s).

    Parameters: | x (numeric or array_like) – Point(s) to evaluate the interpolant at.
    Returns: | Interpolated value(s).
    Return type: | float or ndarray

  `x`

    Property for self.__x private attribute.

    Returns: | self.__x
    Return type: | array_like

  `y`

    Property for self.__y private attribute.

    Returns: | self.__y
    Return type: | array_like

class `colour.algebra.interpolation.` `SplineInterpolator`(*args, **kwargs)

  Bases: `scipy.interpolate.interpolate.interp1d`

  Interpolates a 1-D function using cubic spline interpolation.

  Notes

  This class is a wrapper around scipy.interpolate.interp1d class.

class `colour.algebra.interpolation.` `SpragueInterpolator`(x=None, y=None)

  Bases: `object`

  Constructs a fifth-order polynomial that passes through \(y\) dependent variable.

  The Sprague (1880) method is recommended by the CIE for interpolating functions having a uniformly spaced independent variable.

  Parameters: | x (array_like) – Independent \(x\) variable values corresponding with \(y\) variable. y (array_like) – Dependent and already known \(y\) variable values to interpolate.

  `__call__`()

  See also

  `LinearInterpolator1d`

  Notes

  The minimum number \(k\) of data points required along the interpolation axis is \(k=6\).

  References

  [1] | CIE 167:2005 Recommended Practice for Tabulating Spectral Data for Use in Colour Computations: 9.2.4 Method of interpolation for uniformly spaced independent variable

  [2] | Stephen Westland, Caterina Ripamonti, Vien Cheung, Computational Colour Science Using MATLAB, 2nd Edition, The Wiley-IS&T Series in Imaging Science and Technology, published July 2012, ISBN-13: 978-0-470-66569-5, page 33.

  Examples

  Interpolating a single numeric variable:

      >>> y = np.array([5.9200, 9.3700, 10.8135, 4.5100, 69.5900, 27.8007, 86.0500])
      >>> x = np.arange(len(y))
      >>> f = SpragueInterpolator(x, y)
      >>> f(0.5)
      7.2185025...

  Interpolating an array_like variable:

      >>> f([0.25, 0.75])
      array([ 6.7295161...,  7.8140625...])

  `SPRAGUE_C_COEFFICIENTS` = array([[ 884, -1960, 3033, -2648, 1080, -180], [ 508, -540, 488, -367, 144, -24], [ -24, 144, -367, 488, -540, 508], [ -180, 1080, -2648, 3033, -1960, 884]])

    Defines the coefficients used to generate extra points for boundaries interpolation.

    SPRAGUE_C_COEFFICIENTS : array_like, (4, 6)

    References

    [3] | CIE 167:2005 Recommended Practice for Tabulating Spectral Data for Use in Colour Computations: Table V

  `__call__`(x)

    Evaluates the interpolating polynomial at given point(s).

    Parameters: | x (numeric or array_like) – Point(s) to evaluate the interpolant at.
    Returns: | Interpolated value(s).
    Return type: | numeric or ndarray

  `x`

    Property for self.__x private attribute.

    Returns: | self.__x
    Return type: | array_like

  `y`

    Property for self.__y private attribute.

    Returns: | self.__y
    Return type: | array_like