PyDL:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- pydl v1.0.0 »
- SDSS Utilities (`pydl.pydlutils`) »
- bspline

# bspline

class pydl.pydlutils.bspline.bspline(x, nord=4, npoly=1, bkpt=None, bkspread=1.0, placed=None, bkspace=None, nbkpts=None, everyn=None)

  Bases: `object`

  B-spline class.

  Functions in the idlutils bspline library are implemented as methods on this class.

  Parameters:
    x `numpy.ndarray`

      The data.

    nord `int`, optional

      The order of the B-spline. Default is 4, which is cubic.

    npoly `int`, optional

      Polynomial order to fit over 2nd variable, if supplied. If not supplied the order is 1.

    bkpt `numpy.ndarray`, optional

      An initial breakpoint vector. If omitted, breakpoints will be computed from other options.

    bkspread `float`, optional

      Applies a scale factor to the difference between successive value of `bkpt`.

    placed `numpy.ndarray`, optional

      Precalculated breakpoint positions.

    bkspace `float`, optional

      Spacing of breakpoints in units of `x`.

    nbkpts `int`, optional

      Number of breakpoints to span `x` range; minimum is 2 (the endpoints).

    everyn `int`, optional

      Spacing of breakpoints in good pixels.

  Notes

  Although this code has been tested (in the sense that it reproduces the original idlutils code) and appears to work for a subset 1-dimensional cases, it should not be used for 2 dimensions or more exotic 1-dimensional cases.

  Attributes:
    breakpoints

      The processed breakpoints for the fit, based on the initialization options.

    nord

      The order of the B-spline. Default is 4, which is cubic.

    npoly

      Polynomial order to fit over 2nd variable, if supplied. If not supplied the order is 1.

    mask

      A mask for `breakpoints`.

    coeff

      Internal attribute used by `fit()`.

    icoeff

      Internal attribute used by `fit()`.

    xmin

      Normalization minimum for the second variable in 2-dimensional fits.

    xmax

      Normalization maximum for the second variable in 2-dimensional fits.

    funcname

      For 2-dimensional fits, this is the function for the second variable. The default is ‘legendre’.

  Init creates an object whose attributes are similar to the structure returned by the `create_bsplineset()` function.

  Methods Summary

  `action`(x[, x2]) | Construct banded B-spline matrix, with dimensions [ndata, bandwidth].
  `bsplvn`(x, ileft) | Calculates the value of all possibly nonzero B-splines at `x` of a certain order.
  `fit`(xdata, ydata, invvar[, x2]) | Calculate a B-spline in the least-squares sense.
  `intrv`(x) | Find the segment between breakpoints which contain each value in the array `x`.
  `maskpoints`(err) | Perform simple logic of which breakpoints to mask.
  `value`(x[, x2, action, lower, upper]) | Evaluate a B-spline at specified values.

  Methods Documentation

  action(x, x2=None)

    Construct banded B-spline matrix, with dimensions [ndata, bandwidth].

    Parameters:
      x `numpy.ndarray`

        Independent variable.

      x2 `numpy.ndarray`, optional

        Orthogonal dependent variable for 2d fits.

    Returns:
      `tuple`

        A tuple containing the B-spline action matrix; the ‘lower’ parameter, a list of pixel positions, each corresponding to the first occurence of position greater than breakpoint indx; and ‘upper’, Same as lower, but denotes the upper pixel positions.

  bsplvn(x, ileft)

    Calculates the value of all possibly nonzero B-splines at `x` of a certain order.

    Parameters:
      x `numpy.ndarray`

        Independent variable.

      ileft `int`

        Breakpoint segements that contain `x`.

    Returns:
      `numpy.ndarray`

        B-spline values.

  fit(xdata, ydata, invvar, x2=None)

    Calculate a B-spline in the least-squares sense.

    Fit is based on two variables: `xdata` which is sorted and spans a large range where breakpoints are required `ydata` which can be described with a low order polynomial.

    Parameters:
      xdata `numpy.ndarray`

        Independent variable.

      ydata `numpy.ndarray`

        Dependent variable.

      invvar `numpy.ndarray`

        Inverse variance of `ydata`.

      x2 `numpy.ndarray`, optional

        Orthogonal dependent variable for 2d fits.

    Returns:
      `tuple`

        A tuple containing an integer error code, and the evaluation of the b-spline at the input values. An error code of -2 is a failure, -1 indicates dropped breakpoints, 0 is success, and positive integers indicate ill-conditioned breakpoints.

  intrv(x)

    Find the segment between breakpoints which contain each value in the array `x`.

    The minimum breakpoint is `nbkptord - 1`, and the maximum is `nbkpt - nbkptord - 1`.

    Parameters:
      x `numpy.ndarray`

        Data values, assumed to be monotonically increasing.

    Returns:
      `numpy.ndarray`

        Position of array elements with respect to breakpoints.

  maskpoints(err)

    Perform simple logic of which breakpoints to mask.

    Parameters:
      err `numpy.ndarray`

        The list of indexes returned by the cholesky routines.

    Returns:
      `int`

        An integer indicating the results of the masking. -1 indicates that the error points were successfully masked. -2 indicates failure; the calculation should be aborted.

    Notes

    The mask attribute is modified, assuming it is possible to create the mask.

  value(x, x2=None, action=None, lower=None, upper=None)

    Evaluate a B-spline at specified values.

    Parameters:
      x `numpy.ndarray`

        Independent variable.

      x2 `numpy.ndarray`, optional

        Orthogonal dependent variable for 2d fits.

      action `numpy.ndarray`, optional

        Action matrix to use. If not supplied it is calculated.

      lower `numpy.ndarray`, optional

        If the action parameter is supplied, this parameter must also be supplied.

      upper `numpy.ndarray`, optional

        If the action parameter is supplied, this parameter must also be supplied.

    Returns:
      `tuple`

        A tuple containing the results of the bspline evaluation and a mask indicating where the evaluation was good.