【发布时间】:2018-04-24 19:05:59
【问题描述】:
我想平滑未覆盖整个天空的地图。该映射不是高斯映射,也不是零,因此healpy 的默认行为是用 0 填充缺失值,这会导致该掩码边缘偏向较低值:
import healpy as hp
nside = 128
npix = hp.nside2npix(nside)
arr = np.ones(npix)
mask = np.zeros(npix, dtype=bool)
mask[:mask.size//2] = True
arr[~mask] = hp.UNSEEN
arr_sm = hp.smoothing(arr, fwhm=np.radians(5.))
hp.mollview(arr, title='Input array')
hp.mollview(arr_sm, title='Smoothed array')
我想通过将屏蔽值的权重设置为零而不是将值设置为零来保持锐利边缘。这似乎很困难,因为healpy 在谐波空间中执行平滑处理。
更具体地说,我想模仿scipy.gaussian_filter() 中的mode 关键字。 healpy.smoothing() 隐式使用 mode=constant 和 cval=0,但我需要像 mode=reflect 这样的东西。
有什么合理的方法可以解决这个问题吗?
【问题讨论】: