# [Scipy-tickets] [SciPy] #1497: Add Gaussian kernel convolution to interpolate.interp1d and interpolate.interp2d

SciPy Trac scipy-tickets@scipy....
Mon Aug 22 10:40:16 CDT 2011

#1497: Add Gaussian kernel convolution to interpolate.interp1d and
interpolate.interp2d
-------------------------------+--------------------------------------------
Reporter:  miguel             |       Owner:  somebody
Type:  enhancement        |      Status:  needs_info
Priority:  normal             |   Milestone:  Unscheduled
Component:  scipy.interpolate  |     Version:  0.9.0
Keywords:                     |
-------------------------------+--------------------------------------------

Comment(by miguel):

Replying to [comment:4 pv]:
> > It should be possible to use kernel convolution also for non-uniform
grids.
>
> A reference would be useful here. (The wikipedia page does not explain
this.)

This method is used in sub-mm spectroscopy and is implemented in several
data reduction
tools like GILDAS (http://iram.fr/IRAMFR/GILDAS/). The gridding function
using a convolution kernel is defined in packages/class/lib/map-xymap.f90.
The source code is freely available from their site but I'm not sure that
it can be redistributed so I'm not attaching the file just in case.

A simple example in 1D would be:

{{{
x = math.pi*np.random.rand(100)
y = np.sin(x)
}}}

To interpolate a point x0 between data points one convolves for example
with the normal distribution with standard deviation 0.3:

{{{
x0 = 2
y0 = np.average(y, weights=stats.norm.pdf(x, x0, 0.3))
}}}

The result of the interpolation is shown by the green dot in the attached
file and the kernel is shown in red. This is useful to interpolate noisy
spectra or gridding of two-dimensional spectral maps.

--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1497#comment:5>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.

More information about the Scipy-tickets mailing list