# [SciPy-user] 2D Interpolation

Ryan May rmay31@gmail....
Sun Jun 29 13:00:06 CDT 2008

```Pauli Virtanen wrote:
> Fri, 27 Jun 2008 16:46:30 -0400, Ryan May wrote:
>
>> Pauli Virtanen wrote:
>>> Hi,
>>>
>>> Fri, 27 Jun 2008 14:13:22 -0400, Ryan May wrote:
>>>> 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.
> [clip]
>
> Another hint: looking at
>
> 	scipy.ndimage.map_coordinates
>
> may turn out to be useful: it seems to be able to interpolate from a
> regular grid to a vector of coordinates.
>

Jackpot!  This works really well.  There's a good example on using it here:

http://www.scipy.org/Cookbook/Interpolation

Which is important, because I had to read the docstring a dozen times to
understand what was going on.  It should also be noted that while the
example interpolates to a regular grid, there's nothing precluding
interpolating to an irregular collection of points.  What's weird is
that you need to manually scale the points to which you're interpolating
to be floating point indices within the original grid.  This is
probably due to the ndimage-focused nature of map_coordinates.

Moving some of the functionality of map_coordinates, in a more generic
fashion, into scipy.interpolate wouldn't be the worst idea in the world.
Then again, I don't know if anyone else is planning on improving
scipy.interpolate to gain this functionality (interpolation to array of
irregular set of points) in another way.  (I also can't volunteer to
step up and do it at this time.)

Ryan

--
Ryan May