I have a cloud of data points in three dimensions (x,y,z) that carry a value of some sort (lets say temperature T). I was wondering what the best options were for interpolating the temperature to a new point within the cloud of points. The points I am working with are ordered, but not regular. So far, the only possibilities I have found were inverse distance weighting and possibly radial basis functions (although I am not very familiar with this method). Is there a method that is considered more accurate? What are the advantages/disadvantages?

  • $\begingroup$ What does "ordered, but not regular" mean, please ? See also inverse-distance-weighted-idw-interpolation-with-python on SO. $\endgroup$ – denis Feb 4 '16 at 11:34
  • $\begingroup$ In this case "ordered" meant that the points had an associated (i,j,k) value given to each of them and "not regular" meant that they were not necessarily orthogonal or equally spaced $\endgroup$ – Travis Feb 4 '16 at 18:03

How many points and how irregular is the sparsity? Globally supported RBF fill holes of all sizes smoothly and according to the local trends, but the interpolation matrix is not well-conditioned and hard to solve computationally for even relatively small data-sets of millions of points. Compactly supported RBF are easier to deal with, there are a number of software libraries available, but this relies on your intuition in choosing the shape parameter, the support radius related to an average hole size.

EDIT: in light of new detail in your comment below, I'd recommend globally supported RBF, such as http://en.wikipedia.org/wiki/Polyharmonic_spline. After solving for the coefficients, evaluating the interpolant that is a sum of 100 terms could even be done directly, without implementing any fast RBF evaluation method. See also, e.g., this discussion and implementation: http://www.alglib.net/interpolation/introductiontorbfs.php

  • $\begingroup$ I'm am interested in doing the interpolation very locally such that my number of points would be on the order of 100. I could very well increase this number if necessary, but I believe this will suffice for my current problem. The sparsity of the points varies greatly. Distance between points ranges somewhere from 1e-6 to 0.25 meters. $\endgroup$ – Travis Jan 8 '15 at 17:34
  • $\begingroup$ Thank you for your help. Also, thanks for the links. $\endgroup$ – Travis Jan 8 '15 at 23:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.