我有一个具有维度(180,360)数据的拟合文件,它是180行,每行有360个元素。当我绘制它时,x轴的范围是0到360,y轴的范围是0到180.我想将y轴范围从-90转换为90,因为x和y轴实际上是纬度,经度。我正在使用astropy。
答案 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
现在,您可以使用data
,header
和wcs
执行您喜欢的操作,如果需要,您可以在之后编写新文件:
hdulist = fits.HDUList([fits.PrimaryHDU(data, header=header)])
hdulist.writeto('new_name.fits')
# hdulist.writeto('filename.fits', clobber=True) # or replace the original
查看astropy文档 - 其中存在基本相同且更多的信息: