我已经匹配了两个目录,现在具有匹配的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)的数组。
答案 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]]
上有更多关于如何以天价使用SkyCoord的信息。