MexicanHat2DKernel

class astropy.convolution.MexicanHat2DKernel(width, **kwargs)[source] [edit on github]

Bases: astropy.convolution.Kernel2D

2D Mexican hat filter kernel.

The Mexican Hat, or inverted Gaussian-Laplace filter, is a bandpass filter. It smooths the data and removes slowly varying or constant structures (e.g. Background). It is useful for peak or multi-scale detection.

This kernel is derived from a normalized Gaussian function, by computing the second derivative. This results in an amplitude at the kernels center of 1. / (pi * width ** 4). The normalization is the same as for scipy.ndimage.gaussian_laplace, except for a minus sign.

Parameters:
width : number

Width of the filter kernel, defined as the standard deviation of the Gaussian function from which it is derived.

x_size : odd int, optional

Size in x direction of the kernel array. Default = 8 * width.

y_size : odd int, optional

Size in y direction of the kernel array. Default = 8 * width.

mode : str, optional
One of the following discretization modes:
  • ‘center’ (default)
    Discretize model by taking the value at the center of the bin.
  • ‘linear_interp’
    Discretize model by performing a bilinear interpolation between the values at the corners of the bin.
  • ‘oversample’
    Discretize model by taking the average on an oversampled grid.
  • ‘integrate’
    Discretize model by integrating the model over the bin.
factor : number, optional

Factor of oversampling. Default factor = 10.

Examples

Kernel response:

import matplotlib.pyplot as plt
from astropy.convolution import MexicanHat2DKernel
mexicanhat_2D_kernel = MexicanHat2DKernel(10)
plt.imshow(mexicanhat_2D_kernel, interpolation='none', origin='lower')
plt.xlabel('x [pixels]')
plt.ylabel('y [pixels]')
plt.colorbar()
plt.show()

()

../_images/astropy-convolution-MexicanHat2DKernel-1.png