python - 如何在 healpix 地图上有效地执行顶帽(类似圆盘)平滑?
问题描述
我有一个高分辨率的 healpix 贴图(nside = 4096),我想在给定半径的磁盘中平滑,比如说 10 arcmin。
作为一个非常新的healpy并阅读了文档,我发现一个 - 不太好的 - 方法是执行“锥形搜索”,即在每个像素周围找到磁盘内的像素,平均它们并给出这个中心像素的新值。然而,这是非常耗时的。
import numpy as np
import healpy as hp
kappa = hp.read_map("zs_1.0334.fits") #Reading my file
NSIDE = 4096
t = 0.00290888 #10 arcmin
new_array = []
n = len(kappa)
for i in range(n):
a = hp.query_disc(NSIDE,hp.pix2vec(NSIDE,i),t)
new_array.append(np.mean(kappa[a]))
我认为 healpy.sphtfunc.smoothing 函数可能会有所帮助,因为它声明您可以输入任何自定义光束窗口函数,但我根本不明白它是如何工作的......
非常感谢你的帮助 !
解决方案
正如建议的那样,我可以通过指定自定义(圆形)光束窗口轻松地使用 healpy.sphtfunc.smoothing 函数。
要计算光束窗口,这是我的问题,healpy.sphtfunc.beam2bl 在礼帽的情况下非常有用且简单。
适当的 l_max 大约为 2*Nside,但根据具体地图,它可以更小。例如,可以计算角功率谱(Cls)并检查它是否衰减小于 l_max 的 l ,这有助于获得更多时间。
非常感谢在评论区提供帮助的每一个人!
推荐阅读
- http - HTTP 跟踪 - 在请求特定 url 时调用 url
- html - 即使 DevTools 正确显示按钮图标,也无法在 iPhone X 中正确呈现
- ios - 如何将环境对象从视图共享到其视图模型?
- excel - 如何获得索引匹配以提取正确的数据
- javascript - 在 Angular 中,一个组件如何拥有多个 HTML 模板?
- deep-learning - 训练时 PyTorch 崩溃:可能的图像解码错误、张量值、损坏的图像。(运行时错误)
- python - 在 Bash 中执行 python 脚本时出现错误字符
- python - Python - 用循环编写多个文件的函数
- sql-server - 在 SQL Server 和 Entity Framework 中比较相同的表数据并排除行
- python - 如何从beautifulsoup输出python中读取链接