我正在为一个项目做一些目录匹配,发现使用astropy与其他软件包进行坐标匹配(例如Topcat)相比,我得到的结果是不同的。特别是,我不明白为什么下面的代码会产生不对称的结果
import numpy as np
from astropy.coordinates import match_coordinates_sky, SkyCoord
# Get some random coordinates
ra1, ra2 = np.random.uniform(80, 90, size=1E6), np.random.uniform(80, 90, size=1E6)
dec1, dec2 = np.random.uniform(20, 30, size=1E6), np.random.uniform(20, 30, size=1E6)
# Define SkyCoord instances
c1 = SkyCoord(ra1, dec1, frame="icrs", unit="deg")
c2 = SkyCoord(ra2, dec2, frame="icrs", unit="deg")
# Do matching
idx1, dis1, _ = match_coordinates_sky(c1, c2, nthneighbor=1)
idx1 = idx1[dis1.arcsec < 2]
idx2, dis2, _ = match_coordinates_sky(c2, c1, nthneighbor=1)
idx2 = idx2[dis2.arcsec < 2]
# Print results
print(len(idx1), len(idx2))
这打印:10547 10553
这里我只是颠倒目录顺序,得到不同的结果。特别是,对于我的项目,差异要大得多,我不确定问题出在哪里。
谢谢!