作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个高分辨率的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,但根据特定 map ,它可以更小。例如,我们可以计算角功率谱(Cls)并检查它是否对小于 l_max 的 l 进行衰减,这有助于赢得更多时间。
非常感谢所有在评论部分提供帮助的人!
关于python - 如何在healpix贴图上有效地执行顶帽(类似圆盘)平滑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56138979/
我是一名优秀的程序员,十分优秀!