Linear nterpolation in 3D




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 to interpolate. 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?

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

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

##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) novo-error.pdf


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question