astropy.match_coordinates_sky путаница - PullRequest
1 голос
/ 10 июня 2019

Я работаю над кодом для сопоставления двух каталогов значений RA и склонения.Я прочитал их в два разных SkyCoord объекта, которые называются scatalog (длина ~ 30000) и pcatalog (длина ~ 500000).

pcatalog больше, поэтому я хочу соответствовать целямв scatalog в pcatalog.

Когда я делаю

idx, d2d, d3d = match_coordinates_sky(scatalog, pcatalog, nthneighbor=1)

Я смущен результатами.

Документация по астропии указывает, что форма idx должна соответствовать форме scatalog. Вместо этого она имеет ту же длину, что и pcatalog.Кто-нибудь знает, почему это произошло?

Также в документации сказано, что idx - это индексы в pcatalog, которые наиболее близко соответствуют записям в scatalog.Это произошло бы с тех пор, если бы моей другой проблемы не было.Однако, если длина idx равна pcatalog, в совпадениях есть дублирование.Как заставить его возвращать индекс только ближайшего совпадения?

Что означает, что значения idx не являются уникальными?

Я быценим любую помощь, которую вы могли бы предоставить замечательным людям!

1 Ответ

0 голосов
/ 13 июня 2019

Примечание: это не ответ, а пример, показывающий, что я не могу воспроизвести проблему.Требуется больше информации, чтобы проверить и помочь с проблемой.

import numpy as np
from astropy.coordinates import SkyCoord, match_coordinates_sky
from astropy import units as u

scatalog = SkyCoord(ra=np.linspace(0, 1, 10)*u.degree, dec=np.ones(10)*u.degree)
pcatalog = SkyCoord(ra=np.linspace(0, 1, 100)*u.degree, dec=np.ones(100)*u.degree)
idx, d2d, d3d = match_coordinates_sky(scatalog, pcatalog, nthneighbor=1)
print(idx.shape)
print(d2d.shape)

дает

(10,) (100,)
(10,) (10,)

, то есть idx и d2d имеют ту же форму, что и scatalog,не так как pcatalog.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...