У меня все еще нет полной картины проблемы, но я предполагаю, что ваша проблема связана с понижением маски.
При переходе от логической маски высокого разрешения к более низкому разрешению,Вы можете следовать трем различным стратегиям.Выбор зависит от вашей проблемы.
Я проиллюстрирую эффект с помощью предоставленной вами маски, показывая увеличение:
![enter image description here](https://i.stack.imgur.com/FN7ft.png)
Понижение маски с помощью типа bool
Вы можете просто понизить маску boolean , получив левую панель на рисунке ниже.Обратите внимание, что небольшие патчи в этой процедуре окажутся без масок.
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)
Это приведет к появлению правой панели ниже.
Надеюсь, вы нашли это полезным, дайте мне знать, еслиу вас есть вопросы!
![enter image description here](https://i.stack.imgur.com/uB1nP.png)