[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