巡天数据探索入门:(二)通过Python访问数据

原创 梁晨 发表于Lcsky.org

巡天数据是不是只有科学家才能访问?——并不是。其实,科学家想了很多办法,希望能让每一个感兴趣的人都能访问、使用这些数据,只是因为这些数据过于庞大、复杂,是一道巨大的知识的鸿沟,阻隔在普通人和专业人员之间。

带着这样一个问题:恒星距离我们多远?我们来看看如何利用巡天数据扩展自己的认知。

编程是一个非常强大的工具,让我们能以前所未有的效率来使用数据。Python是一个在数据分析领域简单易用,也很强大的语言,Python下的开源库astroquery,集成了大部分巡天数据的访问方式,我们可以用几行代码就“撬动地球”。

并非所有的巡天任务都关注恒星的距离,上一篇文章介绍的Gaia卫星,正好能提供高精度的位置、距离、自行信息。我们就用astroquery.gaia模块,使用Gaia卫星数据,来开启这个探索之旅。

通过Python调用astroquery.gaia模块,使用ADQLgaiadr3.gaia_source_lite表查询距离我们最近的100颗恒星,就是下面的5行代码,提交到Gaia服务器运行大概6秒就能得到结果,ADQL的语法和SQL非常相似:

1
2
3
4
5
select top 100
*
from gaiadr3.gaia_source_lite
where parallax > 0
order by parallax desc

完整的代码在这里下载,运行结果是这样的:

从距离分布直方图可以看出,距离我们最近的恒星大概4光年远,还有一颗在大约6光年附近。从下面的表格中,它们分别是source_id=5853498713190525696,它就是大名鼎鼎的毗邻星c,以及source_id=4472832130942575872,搜索source_id发现它是巴纳德星b