Я использую Astropy.coordinates
, чтобы сопоставить два астрономических каталога с координатами RA, DEC.
Я могу найти список ближайших соседей, следуя документации astropy
(ссылка на документацию astropy.coordinates) и выполняя:
from astropy.coordinates import SkyCoord
from astropy import units as u
cat1 = SkyCoord(ra=ra1*u.degree, dec=dec1*u.degree)
cat2 = SkyCoord(ra=ra2*u.degree, dec=dec2*u.degree)
idx, d2d, d3d = cat1.match_to_catalog_sky(cat2)
Где ra1
, ra2
, dec1
, dec2
- векторы, содержащие координаты в каталогах 1 и 2.
Результат idx
дает для каждого объекта в каталоге 1 идентификатор ближайшего совпадения в каталоге 2. d2d
дает 2-е разделение между совпадениями, а d3d
дает 3d-разделение между совпадениями ,
Поэтому, чтобы выбрать совпадения между желаемым радиусом сопоставления, например, используя радиусы 1 ", я могу сделать:
matched=idx[np.argwhere(d2d<1.*u.arcsec)[0]]
Теперь, чтобы выбрать подходящие радиусы для этого последнего шага, я хотел бы изучить, каково расстояние d2d
между каждым источником в cat1
и их вторым ближайшим соседом.
Кто-нибудь знает, как я могу выполнить этот процесс сопоставления, одновременно записывая вторых соседей?