astro py:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- Astropy v0.3 »
- Convolution and filtering (`astropy.convolution`) »
- convolve

# convolve

`astropy.convolution.convolve.``convolve`(array, kernel, boundary='fill', fill_value=0.0, normalize_kernel=False)

  Convolve an array with a kernel.

  This routine differs from `scipy.ndimage.filters.convolve` because it includes a special treatment for `NaN` values. Rather than including `NaNs` in the convolution calculation, which causes large `NaN` holes in the convolved image, `NaN` values are replaced with interpolated values using the kernel as an interpolation function.

  Parameters:

  array : `numpy.ndarray`

  > The array to convolve. This should be a 1, 2, or 3-dimensional array or a list or a set of nested lists representing a 1, 2, or 3-dimensional array.

  kernel : `numpy.ndarray` or nddata.convolution.Kernel

  > The convolution kernel. The number of dimensions should match those for the array, and the dimensions should be odd in all directions.

  boundary : str, optional

  > A flag indicating how to handle boundaries:
  >   - `None`

  >       Set the `result` values to zero where the kernel extends beyond the edge of the array (default).

  >   - ‘fill’

  >       Set values outside the array boundary to `fill_value`.

  >   - ‘wrap’

  >       Periodic boundary that wrap to the other side of `array`.

  >   - ‘extend’

  >       Set values outside the array to the nearest `array` value.

  fill_value : float, optional

  > The value to use outside the array when using boundary=’fill’

  normalize_kernel : bool, optional

  > Whether to normalize the kernel prior to convolving

  Returns:

  result : `numpy.ndarray`

  > An array with the same dimensions and as the input array, convolved with kernel. The data type depends on the input array type. If array is a floating point type, then the return array keeps the same data type, otherwise the type is numpy.float.

  Notes

  Masked arrays are not supported at this time. The convolution is always done at numpy.float precision.