在我读本科的时候,天文学家还被邪恶的IDL语言掌控着,但是在基础天文数据处理领域,依然是上古神器IRAF的天下。IRAF是由美国国家光学天文台开发维护的一个通用天文处理工具,历史极为悠久。这个神器的工具与其说是一个软件,其实更像是一种编程语言+一个小的操作系统。。。在HST时代,空间望远镜科学中心STScI为HST的数据处理量身定制了专门的IRAF包,STSDAS,一下子把IRAF带入了空间望远镜时代,一直到21世纪初都是每个做光学天文数据的人必须学习的工具。
不过STScI其实一直在为IRAF寻找替代品。要说STScI的人还是很有眼光的,他们其实在非常早期就挑中了Python。只不过当年一切都得以IRAF为模板,于是搞出的是一个叫做Pyraf的有点不伦不类的东西。。。其实就是用Python做了个界面和IRAF交互。
直到一群年轻的研究生改变了这个局面。在一个Python for Astronomy的邮件列表里面,这些研究生开始讨论着如何把自己分头写的一些零散的Python代码汇总起来,做成一个开源软件包。这就是Astropy包的来源。如果我没记错的话,最开始时候大家只是想在Python下重现当时NASA维护的一套IDL Astro工具包的功能。但逃离IDL魔爪的喜悦很快吸引了更多的天文学家,这个项目也越做越大,逐渐发展成了一整个生态系统。如今,基本天文工具包Astropy,测光工具Photutils,CCD处理工具ccdproc,天文数据库交互工具astroquery,天文观测计划设计包astroplan,光谱基础处理 specutils,等等共同汇聚成了一个开源、活跃、生机勃勃的天文软件社区。到目前为止,一共有400多名用户给astropy贡献过代码,且这个数字还在快速上升。
最近,JWST发射升空。目前一切顺利的JWST已经到了睁开眼改变世界的前夜,而这次STScI为JWST量身打造的所有工具都是基于Python的。并且,这些工具里没有一个少得了Astropy生态系统的加持。这也是为什么Astropy最近拿到了NASA的经费支持,用爱发电了10多年的天文“码农”们终于也能分到一点成果了。
--
FROM 185.203.219.*