나는 누락 된 데이터, 2) NaN을 다루는, 또는 3) Healpix지도에 영역에 임의의 데이터를 돌려 처리) 모른다.
1) 하늘의 넓은 영역에서 누락 된 데이터를 보간하려면 누락 된 데이터를 제한적으로 실현하기 위해 데이터에 대한 통계 지식이 필요합니다. 그러나 이러한 갭을 채우는 것은 비 로컬 작업 (예 : 컨볼루션 또는 그라디언트)을 수행하는 경우에만 필요하므로 데이터로 수행 할 계획이 무엇인지 에 의존합니다.
2) 누락 된 데이터를 NaN으로 설정하면 사용 가능한 모든 보간 체계가 확실히 엉망이됩니다.
3) 아래의 파이썬 코드는 Neal Grip Point (NGP) 샘플링을 사용하고 다른 하나는 BSpline 보간법을 사용하여 2 개의 Healpix 맵으로 사용자 데이터와 유사한 데이터 세트를 나타냅니다. 둘째는 NaN이있을 때 이 매우 강력하지만 대부분 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()