我在SIMBAD数据库上有大量的标准查询,例如:
region(circle, 29.20 -0.214, 0.60d) & otypes in ('ClG','SCG','GrG','CGG','SC?','C?G','Gr?')& redshift > 0.037 & redshift < 0.0531
此查询在所居中的0.6度圆内给出所有类型的对象('ClG','SCG','GrG','CGG','SC?','C?G','Gr?')在29.20 -0.214,红移在0.037和0.0531之间。 它在Web界面http://simbad.u-strasbg.fr/simbad/sim-fsam上运行良好,对于此示例,我得到一个对象。
问题是我需要像这样做大量的查询。我试图使用这个包python http://astroquery.readthedocs.io/en/latest/simbad/simbad.html,但我没有成功地正常工作。
from astroquery.simbad import Simbad
from astropy import coordinates
query_cr="region(circle, 29.20 -0.214, 0.60d)" types=('ClG','SCG','GrG','CGG','SC?','C?G','Gr?')
result =Simbad.query_criteria(query_cr, otype=types)
像这样根本不起作用。
我尝试只为otype设置一个项目
types='ClG'
并且用这个我得到一个包含大量ogf对象的表(即使是0.6度的圆圈选择也不起作用)
我的目标是提取与我的条件查询匹配的每个对象的名称,类型,坐标和红移。
非常感谢您的帮助!
答案 0 :(得分:0)
你与原来的尝试非常接近:
qry = ("region(circle, 29.20 -0.214, 0.60d) &"
" otypes in ('ClG','SCG','GrG','CGG','SC?','C?G','Gr?') &"
" redshift > 0.037 & redshift < 0.0531")
result = Simbad.query_criteria(qry)
result
结果是:
<Table masked=True length=1>
MAIN_ID RA DEC RA_PREC DEC_PREC COO_ERR_MAJA COO_ERR_MINA COO_ERR_ANGLE COO_QUAL COO_WAVELENGTH COO_BIBCODE
"h:m:s" "d:m:s" mas mas deg
object str13 str13 int16 int16 float32 float32 int16 str1 str1 object
------------- ---------- --------- ------- -------- ------------ ------------ ------------- -------- -------------- -------------------
SDSSCGB 51414 01 55 07.2 -00 11 04 5 5 -- -- 0 D O 2009MNRAS.395..255M
请注意,为了便于阅读,我只将其拆分为多行; qry
只是您传递给SIMBAD的完整字符串。这是astroquery发送的结果查询:
votable {main_id,coordinates}
votable open
query sample region(circle, 29.20 -0.214, 0.60d) & otypes in ('ClG','SCG','GrG','CGG','SC?','C?G','Gr?')& redshift > 0.037 & redshift < 0.0531
votable close