Interpolating 2d data that is piecewise constant on faces
Posted
by celil
on Stack Overflow
See other posts from Stack Overflow
or by celil
Published on 2010-02-19T22:35:24Z
Indexed on
2010/03/08
16:21 UTC
Read the original article
Hit count: 507
I have an irregular mesh which is described by two variables - a faces array that stores the indices of the vertices that constitute each face, and a verts array that stores the coordinates of each vertex. I also have a function that is assumed to be piecewise constant over each face, and it is stored in the form of an array of values per face.
I am looking for a way to construct a function f
from this data. Something along the following lines:
faces = [[0,1,2], [1,2,3], [2,3,4] ...]
verts = [[0,0], [0,1], [1,0], [1,1],....]
vals = [0.0, 1.0, 0.5, 3.0,....]
f = interpolate(faces, verts, vals)
f(0.2, 0.2) = 0.0 # point inside face [0,1,2]
f(0.6, 0.6) = 1.0 # point inside face [1,2,3]
The manual way of evaluating f(x,y)
would be to find the corresponding face that the point x,y
lies in, and return the value that is stored in that face. Is there a function that already implements this in scipy (or in matlab)?
© Stack Overflow or respective owner