我尝试使用astropy.io将数据附加到fit文件。
以下是我的代码示例:
import numpy as np
from astropy.io import fits
a1 = np.array([1,2,4,8])
a2 = np.array([0,1,2,3])
hdulist = fits.BinTableHDU.from_columns(
[fits.Column(name='FIRST', format='E', array=a1),
fits.Column(name='SECOND', format='E', array=a2)])
hdulist.writeto('file.fits')
我得到的错误是
type object 'BinTableHDU' has no attribute 'from_columns'
任何帮助都将不胜感激。
答案 0 :(得分:7)
你必须升级天蝎。
我可以很好地运行你的例子;那是最新的星座版本。
查看0.4的更改日志,看起来你的astropy版本太旧了。 log says:
astropy.io.fits.new_table函数现已完全弃用(但是 考虑到它有多广泛,将不会被删除很长一段时间 使用)。
请使用更明确的BinTableHDU.from_columns 创建一个新的二进制表HDU,和类似的TableHDU.from_columns 创建一个新的ASCII表。否则这些接受相同的论点 作为new_table,现在只是这些的包装。
暗示from_columns
是在0.4
总的来说,如果您确实使用的是astropy版本0.3,则可能需要升级到版本1.0或(当前)1.1:
虽然0.3只有大约1.5岁(如果你有0.3.x版本,它会更年轻一点),但是眩光发展的快速发展使它有点过时了。界面上已经发生了很多变化,现在你在网上找到的例子很少适合你的版本。
由于astropy现在是1.x(.y)系列,这应该意味着API相对稳定:只有很小的改变才会遇到向后兼容性问题。
版本1.0(.x)是long-term support release,有两年的错误修复。 Astropy 1.0于2015年2月18日发布,所以如果你想寻求更高的稳定性,它将持续到2017年2月18日。(其他版本支持6个月的bug修复。但是如果你做了次要的版本升级,那么顺便说一句,你也应该没问题。)