我正在学习创建一个fits文件,我在astropy文档中查找:https://docs.astropy.org/en/stable/io/fits/
但是我不明白{
这是文档教程中的代码:
import numpy as np
from astropy.io import fits
a1 = np.array(['NGC1001', 'NGC1002', 'NGC1003'])
a2 = np.array([11.1, 12.3, 15.2])
col1 = fits.Column(name='target', format='20A', array=a1)
col2 = fits.Column(name='V_mag', format='E', array=a2)
cols = fits.ColDefs([col1, col2])
hdu = fits.BinTableHDU.from_columns(cols)
hdu.writeto('table3.fits')
你的问题的答案在文件here中。但是,这些都是FITS格式的低级细节。如果您还不太熟悉FITS,只想使用更高级别的^{} 创建一个表
例如,可以创建相同的表,如下所示:
现在,您有了一个表表示,它完全不特定于FITS,但您可以将其写入FITS文件,如:
结果大致相同。它将处理将数据类型转换为适当的FITS列类型。如果您需要对FITS文件的确切格式进行细粒度控制,通常只需要使用低级库,但是您的里程可能会有所不同
顺便说一句,当您以这种方式创建一个表时,在大多数情况下,很长一段时间都没有必要显式地创建
ColDefs
对象。您只需将一个简单的列列表传递给BinTableHDU.from_columns
,就像BinTableHDU.from_columns([col1, col2])
。ColDefs
类向用户公开这一事实基本上是一种遗留情况,或者出于一些非常特殊的目的。文档可能会更好地强调它并不重要相关问题 更多 >
编程相关推荐