0

我正在尝试创建单极子 (l=0, m=0)、偶极子 (l=1, m=-1,0,1) 和四极子 (l=2, m=-2,-1, 0,1,2) 的球谐函数使用 Healpy。到目前为止,我在 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

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

4

1 回答 1

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工作原理,为此请谷歌。

于 2014-12-23T17:02:07.367 回答