我正在尝试创建单极点(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
如何创建单极子和偶极子的地图。另外我如何创建四极杆的地图?
答案 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
的工作原理,谷歌。