近日,天文数据分析与软件系统会议(ADASS)2022年大会组委会宣布,AstroPy项目荣获年度ADASS软件奖。颁奖仪式将在第32届ADASS大会上举行。
ADASS软件奖是有着30余年历史的天文软件顶级会议ADASS于2020年推出来的一个重要奖项,旨在奖励在天文软件方面做出突出贡献的软件项目。其中2020年第一届的获奖项目是天文数据的基础软件包CFITSIO,2021年软件奖的获奖项目是资深的天文数据分析软件IRAF。
相比于前两届的获奖项目,AstroPy稍显年轻,但自2011年发布以来,趁着机器学习、人工智能的东风,已经在天文数据处理领域获得了海量的应用。
AstroPy是近十年来在天文科学数据处理领域崛起的一个重要软件集,这套软件集包含了两个部分astropy 包和Astropy Project。前者是特指AstroPy核心包,后者则是一个宏大的计划,是基于Astropy规范的一系列外围软件集。
Astropy Project项目自2011年开始发起,得到了许多国家研究机构的支持,以开源社区的模式运行,截止2022年8月最新版本为v5.1。
图1 AstroPy logo
AstroPy历史
■ 2012年6月19日,AstroPy发布了第一个版本0.1。经过0.2、0.3、0.4长达3年的不断迭代,在2015年2月18日发布了第一个正式版本1.0。在2013年0.2版本时,在《天文与天体物理学》(A&A)杂志上发表了AstroPy项目的第一篇正式论文。
■ 2017年7月7日发布2.0版本。根据2.0的进展,AstroPy团队在2018年基于v2.0版本在《天文学杂志》(AJ)上发表了AstroPy项目的第二篇正式论文。2018年2月2日发布3.0版本。2019年12月16日发布4.0版本。2021年11月15日发布5.0版本。现在以大约2年为一个周期发布一个主版本,之后不定期发布次版本或修订版本。
AstroPy核心包
AstroPy 核心包由一系列的基础组件组:核心数据结构与算法、文件与数据I/O、天文计算与工具以及软件开发配置等。
核心数据结构与算法:包含有天文常数、天文单位与数量定义、N维数据集、数据表格、时间与日期、时域序列、天文坐标系统、世界坐标系统、模型与拟合程序以及不确定性和分布计算等方面的操作。
文件与数据 I/O:包含有通用文件读写接口、FITS 文件操作、ASCII 表格操作、VOTable 文件操作、I/O 杂项以及SAMP 简单应用消息协议等内容。
天文计算与工具:包含有宇宙学计算、卷积与滤波计算、数据可视化以及天文统计学工具等。
这些核心包基本涵盖了天文数据处理的基础部分,满足了天文学家最常使用场景的开发需求。在一些核心的功能上,AstroPy直接封装了有着悠久历史或经过科学规划设计的软件,比如针对基础天文学计算,封装了基于SOFA(基础天文学标准库,Standards of Fundamental Astronomy)库开发的ERFA(基础天文学核心程序包,Essential Routines for Fundamental Astronomy)库,作为坐标、时间等计算的引擎。针对FITS文件操作,则封装了历史悠久的cfitsio库。
AstroPy附属包
AstroPy附属包是指遵循 AstroPy开发、互操作和接口标准规范的一系列附属包,这些包有些是有一定历史的软件包,还有一些是在AstroPy基础上新开发出来的软件包,适合在不同场景下使用。这些包一般也使用AstroPy的核心库作为其数据结构和计算基础的库。在AstroPython项目网站上可以查阅完整的附属包目录 。
Astroquery :Astroquery集成了一系列访问天文数据库的工具组件,方便用户在获取天文数据时使用。Astroquery支持对星表、数据集、模拟数据、原子分子谱线等不同数据类型的访问。Astroquery支持的天文数据库或数据中心的访问获取服务有约60个,包括法国斯特拉斯堡数据中心、欧洲南方天文台数据中心、盖亚卫星数据、欧空局数据集、天体物理学数据系统(ADS)、加拿大天文数据中心等。
PyVO :PyVO是一个支持虚拟天文台数据访问协议的工具包。支持的协议包括:表格访问协议(TAP)、简单图像访问协议(SIA)、简单光谱访问协议(SSA)、简单锥形检索协议(SCS)、简单谱线访问协议(SLAP)等。这些协议也是Astroquery工具包的支持基础之一,在安装Astroquery时会自动安装pyVO。
其他的附属包还有处理图像数据的ccdproc、处理测光数据的photutils、处理光谱数据的specutils以及机器学习包astroML等等。
参考文献
1. ADASS:https://adass.org/
2. AstroPy: https://www.astropy.org
3. Astropy: A community Python package for astronomy, The Astropy Collaboration et al 2013 A&A 558, A33
4. The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package, The Astropy Collaboration et al 2018 AJ 156 123