I want to do 2D interpolation on an irregular grid.

In particular, I have a function f:\mathbb R^2 \rightarrow \mathbb R, (x, y) \mapsto z. I have an irregular grid D = (x_i, y_i)_i as well as the corresponding values F = (f_i)_i. I would like to interpolate D, F to obtain f.

I have tried Dierckx, which according to the documentation supports 2D interpolation on irregular grids, but keeps giving me the following error:
“No more knots can be added because the additional knot would
(quasi) coincide with an old one: s too small or too large a weight to
an inaccurate data point. The weighted least-squares spline
corresponds to the current set of knots.”

I am currently using the “NaturalNeighbours” package in Julia to do the interpolation, and I have also used “Kriging”, but both are extremely slow.

I would love to hear any suggestions on how to speed up the performance of the interpolation, as well as if there are ways to fix the error I am getting with Dierckx.

The idea is that you’re going to use some kind of radial basis function convolved with the points that you have sampled to intepolate over the remaining continuous space.

I am currently using the “NaturalNeighbours” package in Julia to do the interpolation, and I have also used “Kriging”, but both are extremely slow.

Just curious: What was slow for NaturalNeighbours.jl? Are you computing it in batches? What method are you using? It should be very performant, so I’m interested in improving it. If you give some example data and how you are calling it I can look into it also.