I have a series of coordinates that represent data in a 2D scalar field: x[i], y[i], F[i]. However, x[i] and y[i] are not on a rectilinear grid, they are "randomly" placed. I want to interpolate f[i] so I can estimate its value on a rectilinear grid of locations in x, y.
This problem should be the same height interpolation of a terrain (see http://www.cs.uu.nl/geobook/interpolation.pdf). For example, if one has a height map of a terrain, it is not necessarily measured on a rectilinear grid. However, many maps would prefer the height on a rectilinear grid. Therefore the data must be interpolated to a rectilinear grid.
I use Matlab and it has a griddata command that performs interpolation to a rectilinear grid. The methodology uses Delaunay triangulation and some interpolation that is not described. I could guess at how this works, but it seems to me that this type of code should've already been written by someone else.
See: http://www.mathworks.com/help/matlab/ref/griddata.html?refresh=true for reference regarding how the griddata produces a rectilinear interpolation from "scatter" data.
I want to integrate the code into a C# application, so I'm looking for a library or source code to incorporate. ALGLIB will perform a cubic spline interpolation from uniformly spaced to uniformly spaced. I can't find anything that will work with non-uniformly spaced data.