Approximating scattered data

Grant Edwards grante at
Sun Jan 2 03:31:07 CET 2005

On 2005-01-02, beliavsky at <beliavsky at> wrote:

>>However, I can't find anything usable from Python, and my
>>Fortram skills are pretty rusty. I tried SciPy, but it's spline
>>fitting module doesn't work at all for my data. I've found
>>mentions of a Python port NURBS toolbox, but all the links I
>>can find are broken.
> NURBS is available in Matlab and Scilab at
> , and translating to
> Python with Numeric/Numarray should not be too hard.

Right.  It says there's a Python module for the NURBS toolkit,
but there's nothing about NURBS on the page to which the link
points. Googling for Python and NURBS toolkit doesn't find
anything else.

> If you are trying to fit z = f(x,y) without having a particular
> functional form in mind, you can apply a nonparametric regression
> technique. One of the easiest approaches to code is Nadaraya-Watson
> kernel regression -- see for example
> ,
> equation 4.68,

Well, I can see it, but that's about it...   :)

> where a Gaussian kernel can be used for K. PyML at
> may
> implement this (I have not tried it).

Thanks, I'll take a look.

> LIBSVM at has a
> Python interface for Support Vector Machines, a fairly popular
> and recent flexible regression method.

I'll give that a look also.  

One of the important considerations is the efficiency of
evaluating the approximating function (calculating z given x
and y).  That code is going to be running on a rather slow
processor w/o floating point HW, and if the evaluation takes
more than about 40ms, I'm going to have problems.  The
evaluating the spline surface produced by scipy's FITPACK
wrapper was fast enough, but I had to force the scattered data
onto a grid (which introduced errors), and then the spline
surfaces generated were wildly unstable between the grid

Grant Edwards                   grante             Yow!  The Korean War must
                                  at               have been fun.

More information about the Python-list mailing list