Введите таблицу 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)
Другие вопросы по тегам