将轴写入 FITS 文件
Writing axes to FITS file
有没有办法将现有的 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 也保存到文件中,可以吗?
您可以将它们保存为两个扩展中的一维 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')
(name
参数不是必需的,但可以提供很好的便利。)
有没有办法将现有的 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 也保存到文件中,可以吗?
您可以将它们保存为两个扩展中的一维 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')
(name
参数不是必需的,但可以提供很好的便利。)