0

我有一个带有 nside=512 的 healpix 地图(= 巨大的 numpy.ndarray,大约 3.1E6 个元素)。我需要将其与 2D 高斯卷积。

我尝试创建高斯的 healpix 地图,将两个 numpy.ndarray 相乘并得到总和;这太慢了。

我尝试的第二件事是定义一个高斯函数(不是地图),然后是一个二维函数,它对于给定的 x,y 返回位置 x,y 处的 huge_map*gausian 的值。然后我用 scipy.integrate.nquad 得到积分。比第一种方法快,但是...

有没有办法如何使用球谐函数的展开来更快地获得 huge_map*Gaussian 的积分?像在球面伤害中扩展huge_map,在球面伤害中扩展高斯。,乘以系数,变换回来,得到总和。

以及可能的修改,例如:a)使用huge_map的log和Gaussian的log代替,然后对系数所做的操作显然是求和。b)以某种方式直接从系数中获得积分,而不需要反向变换?c)将扩展限制在某个数量并加快整个过程?

如何使用 healpy 正确实现它?

4

1 回答 1

1

您可以尝试使用healpy.smoothing,例如:

wmap_map_I_smoothed = hp.smoothing(wmap_map_I, fwhm=60, arcmin=True)
hp.mollview(wmap_map_I_smoothed, min=-1, max=1, title='Map smoothed 1 deg')

文档: http ://healpy.readthedocs.org/en/latest/generated/healpy.sphtfunc.smoothing.html

于 2014-06-02T15:25:46.077 回答