[Numpy-discussion] Vector interpolation on a 2D grid (with realistic results)

Pierre GM pgmdevlist at gmail.com
Sat Nov 7 18:38:33 EST 2009


On Nov 6, 2009, at 5:45 PM, Pauli Virtanen wrote:

> pe, 2009-11-06 kello 17:20 -0500, Pierre GM kirjoitti:
>> All,
>> I have a vector of observations (latitude,longitude,value) that I
> need
>> to interpolate over a given area.


> You could try to use linear interpolation from the delaynay package
> (only supports slicing, so is a bit tricky to use). I may be slightly
> smoother than the natural neighbour one.
>
> For scattered data, when I wasn't happy with delaunay, I've also used
> the radial basis functions (Rbf) from scipy.interpolate -- something
> like
>
>        interpolator = Rbf(x, y, z, function='thin-plate', smooth=1e-9)
>
> should give an interpolator that is reasonably smooth between the data
> points. (I'd guess you can give it leeway in trading interpolation to
> smoothness by increasing the smooth parameter.) Other Rbf functions  
> than
> thin-plate splines might also work.

Linear interpolation with the delaunay package doesn't work great for  
my data. I played with the radial basis functions, but I'm afraid  
they're leading me down the dark, dark path of parameter fiddling. In  
particular, I'm not sure how to prevent my interpolated values to be  
bounded by the min and max of my actual observations.
Ralf' suggestion of smoothing the values afterwards is tempting, but  
sounds a bit too ad-hoc (btw, Ralf, those were relative differences of  
monthly average precipitation between El Niño and Neutral phases for  
November).

Chris, I gonna poke around and try to find some kriging algorithms.  
I'll report in a few. In the meantime, if anybody has anythng already  
implemented, please just let us know.





More information about the NumPy-Discussion mailing list