diff --git a/interp/grid/__init__.py b/interp/grid/__init__.py index 0f3abe4..8110024 100644 --- a/interp/grid/__init__.py +++ b/interp/grid/__init__.py @@ -35,6 +35,17 @@ class grid(object): pickle.dump([f.verts for f in self.cells.itervalues()], open(cfile, 'w')) +def get_simplex_extra_points(X, points, triangulation, kdtree, extra_points=8): + simplex_id = triangulation.find_simplex(X) + simplex_verts_ids = set(triangulation.vertices[simplex_id]) + + distances, kdt_ids = kdtree.query(X, extra_points + len(simplex_verts_ids)) + kdt_ids = set(kdt_ids) + + simplex_ids = list(simplex_verts_ids) + extra_points_ids = list(kdt_ids - simplex_verts_ids) + + return simplex_ids, extra_points_ids def contains(X, R): """ diff --git a/interp/grid/delaunay.py b/interp/grid/delaunay.py index 826f64e..f3f9078 100644 --- a/interp/grid/delaunay.py +++ b/interp/grid/delaunay.py @@ -1,20 +1,9 @@ import scipy.spatial from interp.grid import grid as basegrid +from interp.grid import get_simplex_extra_points -def get_simplex_extra_points(X, points, triangulation, kdtree, extra_points=8): - simplex_id = triangulation.find_simplex(X) - simplex_verts_ids = set(triangulation.vertices[simplex_id]) - - distances, kdt_ids = kdtree.query(X, extra_points + len(simplex_verts_ids)) - kdt_ids = set(kdt_ids) - - simplex_ids = list(simplex_verts_ids) - extra_points_ids = list(kdt_ids - simplex_verts_ids) - - return simplex_ids, extra_points_ids - class dgrid(basegrid): def __init__(self, points, values): self.points = points