1

我有一张健康地图,其中每个像素值都是一些有意义的物理测量值。我想将地图分成边长为 5 度的“正方形”。基本上我想平均每个 5 deg^2 bin 中的像素值。有没有直接的方法可以做到这一点?

4

1 回答 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 回答