天体坐标:第二近邻

Astropy Coordinates: Second Nearest Neighbour

我正在使用 Astropy.coordinates 来匹配两个具有赤经、赤纬坐标的天文目录。

我可以按照 astropy 文档(link to astropy.coordinates documentation) 并执行以下操作找到最近邻居列表:

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) 

其中ra1ra2dec1dec2是包含目录1和目录2坐标的向量。

结果idx为目录1中的每个对象给出目录2中最近匹配的id。d2d给出匹配之间的2d分隔,d3d 给出匹配之间的 3d 分离。

因此,为了 select 匹配所需的匹配半径,例如,使用 1" 半径,我可以这样做:

matched=idx[np.argwhere(d2d<1.*u.arcsec)[0]]

现在,为了为这最后一步选择合适的半径,我想检查 cat1 中每个源与其第二近的源之间的距离 d2d 是多少-邻居。

有谁知道如何在记录第二个邻居的同时进行此匹配过程?

请注意,match_to_catalog_sky 采用关键字 nthneighbor,默认为 1(即最近),但可以设置为其他值。更改此设置即可。

看来您可能还想关注 search_around_sky 方法,使用该方法您可以找到达到分隔限制的所有匹配项。