如何将SkyCoord目录转换为ra和dec对数组

时间:2019-07-31 14:47:24

标签: astropy astronomy

我已经匹配了两个目录,现在具有匹配的ra和dec值。它们以skycoord显示。我想获取所有ra和dec值的列表。

我尝试使用np.array()和.to_string()

max_sep = 1.0 * units.arcsec
idx, d2d, d3d = cat_ch1.match_to_catalog_3d(cat_ch2)
sep_constraint = d2d < max_sep
c_matches = cat_ch1[sep_constraint]
catalog_ch2_matches = cat_ch2[idx[sep_constraint]]

radec_ch2 = catalog_ch2_matches.to_string()

我想得到一个与我先获取ra值然后获取dec值的数组类似的数组,然后将它们组合以获得每个元素为(ra,dec)的数组。

1 个答案:

答案 0 :(得分:1)

使用一些数据设置SkyCoord:

from astropy import units as u
from astropy.coordinates import SkyCoord

c = SkyCoord(ra=[10, 11, 12, 13]*u.degree, dec=[41, -5, 42, 0]*u.degree)

print(c)

输出:

<SkyCoord (ICRS): (ra, dec) in deg
    [(10., 41.), (11., -5.), (12., 42.), (13.,  0.)]>

以十进制度表示ra / dec支付的清单的清单和清单

sky_coords = []
for i in range(len(c)):
    sky_coords.append([c[i].ra.degree,c[i].dec.degree])
print(sky_coords)

输出:

[[10.0, 41.0], [11.0, -5.0], [12.0, 42.0], [13.0, 0.0]]

以小时和弧度(并四舍五入到四舍五入)的形式进行ra / dec支付的列表列表:

sky_coords = []
for i in range(len(c)):
    sky_coords.append([round(c[i].ra.hour,5),round(c[i].dec.radian,5)])
print(sky_coords)

输出:

[[0.66667, 0.71558], [0.73333, -0.08727], [0.8, 0.73304], [0.86667, 0.0]]

https://docs.astropy.org/en/stable/coordinates/

上有更多关于如何以天价使用SkyCoord的信息。