2

我有一张来自 AKARI Far Infrared Surveyor 数据库(公开发布)的 HEALPIx 全天地图。我曾尝试使用“平滑”地图healpy,但结果看起来很奇怪。有没有更好的办法?然而,我的问题与任何全天 HEALPIx 地图(即 IRAS、Planck、WISE、WMAP)有关。

我的目标是将此 AKARI 地图的有效点扩散函数“平滑”到 1 度的角分辨率(原始数据的 PSF 约为 1 弧分)。这样我就可以将远红外 AKARI 地图与分辨率较低的微波地图(特别是异常微波前景的那些)进行比较。

在下面的示例中,我使用的是降级版本的地图,因此它足够小,可以上传到 Github。这意味着像素约为 3.42 角分。在 PSF 平滑之前,我不会过多地降低像素比例,但这只是一个例子:

#Load the packages needed for visualization, and HEALPix processing
%matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
import healpy as hp
import healpy.projector as pro

#Loads the HEALPix .FITS file into an array
map_in = hp.read_map("akari_WideL_1_1024.fits", nest = True)

#Visualizes the all-sky map, before any processing is done.
hp.mollview(map_in, title='AKARI All-Sky Map:', nest = True, norm = 'hist')

#Smoothes the map with a 1-degree FWHM Gaussian (fwhm given in radians).
map_out = hp.sphtfunc.smoothing(map_out, fwhm = 0.017, iter = 1)

#Visualizes the the map after smoothing
hp.mollview(map_out, title='AKARI All-Sky Map:', nest = True, norm = 'hist')

我已经尝试过 healpy.sphtfunct.smoothing 例程(https://healpy.readthedocs.org/en/latest/generated/healpy.sphtfunc.smoothing.html#healpy.sphtfunc.smoothing)。据我所知,smoothing转换映射成球谐函数,然后与高斯卷积,然后将其转换回空间映射。

我已经在 github 存储库中保存了 ipython 笔记本以及低分辨率 .FITS HEALpix 地图,这里:

https://github.com/aaroncnb/healpy_smoothing_test

(您需要healpy安装软件包)

通过在笔记本中运行代码,您可以轻松地可视化我遇到的问题 - 在对地图进行平滑之后,有一些奇怪的“伪影”,就好像像素已经被迭代箱平均,而不是使用圆形高斯平滑轮廓。我期望看到的只是输入图的模糊版本。

在平滑完成之前,我认为我缺少关于转换为球谐函数的一些基本知识。

有没有人尝试过在 HEALPIx 地图上进行这种全天空平滑?

我相信另一种选择是将地图转换为标准的矩形数组,然后进行平滑处理。但是,我仍然对在不离开 HEALPIx 格式的情况下解决问题感到好奇。

4

1 回答 1

2

它似乎smoothing仅适用于 RINGed 地图(这对我来说很有意义,因为这在数学上似乎更容易处理)。因此,您需要将输入映射转换为 RINGed 格式:

map_ring = hp.pixelfunc.reorder(map_in, inp='NEST', out='RING')
map_out = hp.sphtfunc.smoothing(map_ring, fwhm = 0.17, iter = 1)
hp.mollview(map_out, title='AKARI All-Sky Map:', nest = False, norm = 'hist')

在此处输入图像描述


这个答案来自一些反复试验,因为我在文档中找不到任何明确的内容,而且我没有深入研究源代码(尽管,通过以下结果,可能很容易验证是否通过查看相关源代码,我的假设是正确的)。
或者,您可能想直接询问 healpix/healpy 的人。

(我认为这实际上是文档中的一个缺点:文档中healpy.sphtfunc.smoothing没有提到输入所需的形式。我想这是另一天的健康问题/公关。)

顺便说一句,在 Github 上创建 SSCCE 作为笔记本文件的奖励积分!(现在如果只有 StackOverflow 也渲染了笔记本。)

于 2015-11-10T23:25:57.453 回答