Здоровая маска имеет границу

Я пытаюсь замаскировать свою карту healpy для пикселей, у которых нет данных, однако, когда я применяю маску healpy с badval=-1.6375e+30Кажется, вокруг моей маски есть граница.

import healpy as hp
import numpy as np

# load the mask
mask = hp.read_map('mask_nvss_S20-S1000_Ns64.fits')

# degrade the mask to NSIDE = 16
mask16 = np.round(hp.ud_grade(mask, 16))

# apply it to the map
masked_map = hp.ma(map1)
masked_map.mask = np.logical_not(mask16)

# masked map
nvss_map = np.round(masked_map)

Может кто-нибудь помочь мне убрать этот эффект границы?

введите описание изображения здесь

1 ответ

У меня до сих пор нет полной картины проблемы, но я предполагаю, что ваша проблема связана с понижением маски.

При переходе от логической маски с высоким разрешением к более низкому разрешению вы можете следовать трем различным стратегиям. Выбор зависит от вашей проблемы.

Я проиллюстрирую эффект с помощью маски, которую вы предоставили, показывая увеличение:

Понижение маски с типом bool

Вы можете просто понизить булеву маску, предоставив вам левую панель на рисунке ниже. Обратите внимание, что небольшие патчи будут без маски в этой процедуре.

map_lowres_bool = hp.ud_grade(mask_highres.astype(bool), nside=16)

Понижение маски с плавающим типом

Если вместо этого вы понижаете свою маску типа floatвместо этого вы получите непрерывную карту с весами (средняя панель ниже). Я предполагаю, что это производит эффект, который вы видите.

map_lowres_float = hp.ud_grade(mask_highres.astype(float), nside=16)

Правильное понижение маски с типом bool

Вы также можете понизить булеву маску так, чтобы все маскированные области оставались замаскированными. Из-за более низкого разрешения ваши замаскированные патчи будут больше, чем в оригинальной маске.

mask_lowres_proper = hp.ud_grade(mask.astype(float), nside=16).astype(float)
mask_lowres_proper = np.where(mask_lowres_proper == 1., True, False).astype(bool)

Это производит правую панель ниже.

Надеюсь, вы нашли это полезным, дайте мне знать, если у вас есть вопросы!

Другие вопросы по тегам