[SciPy-dev] interp2d and sandbox/delaunay

Robert Kern robert.kern at gmail.com
Mon Oct 16 12:43:38 EDT 2006


John Travers wrote:
> OK, we have a patch waiting for putting regrid into interp2d. The
> delaunay code in the sandbox looks like it is fine for the scattered
> data. So our new interp2d should call regrid for regular data, and use
> natural neighbour interpolation from delaunay for scattered data. I
> can submit a patch for this, but we need delaunay out of sandbox for
> this to work. (and it means interpolate will depend on another
> module).

I am very much against interp2d() doing different algorithms. Each algorithm 
should be exposed as separate functions. Even though my data is regular, it is 
entirely possible that I would want to use natural neighbor interpolation anyways.

> Speaking about the current module setup, we should really actually
> have a scipy.approximation.spline (contents of fitpack, currently in
> interpolate) module. At the moment it is just confusing (calling
> scipy.interpolate.fitpack2.SmoothBivariateSpline for smoothing and not
> interpolation???)  then we could also have
> scipy.approximate.smooth2d() and leave scipy.interpolate with interp1d
> etc.

That's not a bad idea.

> Anybody have any comments on this? Is delaunay ready to be moved, how
> about the module reorganisation (would break api).

I think the API is stable, and I think most of the bugs have been shaken out. I 
would like to replace the underlying Delaunay triangulation algorithm with a 
Guibas-Stolfi divide-and-conquer algorithm using robust geometric predicates, 
but I'm still implementing that slowly. Also, the error handling in the C++ was 
implemented very naively and should be replaced. However, neither of those 
issues would affect the external use of the module (except perhaps by making it 
more robust), and probably don't need to hold up moving the module out of the 
sandbox if there is a great need for it. An impartial reviewer might disagree 
with me, of course.  :-)

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco



More information about the SciPy-Dev mailing list