我有一张健康地图,其中每个像素值都是一些有意义的物理测量值。我想将地图分成边长为 5 度的“正方形”。基本上我想平均每个 5 deg^2 bin 中的像素值。有没有直接的方法可以做到这一点?
问问题
274 次
1 回答
0
您可以使用 heappy 支持环和嵌套排序的事实来实现这一点。对于每个分辨率步骤,四个高分辨率像素构成一个低分辨率像素。
import healpy as hp
import numpy as np
nside_high = 2
npix_high = hp.nside2npix(nside_high)
arr = np.arange(npix_high)
hp.mollview(arr)
现在,使用嵌套排序,我们可以计算每个低分辨率像素的平均值。这相当于使用hp.ud_grade(arr, nside_low)
.
nside_low = 1
order_diff = nside_high - nside_low
arr_lowres = hp.reorder(arr, r2n=True).reshape((-1, 4**order_diff)).mean(axis=1)
hp.mollview(arr_lowres, nest=True)
最后,我们可以用 替换mean
得到std
标准差:
arr_std = hp.reorder(arr, r2n=True).reshape((-1, 4**order_diff)).std(axis=1)
hp.mollview(arr_std, nest=True)
于 2019-06-19T21:12:02.247 回答