单极,偶极子和四极杆映射与Healpy

时间:2014-12-22 18:03:03

标签: python healpy

我正在尝试创建单极点(l = 0,m = 0),偶极子(l = 1,m = -1,0,1)和四极(l = 2,m = -2,使用Healpy的-1,0,1,2)球谐函数。到目前为止,我在healpy教程的帮助下构建了这个非常简单的代码:

import numpy as np
import healpy as hp

NSIDE=128
m=np.arange(hp.nside2npix(NSIDE))
x=hp.pixelfunc.fit_monopole(m, nest=False)
y=hp.pixelfunc.fit_dipole(m, nest=False)

但这只返回单极子(x)的值以及单极子和偶极子(y)的值:

In [22]: print x
98303.5

In [23]: print y
(98303.5, array([ -4.59988602e-01,  -1.81289977e+02,  -9.83040000e+04]))

当我尝试hp.mollview(x)时,我收到以下错误:

TypeError: 'float' object is not iterable

如何创建单极子和偶极子的地图。另外我如何创建四极杆的地图?

1 个答案:

答案 0 :(得分:0)

单极点是地图上的常量值,因此:

m[:] = 0.1

对于偶极子和四极杆,您可以:

  • 使用hp.pix2ang获取像素中心的坐标,并使用偶极子和四极杆的几何定义
  • 首先使用非零偶极子或四极杆创建一组C_ell

    cl = np.zeros(513, dtype=np.float)
    cl[1] = 100.
    

    然后使用hp.synfast(cl, nside)转换为地图。

第一种方法是精确的,第二种方法是近似的但更容易。

您应该阅读HEALPix Primer以更好地了解HEALPix的工作原理,谷歌。