Looking for triangulator/interpolator

Grant Edwards grante at visi.com
Sat May 27 01:18:11 EDT 2006


On 2006-05-27, Grant Edwards <grante at visi.com> wrote:

> I found another module that claims to do what I want
>
> http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/griddata.html
>
> But, no matter what data I pass, I get either all zeros or all
> NaNs back. :/

Aaarrrggh. After some more sweating and swearing, it looks like
both the griddata module and the scipy.delaunay.nn_interpolator
do work as long as you pass the preferred brand of arrays to
them and specify the mesh/grid using the right scheme.

My problems seem to have been caused by the interaction of a
number of factors:

 1) Gnuplot.py seems to like convert _some_ floating-point
    arrays to integer values before plotting them -- this only
    seems to happen when passing 2D arrays to splot().  That
    was breaking some of my data.

 2) Converting the arrays to nested lists prevents the rounding
    to an integer problem but it apparently transposed the x/y
    axis without my noticing. Then the "holes" in some of the
    interpolated surfaces showed up. It turns out there were
    NaNs in the input data that were causing the holes, but
    because of the transposed x/y axis, I was looking in the
    wrong place in the data.

 3) Attempting to use the griddata module resulted in mixing
    array objects from pylab, numpy, numeric, and scipy (some
    of which may or may not be the same -- I can't keep track).
    Mixing array types seems to have tripped up some
    extensions. AFAICT, python code is happy with any of the
    array types since they're pretty much the same if you go by
    "duck" typing. But C/Fortran extensions only seem to work
    with one sort or the other, and some python modules that
    wrap those extensions will pass anything that quacks on
    down to C/Fortran code, when then gets confused.  Maybe.

 4) Even when the arrays were OK, there are a couple
    incompatible ways to specify a mesh/grid, and I picked the
    wrong one in at least one case.

-- 
Grant Edwards                   grante             Yow!  MMM-MM!! So THIS is
                                  at               BIO-NEBULATION!
                               visi.com            



More information about the Python-list mailing list