3
votes

How do you interpolate data on the sphere / hemisphere in C++?

I have a bunch of theta, phi spherical coordinates with a density value associated. [Theta | Phi | Density] for about 100 points.

If I sample a new data point, not captured in the data but on the sphere, How can I find what the interpolated density value should be from the data points?

Splines, RBFs, something else?

1
This is not a programming question. Better ask elsewhere. I would guess one way is to use spherical harmonics.Walter
This question appears to be off-topic because it is not about programmingWalter
I cross posted in algorthims and math, but I know some people who have done this in C++ that is what I thought it was relevant there tooJohn Du
you posted on SO with the C++, algrotihm and math tags. You didn't cross post in algorithms and math. To cite from the math tag: any math questions on this size should be programming relatedWalter
To me this looks like a practical programming question about interpolation on a sphere rather than a theoretical one.hardmath

1 Answers

4
votes

You could use something like Voronoi tesselation to create a set of (preferably convex) facets from the existing points, and then interpolate within these facets based on proximity to each vertex.

This answer might offer some useful pointers:

Algorithm to compute a Voronoi diagram on a sphere?