1

我正在尝试将 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)
4

1 回答 1

0

您很可能希望重新排列数据而不是转换所有位置;如果数据位于赤道网格上,则无法沿银河坐标对其进行切片。 reproject是这项工作最好的基于 astropy 的工具。您需要设置一个 Galactic 标头并重新投影到该标头:

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

您也可以使用reproject.reproject_exact,它使用不同的重投影算法。

于 2017-01-27T01:14:46.640 回答