在python中使用拟合文件(Astropy)

时间:2016-05-10 09:14:51

标签: python astropy fits

我有一个具有维度(180,360)数据的拟合文件,它是180行,每行有360个元素。当我绘制它时,x轴的范围是0到360,y轴的范围是0到180.我想将y轴范围从-90转换为90,因为x和y轴实际上是纬度,经度。我正在使用astropy。

1 个答案:

答案 0 :(得分:1)

假设您有一个名为'filename.fits'的FITS文件:

from astropy.io import fits
from astropy.wcs import WCS

with fits.open('filename.fits') as hdus:
    data = hdus[0].data  # sometimes data is also saved in the extension 1 or "sci"
    header = hdus[0].header
    wcs = WCS(hdus[0].header)

pixel = np.array([[10, 10], [20, 20]]) # pixel 10/10 and 20/20
world = w.wcs_pix2world(pixcrd, 1)  # convert the list of pixel to coordinates

现在,您可以使用dataheaderwcs执行您喜欢的操作,如果需要,您可以在之后编写新文件:

hdulist = fits.HDUList([fits.PrimaryHDU(data, header=header)])
hdulist.writeto('new_name.fits')
# hdulist.writeto('filename.fits', clobber=True) # or replace the original

查看astropy文档 - 其中存在基本相同且更多的信息: