2

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

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

然后尝试按照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 文档中的示例仅显示了如何提供本地 CSV 文件。但是我的目录有大约 700 万个条目,因此不方便将其作为 ASCII CSV 文件传递​​。

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

4

1 回答 1

2

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

from astropy.table import Table
myTable = Table(data=hdu[2].data)
于 2016-05-27T05:23:17.697 回答