Введите таблицу FITS в astroquery.xmatch
Мне нужно использовать xmatch из пакета astroquery, чтобы сопоставить большой локальный каталог с 2MASS. Я загружаю свою локальную таблицу FITS астропией как обычно:
from astropy.io import fits
hdu = fits.open(root+'mycat.fits')
Затем попробуйте использовать xmatch с этой таблицей (таблица hdu[2]), следуя синтаксису, описанному в документах astroquery:
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. Но в моем каталоге около 7 миллионов записей, поэтому не удобно передавать его в виде файла ASCII CSV.
Как я должен передать мою таблицу FITS в качестве входных данных? Спасибо!
1 ответ
Хотя xmatch может принимать файловый объект в качестве входных данных, этот файловый объект должен быть таблицей.csv в стиле Vizier. Вы должны сначала преобразовать свою таблицу FITS в таблицу астропии, например:
from astropy.table import Table
myTable = Table(data=hdu[2].data)