HealPix 中 Nside 的不同值 a_lm 系数的不同值

Different values of a_lm coefficients for different values of Nside in HealPix

我正在使用 HealPix 计算粒子通过具有一定半径的球体的流出率,我正在尝试确定球谐函数的系数(基本上用球谐函数拟合一些数据)。

基本步骤是:

#I create a HealPix map of the outflow rate (values of the rate for every pixel) called dotM_map with a resolution determined by the nside parameter.
nside = 8
dotM_map = some_function(nside, ...)

#Then I calculate a_lm coefficients of spherical harmonics for this map.
a_lm = hp.map2alm(dotM_map,lmax=2)

但是,如果我针对相同的 lmax 值更改地图的分辨率(更改 nside),我会得到不同的系数值(a_lm 的不同值)。 我尝试从系数

复制初始地图
sph_harm_map = hp.alm2map(a_lm,nside=nside)

结果非常吻合。为什么不同的nside a_lm 的值不同?以及如何获得不依赖于 nside 的 a_lm 系数??

我尝试使用像素权重作为

a_lm = hp.map2alm(hpxmap,lmax=2,use_weights=True)

但没有明显改善。我也试过了

a_lm = hp.map2alm(hpxmap,lmax=2,use_pixel_weights=True)

但我收到一个错误:urllib.error.URLError:, 'https://github.com/healpy/healpy-data/releases/download/full_weights/healpix_full_weights_nside_0008.fits': }>

为什么会这样?如果有必要,我可以提供一个最小的例子。

为了获得相同的 a_lm 系数值,需要使用像素表面对单个像素的值进行归一化 - 除以 4*pi/npix.

另一件事,以防对某人有所帮助。流出率可以很容易地从

计算出来
npix = healpy.nside2npix(nside) # total number of Healpix pixels on the sphere at a given Nside
pix = healpy.ang2pix(nside, theta, phi) # tells you in which pixel is each particle, considering the exact pixel boundary
count, edge = numpy.histogram(pix, bins=np.arange(npix+1)) # count is the number of particles in each Healpix pixel

并计算(count2 - count2)/(t2-t1),其中count2 = count(t2)和count1 = count(t1)是两个不同时间单个像素中的粒子数。

感谢 HealPix 的支持,Eric Hivon。谢谢!