Python 将轴写入FITS文件

Python 将轴写入FITS文件,python,axes,astropy,fits,Python,Axes,Astropy,Fits,有没有办法将现有xy轴连同Python中的数据本身一起写入FITS文件 例如,下面是一些将矩阵保存到名为TestFITS的FITS文件的简单代码: import numpy as np from astropy.io import fits test_matrix = np.random.uniform(0,1,[5,3]) x = np.arange(5,5+len(test_matrix[:,0])) y = np.arange(5,5+len(test_matrix[0,:])) hdu

有没有办法将现有xy轴连同Python中的数据本身一起写入FITS文件

例如,下面是一些将矩阵保存到名为TestFITS的FITS文件的简单代码:

import numpy as np
from astropy.io import fits

test_matrix = np.random.uniform(0,1,[5,3])
x = np.arange(5,5+len(test_matrix[:,0]))
y = np.arange(5,5+len(test_matrix[0,:]))
hdu = fits.PrimaryHDU(test_matrix)
hdu.writeto('TestFITS')

但是,如果我希望将x和y也保存到文件中,可以这样做吗

您可以在PrimaryHDU旁边的两个扩展中将它们保存为一维ImageHDU:

import numpy as np
from astropy.io import fits

test_matrix = np.random.uniform(0,1,[5,3])
x = np.arange(5,5+len(test_matrix[:,0]))
y = np.arange(5,5+len(test_matrix[0,:]))
fits.HDUList([
    fits.PrimaryHDU(test_matrix),
    fits.ImageHDU(x, name='X'),
    fits.ImageHDU(y, name='Y'),
    ]).writeto('testxy.fits')

(不需要使用
名称
参数,但可以非常方便。)

您可以将它们保存为两个扩展中的一维ImageHDU,位于PrimaryHDU旁边:

import numpy as np
from astropy.io import fits

test_matrix = np.random.uniform(0,1,[5,3])
x = np.arange(5,5+len(test_matrix[:,0]))
y = np.arange(5,5+len(test_matrix[0,:]))
fits.HDUList([
    fits.PrimaryHDU(test_matrix),
    fits.ImageHDU(x, name='X'),
    fits.ImageHDU(y, name='Y'),
    ]).writeto('testxy.fits')
(不需要
名称
参数,但可以非常方便。)