我现在对一个fits文件有点小问题。数据是表格式的,我以前没有用过这种格式。我是一个python用户,非常依赖阿谀奉承操纵拟合图像。信息的快速输出提供:
No. Name Type Cards Dimensions Format
0 PRIMARY PrimaryHDU 60 ()
1 BinTableHDU 29 3072R x 2C [1024E, 1024E]
BinTableHDU的标题如下:
^{pr2}$我想访问存储在标签为“COUNT-RATE”的TTYPE中的fits图像,然后以一种格式将其添加到其他具有相同维度的计数率数组中。在
我从打开fits文件的常用产品开始:
hdulist_RASS_SXRB_R1 = fits.open('/Users/.../RASS_SXRB_R1.fits')
hdulist_RASS_SXRB_R1.info()
image_XRAY_SKYVIEW_R1 = hdulist_RASS_SXRB_R1[1].data
image_XRAY_SKYVIEW_R1 = numpy.array(image_XRAY_SKYVIEW_R1)
image_XRAY_SKYVIEW_header_R1 = hdulist_RASS_SXRB_R1[1].header
但这是回来的IndexError: too many indices for array
。我已经在astropy文档中查看了访问表数据(Accessing data stored as a table in a multi-extension FITS (MEF) file)
如果有人有一个尝试和测试的方法,访问这样的图片从一个fits表,我将非常感谢!非常感谢。在
我不能肯定没有看到完整的回溯,但我认为你得到的例外是:
没有理由手动将
numpy.array()
环绕数组。它已经是一个Numpy阵列了。但在本例中,它是一个结构化数组(参见http://docs.scipy.org/doc/numpy/user/basics.rec.html)。在@仙女座93的答案是正确的。但也可以看到关于这个的一般文档:http://docs.astropy.org/en/stable/io/fits/index.html#working-with-table-data
但是,手动调用
fits.open
、访问HDU的.data
属性等工作方式(这对图像来说很好)是相当低级的,Numpy结构的数组很擅长表示表,但对于操作它们来说却不是很好。在你最好使用Astropy的高级^{} 接口。FITS表可以通过
Table.read()
:http://docs.astropy.org/en/stable/io/unified.html#fits直接读入AstropyTable
对象FITS-images不存在同样的情况的唯一原因是还没有一个通用的“Image”类。在
我用过astropy.io.适合在天体物理学实习期间,这是我打开文件的过程。安装并进行一些操作:
现在,使用这种方法,tbdata是一个数字阵列你可以做很多东西。在
例如,如果您有以下数据:
^{pr2}$如果要按一个条件打印数据:
您将获得:
我不知道你到底想要什么样的数据,但我可以帮你;)
相关问题 更多 >
编程相关推荐