[SciPy-User] Linear interpolation in 3D

Hardock, Andreas andreas.hardock@isc.fraunhofer...
Thu Jul 29 01:09:03 CDT 2010


Hi,

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 in the griddata to get a 3D-grid then started the interpolateion. I plotted the the data after gridding, and I observed that almost all nodes are ignored.
Do you have any idea how to prepare data to the interp2d command? Don't hesitate to suggest any other solution.

my code so far is:

import numpy as np
from mpl_toolkits.mplot3d import axes3d
from scipy.interpolate import interp2d
import matplotlib.pyplot as plt
from matplotlib import mlab


plt.clf()
fig = plt.figure(1)
ax = axes3d.Axes3D(fig)
#read data
(ff,ZZ,A,a) = np.loadtxt("accuracy-map.txt", unpack=True)
f=np.log10(ff)
z=np.log10(ZZ)

##grid everything
fgrid, zgrid=np.meshgrid(f,z)
#define grid
ef=np.linspace(min(f), max(f), len(f))
ez=np.linspace(min(z), max(z), len(f))
Agrid=mlab.griddata(f,z,A, ef,ez)

int2d=interp2d(fgrid, zgrid, Agrid, kind='linear')

ax.plot(f, z, A, 'ok', markerfacecolor='w')
ax.plot_surface(fgrid, zgrid, Agrid)

ax.set_xlim3d((min(f), max(f)))
ax.set_ylim3d(min(z), max(z))
ax.set_zlim3d(0,100)
plt.show()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20100729/49433106/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: novo-error.pdf
Type: application/pdf
Size: 151539 bytes
Desc: novo-error.pdf
Url : http://mail.scipy.org/pipermail/scipy-user/attachments/20100729/49433106/attachment-0001.pdf 


More information about the SciPy-User mailing list