[SciPy-user] 2D Interpolation

John Travers jtravs@gmail....
Fri Jun 27 13:37:47 CDT 2008


On Fri, Jun 27, 2008 at 7:13 PM, Ryan May <rmay31@gmail.com> wrote:
> Hi,
>
> Can anyone help me use scipy.interpolate correctly.  Here's my problem:
> I'm trying to make a 2D lookup table to save some calculations.  The two
> parameters over which the lookup table is generated are independent and
> I have complete control over how I divide up the domain.  Using this
> lookup table, I'd like to then calculate values over an unstructured set
> of parameter values (ie. a list of pairs of parameter values).  Is there
> a function in scipy.interpolate that can help here? What I'd really like
> to be able to do is generate an interpolator object from my 2D array,
> and then pass a pair of 1D arrays to the object and have it return 1D
> array of values.

This should get you started:

import scipy
import scipy.interpolate

# the two axes
x = scipy.linspace(-1.0,1.0,10)
y = x

# make some pretend data
gridy, gridx = scipy.meshgrid(x,y)
z = scipy.sin(gridx)*scipy.sin(gridy)

# create a spline interpolator
spl = scipy.interpolate.RectBivariateSpline(x,y,z)

# make some new axes to interpolate to
nx = scipy.linspace(-1.0,1.0,100)
ny = nx

# evaluate
nz = spl(nx, ny)

# with matplotlib, compare:
import pylab
pylab.matshow(z)
pylab.matshow(nz)

Cheers,
John


More information about the SciPy-user mailing list