Вы можете использовать тот факт, что 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)
Наконец, мы можем заменить mean
на std
, чтобы получить стандартное отклонение:
arr_std = hp.reorder(arr, r2n=True).reshape((-1, 4**order_diff)).std(axis=1)
hp.mollview(arr_std, nest=True)