我最近synfast
使用 python 使用了 healpy 的函数。更具体地说,我使用了它的参数lmax,它设置了要计算的最大模式(默认值:lmax = 3*nside-1)。ud_grade
如您所见,我还使用了该功能。
我探索了几种情况,在这些情况下,我生成了非常简单的地图,synfast
其平面光谱等于统一(温度 TT 和极化 EE 和 BB)。然后使用 计算来自这些地图的光谱anafast
。我发现我们并没有在所有情况下恢复初始输入频谱,如下图所示。
在所有这些情况下,我将pixwin的参数设置synfast
为True,然后更正了anafast
使用 function的输出信号pixwin(nside=128)
。
- 灰色虚线:输入频谱模型
- 蓝色:(正常默认情况)
synfast(nside=128, lmax=3*128-1)
=>anafast(lmax=3*128-1)
- 绿色:
synfast(nside=256, lmax=3*256-1)
=>ud_grade(256->128)
=>anafast(lmax=3*128-1)
- 洋红色:
synfast(nside=256, lmax=3*128-1 )
=>ud_grade(256->128)
=>anafast(lmax=3*128-1)
- 红色:
synfast(nside=128, lmax=4*128-1 )
=>anafast(lmax=3*128-1)
- 青色:
synfast(nside=128, lmax=10*128-1 )
=>anafast(lmax=3*128-1)
绘图:使用 syfast、ud_grade 和 anafast 从不同类型的地图进行光谱估计
- 如您所见,在大多数情况下,我会得到有偏差的光谱。
- 对于高模式,即使是正常情况(蓝色)也略微向下偏移。这显然是正常的,因为 healpy 不能很好地处理模式 > 2*nside-1 的频谱估计。
- 温度和偏振光谱(TT、EE 和 BB)的结果相同。
- 如您所见,情况 lmax=4*128-1 和 lmax=10*128-1 给出相同的结果。这是
synfast
因为它不允许lmax高于 4*128-1,并且即使我们要求更高的lmax也设置 lmax=4*128-1 。
有人对这种行为有解释吗?
以及如何恢复初始输入频谱?
先感谢您