astropy.match_coordinates_sky混乱

时间:2019-06-10 13:47:10

标签: python astropy

我正在编写一个代码,以匹配两个RA和磁偏角值目录。我已经将它们读入两个不同的SkyCoord对象中,分别称为scatalog(长度约为30,000)和pcatalog(长度约为500,000)。

pcatalog较大,所以我想将scatalog中的目标匹配到pcatalog中。

当我这样做

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

我对结果感到困惑。

文档on astropy指出idx的形状应与scatalog.的形状匹配。相反,它的长度与pcatalog相同。有谁知道为什么会这样?

此外,文档还说idxpcatalog的索引,是与scatalog条目最接近的匹配项。那将是因为如果我的其他问题没有发生。但是,如果idx的长度为pcatalog,则匹配项中存在重复项。如何获取返回最接近匹配项的索引?

idx的值不唯一是什么意思?

非常感谢您提供的出色帮助!

1 个答案:

答案 0 :(得分:0)

注意:这不是答案,而是一个示例,表明我无法重现该问题。需要更多信息来验证和解决问题。

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,)

idxd2d的形状与scatalog相同,而不是pcatalog

相关问题