astro py:docs

- Index
- Modules

### Navigation

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

# convolve

`astropy.convolution.``convolve`(array, kernel, boundary=u'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 `NaN``s 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 `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.