Извлечение координат WCS из FITS

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

Для этого мне нужно извлечь массив, который содержит экваториальные позиции каждого пикселя, чтобы преобразовать их в желаемые Галактические координаты. Здесь мои знания ограничены, и я не могу понять, как извлечь этот массив.

В конечном счете, я хочу разрезать изображение на основе широт следующим образом:

import pyfits

f = pyfits.open("im1.fits")
h, data = f[0].header, f[0].data

#Here I would include the transformation from Equatorial to Galactic of
the position array doing something like:
coord = SkyCoord(ra, dec, frame=Galactic, unit='deg')

#This would do the slicing
from astropy.nddata import Cutout2D
from astropy import units as u
from astropy import coordinates

#Given a longitude and latitude
size = [mylon, mylat]
cut = Cutout2D(f, center, size, wcs=wcs)

1 ответ

Скорее всего, вы хотите пересмотреть данные, а не преобразовывать все позиции; если данные находятся на экваториальной сетке, их невозможно разрезать по галактическим координатам. reproject - лучший инструмент для этой работы, основанный на астропии. Вам нужно будет установить заголовок Galactic и перепроектировать на это:

import reproject
galheader = fits.Header.fromtextfile('gal.hdr')
myfitsfile = fits.open('im1.fits')
newim, weights = reproject.reproject_interp(myfitsfile, galheader)

Вы также можете использовать reproject.reproject_exact, который использует другой алгоритм перепроецирования.

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