Методы для правильного вырезания большого файла подгонки, чтобы изолировать определенные галактики в файлы подгонки меньшего размера

В настоящее время я работаю над анализом нескольких галактик в файле подгонки. Файл подгонки представляет собой трехмерный гиперспектральный куб с осями x и y, представляющими прямое восхождение и склонение, и осью a z, представляющей частоту. Я также знаю точное правильное восхождение и склонение каждой галактики. Моя цель состоит в том, чтобы нарезать большой файл подгонки на более мелкие, которые изолируют каждую из галактик, чтобы я мог провести дальнейший анализ отдельных галактик. Метод грубой и грубой силы просто заключался бы в том, чтобы вручную вырезать файлы подгонки вокруг галактики, и мой алгоритм в настоящее время груб, просто вырезая квадрат определенного числа пикселей вокруг галактики, но я хочу спросить, есть ли какой-то метод астропии или какой-то другой численный / математический метод для более эффективного выявления и обрезания галактик?

1 ответ

Взгляните на пакеты Python для спектрального куба и photutils.

У спектрального куба есть методы для вырезания подкубов (см., например, здесь), а у photutils есть методы для обнаружения источников (см. здесь) и другие, например, для измерения и анализа ваших источников. Для photutils некоторые из методов будут работать только для 2D, и вам нужно будет сделать некоторые выражения Numpy для работы с вашими 3D данными.

В общем, все пакеты астрономии Python (Astropy, spectral-cube, photutils) будут работать с пиксельными данными в массивах Numpy (например, читать с astropy.io.fits) и координаты неба, используя astropy.wcs.WCS а также astropy.coordinates.SkyCoord объекты, так что вам придется изучить их немного. Для этого хорошим местом для начала являются учебники по Астропии.

Вы попросили эффективный способ сделать вырезы. Это достигается с помощью функции массива Numpy для "разрезания" массива данных больших трехмерных пикселей и создания "вида" этого выреза без создания копии. Если вы новичок в Numpy, хорошей отправной точкой для изучения является страница "Основы массивов Numpy" в руководстве по науке о данных Python.

В Astropy есть полезный для этого класс Cutout2D. Хотя он может читать файлы FITS с более чем двумя осями, он может создавать вырез только по двум осям.

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