あなたの質問が、1) 欠損データの処理、2) NaN の処理、または 3) 球体上の任意のデータを Healpix マップに変換することに関するものかどうかはわかりません。
1) 空の広い領域で不足しているデータを補間するには、不足しているものを限定的に実現するために、データの統計的知識が少なくとも必要です。ただし、これらのギャップを埋める必要があるのは、非ローカル操作 (畳み込みや勾配など) を行う場合のみであるため、データをどう処理するかによって異なります。
2) 不足しているデータを NaN に設定すると、利用可能なすべての補間スキームが確実に台無しになります。
3) 以下の python コードは、(私が知る限り) あなたのものに似たデータ セットを 2 つの Healpix マップに変換します。1 つは Nearest Grip Point (NGP) サンプリングを使用し、もう 1 つは BSpline 補間を使用します。2 番目の方法は NaN が存在する場合には機能しない可能性が高いことに注意してください。一方、最初の方法は非常に堅牢です。
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()