输入FITS表到astroquery.xmatch

时间:2016-05-25 12:49:28

标签: python astropy astroquery

我需要使用astroquery包中的xmatch来交叉匹配大型本地目录和2MASS。 我像往常一样用天体加载我的本地FITS表:

from astropy.io import fits
hdu = fits.open(root+'mycat.fits')

然后按照the astroquery docs中描述的语法尝试将xmatch与该表一起使用(表格为hdu [2]):

from astroquery.xmatch import XMatch
table = XMatch.query(cat1=hdu[2],
                  cat2='vizier:II/246/out',
                  max_distance=1 * u.arcsec, colRA1='RA',
                  colDec1='Dec')

但是得到以下错误:

AttributeError: 'BinTableHDU' object has no attribute 'read'

astroquery docs上的示例仅显示如何提供本地CSV文件。但是我的目录有大约700万个条目,因此将它作为ASCII CSV文件传递是不方便的。

我应该如何传递我的FITS表作为输入?谢谢!

1 个答案:

答案 0 :(得分:1)

虽然xmatch可以接受文件对象作为输入,但该文件对象必须是Vizier样式的.csv表。您需要首先将FITS表转换为天文表,例如

from astropy.table import Table
myTable = Table(data=hdu[2].data)