我的代码从文本文件中获取 RA 和 DEC 值(str 形式的一些坐标),并使用 astroquery 来查询与这些 RA 和 DEC 数据相关的对象,并显示这些对象及其属性的表。然后我把它们放到一个列表中。但是查询有时会找到超过 1 个对象。我想使用 GetClosest() 推荐来查找最近的对象,以便仅将最接近的对象放入我的列表中。这是我的代码的一部分:
catalog=[]
catalog2=[]
exception_list = ['b','c','d','e','f','g','h','j','k']
rad1='0.001s'
rad2='0.01s'
rad3='0.1s'
rad4='1s'
rad5='5s'
for i in range(len(RA)):
result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius= rad1)
if result_table is None:
result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius= rad2)
if result_table is None:
result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius= rad3)
if result_table is None:
result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius= rad4)
if result_table is None:
result_table = customSimbad.query_region(coord.SkyCoord(ra=RA[i], dec=DEC[i], unit=(u.hourangle, u.deg)), radius= rad5)
if result_table is None:
catalog.append([i,None])
else:
for obj in result_table:
catalog.append([i,obj[0],RA[i],DEC[i],str(obj[1]),str(obj[2]),obj[4] if obj[12]!='--' else None,obj[12] if obj[12]!='--' else None,obj[13] if obj[13]!='--' else None,obj[14] if obj[14]!='--' else None,obj[15] if obj[15]!='--' else None,obj[16] if obj[16]!='--' else None,obj[17] if obj[17]!='--' else None,obj[18] if obj[18]!='--' else None,obj[19] if obj[19]!='--' else None,obj[20] if obj[20]!='--' else None,obj[21] if obj[21]!='--' else None,obj[22] if obj[22]!='--' else None,obj[23] if obj[23]!='--' else None])
if not obj[0][len(obj[0])-1:] in exception_list :
catalog2.append([i,obj[0],RA[i],DEC[i],str(obj[1]),str(obj[2]),obj[4] if obj[12]!='--' else None,obj[12] if obj[12]!='--' else None,obj[13] if obj[13]!='--' else None,obj[14] if obj[14]!='--' else None,obj[15] if obj[15]!='--' else None,obj[16] if obj[16]!='--' else None,obj[17] if obj[17]!='--' else None,obj[18] if obj[18]!='--' else None,obj[19] if obj[19]!='--' else None,obj[20] if obj[20]!='--' else None,obj[21] if obj[21]!='--' else None,obj[22] if obj[22]!='--' else None,obj[23] if obj[23]!='--' else None])
所以我想将最接近的 RA[i] 与 obj[1] 和 DEC[i] 与 obj[2] 匹配。我怎样才能做到这一点?