# [SciPy-User] Interpolation in 3D with interp2d

Pauli Virtanen pav@iki...
Wed Aug 4 14:21:32 CDT 2010

```Sun, 01 Aug 2010 21:25:37 +0200, Jana Schulz wrote:
> I'm trying to interpolate a 3D data (from the pic attached) with the
> interp2d command. What I have, are three vectors f, z, A (x, y, z
> respectively, A is the percentage data given on the isolines). I first
> put the f and z in a meshgrid and afterwards pruduced a mesh with the A
> vector then started to interpolate.

This sounds like you are trying to use `interp2d` for something it does

So let's clarify: you have points (f[i], z[i]), and function values A[i].
The points (f[i], z[i]) do not form a regular grid. If yes, then you
almost certainly are looking for the `griddata` function:

>>> from matplotlib.mlab import griddata

Or possibly, you could also try to use splines:

>>> from scipy.intepolate import SmoothBivariateSpline
>>> int2d = SmoothBivariateSpline(f, z, A, s=0)
>>> intnew = int2d(ef, ez)

Mind the `s=0` -- otherwise it will try to smooth your data. However, if
your data point distribution is irregular, the spline method will likely
produce bad results -- they're OK for smoothing, but not so nice for data
regridding.

--
Pauli Virtanen

```