2015-04-16 5 views
0

Я использую Healpy (инструменты HEALPix, разработанные на Python) для чтения и записи CMB-карт полного неба.Как файлы HEALPix FITS из карт CMB переводятся в ndarrays? Каковы координаты?

Я смущен относительно того, как координаты пикселей на карте несут в себе записи numpy ndarray. Как один пиксель HEALPix в файле FITS преобразуется в запись ndarray?

Например, у меня есть сгенерированная карта CMB, Nside = 64, lmax = 64, используя схему RING по умолчанию. Общее количество пикселей задается Npix = 12 * Nside ** 2. Итак, для моего примера это общее число пикселей 49152.

Файл FITS, который у меня есть, находится в формате 1 столбец 48 строками. (1 столбец - все значения температуры.) Итак, я преобразовываю этот файл в n-dim numpy ndarray. Форма этого массива дает (48,1024).

Вопрос 1: Является ли этот 2-мерный массив проекцией всех пикселей карты на небе в «матричную» форму? Я думаю, что это. Используя мой пример, 48 * 1024 = 49152, общее количество пикселей.

Вопрос 2: Откуда берется стандарт 1024? Что это означает с точки зрения карты HEALPix и ее координат? Как один вход 2-мерного ndarray (пиксель) относится к другому (по углу, по положению HEALPix и т. Д.)?

Например, на карте Nside = 1024. Когда я преобразовываю это в двумерный ndarray, я получаю форму (12288, 1024).

EDIT: Почему это соглашение содержит 1024 элементарных массива? Как это соответствует координатам пикселя на карте?

+0

Возьмите функцию healpy.fitsfunc.write_map() Почему для параметра IDL_fits установлено значение «Если True, переформатирует столбцы в строках 1024, в противном случае все данные будут находиться в одном столбце. По умолчанию: True». Почему 1024 столбца и как это соотносится с координатами карты полного неба HEALPix? – JianguoHisiang

+0

1024 - это просто читать/писать быстрее. Нет никакого отношения к местоположению неба. –

ответ

0

лучший источник информации о HEALPix пикселизации является HEALPix праймер:

http://healpix.jpl.nasa.gov/html/intro.htm

Карта представляет собой 1-мерный вектор, каждый индекс является пиксель в небе. вы можете повернуть число пикселей в координаты в небе, используя hp.pix2ang.

Формирование его в строках 1024 - это всего лишь трюк, который ускоряет чтение/запись на диск.

+0

Я понимаю. Номер 1024 не имеет отношения к местоположению неба. Итак, у меня есть карта в схеме RING. Я хочу использовать 'hp.pix2ang' для вычисления векторных координат каждого пикселя на этой карте. Как это сделать? Параметры для 'hp.pix2ang' - это параметр nside и номер пикселя Healpix. – JianguoHisiang

+0

Посмотрите документацию онлайн –

+0

http://healpy.readthedocs.org/en/latest/generated/healpy.pixelfunc.pix2ang.html –