我有一个带有nside=512 (= numpy.ndarray,约3.1E6元素)的疗愈地图。我需要用2D高斯把它卷积。
我试着创建一个Gausian的疗愈图,将两个numpy.ndarray相乘,得到和;这太慢了。
第二件事是定义一个高斯函数(不是地图),然后定义一个2D函数,对于给定的x,y返回huge_map*gausian在x,y位置的值,然后用scipy.integrate.nquad得到积分。比第一种方法快但是..。
有没有办法用球面谐波展开,使huge_map*Gaussian积分更快?将球面损伤中的huge_map展开,将球面损伤中的高斯展开,乘以系数,变换回来,求出和。
和可能的修改,比如: a)用huge_map的日志和高斯的日志来代替,那么对系数所做的运算是明显的和。( b)从系数中直接得到积分,而不进行反变换?( c)将扩展限制在一定数量之内,并加快整个过程?
如何正确地使用healpy实现它?
发布于 2014-06-02 15:25:46
您可以尝试使用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
https://stackoverflow.com/questions/23996822
复制相似问题