对于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?”)。在0.6度的圆内,中心在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度的圆周选择也不能工作)
我的目标是提取与我的标准查询匹配的每个对象的名称、类型、坐标和红移。
提前谢谢你的帮助!
发布于 2017-05-16 03:00:14
你很接近你最初的尝试:
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的完整字符串。这是星形查询发送的结果查询:
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 closehttps://stackoverflow.com/questions/43987411
复制相似问题