Skip to content Skip to sidebar Skip to footer

Using Radial Basis Functions To Interpolate A Function On A Sphere

First, a bit of background: I am using spherical harmonics as an example of a function on the surface of a sphere like the front spheres in this image: I produced one of these sph

Solution 1:

The boundary you see is because you are mapping a closed surface (S2) to an open one (R2). One way or another, you will have boundaries. The local properties of the manifolds are compatible, so it works for most of the sphere, but not the global, you get a line.

The way around it is to use an atlas instead of a single chart. An atlas is a collection of overlapping charts. In the overlapping region, you need to define weights, a smooth function that goes from 0 to 1 on each chart. (Sorry, probably differential geometry was not what you were expecting to hear).

If you don't want to go all the way here, you can notice that your original sphere has an equator where the variance is minimal. You can then rotate your fine sphere and make it coincide with the line. It doesn't solve your problem, but it can certainly mitigate it.

Solution 2:

You can change the standard distance:

defeuclidean_norm(x1, x2):
    return np.sqrt( ((x1 - x2)**2).sum(axis=0) )

by the sphere distance (see, for instance, this question Haversine Formula in Python (Bearing and Distance between two GPS points)).

Post a Comment for "Using Radial Basis Functions To Interpolate A Function On A Sphere"