使用 astroquery.simbad 对 SIMBAD 数据库进行条件查询
Criteria Query on SIMBAD database with astroquery.simbad
我在 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
此查询给出所有类型的对象 ('ClG','SCG','GrG','CGG','SC?','C?G','Gr?') 在以 29.20 -0.214 为中心的 0.6 度圆内,红移在 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'
然后我得到一个 table 有大量 ogf 对象(即使是 0.6 度的圆选择也不起作用)
我的目标是提取与我的条件查询匹配的每个对象的名称、类型、坐标和红移。
非常感谢您的帮助!
您与最初的尝试非常接近:
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
我在 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
此查询给出所有类型的对象 ('ClG','SCG','GrG','CGG','SC?','C?G','Gr?') 在以 29.20 -0.214 为中心的 0.6 度圆内,红移在 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'
然后我得到一个 table 有大量 ogf 对象(即使是 0.6 度的圆选择也不起作用)
我的目标是提取与我的条件查询匹配的每个对象的名称、类型、坐标和红移。
非常感谢您的帮助!
您与最初的尝试非常接近:
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