我有一个健康的地图,其中每个像素值都是一些有意义的物理测量结果。我想把地图分成边长为5度的“方块”。基本上,我想平均每个5度^2箱中的像素值。有什么简单的方法可以做到这一点吗?
发布于 2019-06-20 05:12:02
您可以利用healpy同时支持环和嵌套排序这一事实来实现这一点。对于每个分辨率步骤,四个高分辨率像素组成一个低分辨率像素。
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)

最后,我们可以用std替换mean来获得标准差:
arr_std = hp.reorder(arr, r2n=True).reshape((-1, 4**order_diff)).std(axis=1)
hp.mollview(arr_std, nest=True)

https://stackoverflow.com/questions/56669443
复制相似问题