Ich weiß nicht, ob Ihre Frage zu 1 ist) mit fehlenden Daten handelt, 2) mit NaNs tun hat, oder 3) auf der Kugel in eine Healpix Karte beliebige Daten drehen.
1) Die Interpolation fehlender Daten in einem großen Bereich des Himmels erfordert mindestens ein gewisses statistisches Wissen über Ihre Daten, um eine eingeschränkte Realisierung dessen zu ermöglichen, was fehlt. Das Füllen dieser Lücken ist jedoch nur erforderlich, wenn Sie nicht-lokale Operationen ausführen (wie Faltungen oder Verläufe). Es hängt also davon ab, was Sie mit den Daten tun möchten.
2) Das Setzen der fehlenden Daten auf NaN wird sicherlich alle verfügbaren Interpolationsschemata vermasseln.
3) Der folgende Python-Code wandelt einen Datensatz in 2 Healpix-Maps um, der eine NGP-Abtastung (Next Grip Point) und eine BSpline-Interpolation verwendet. Beachten Sie, dass die zweite wahrscheinlich nicht in Anwesenheit von NaNs, arbeiten wird, während die erste sehr robust ist.
import healpy as hp
import numpy as np
import pylab as pl
datapoint = np.zeros((37,19), dtype=np.float)
datapoint[18,9] = 1.0
datapoint[0,9] = -1.0
nside = 64
npix = hp.nside2npix(nside)
# location of Healpix pixels center
ip = np.arange(npix)
theta_rad, phi_rad = hp.pix2ang(nside, ip)
# map0 : NGP sampling
theta_deg = np.rad2deg(theta_rad)
phi_deg = np.rad2deg(phi_rad)
hp_0 = datapoint[np.rint(phi_deg/10.).astype(int), \
np.rint(theta_deg/10.).astype(int)]
hp.mollview(hp_0,title='NGP map')
# map1: BSpline interpolation
from scipy.interpolate import RectSphereBivariateSpline
epsilon = 1.e-12
th_in = np.linspace(epsilon, np.pi-epsilon, 19)
ph_in = np.linspace(epsilon,2*np.pi-epsilon, 37)
lut = RectSphereBivariateSpline(th_in, ph_in, datapoint.T, s=1)
hp_1 = lut.ev(theta_rad, phi_rad)
hp.mollview(hp_1,title='BSpline map')
pl.show()