python天文资源索引

Python的科学计算功能非常强大,各方面的支持也渐趋成熟。应对日常的科学计算已是绰绰有余。HYRY写的“用Python做科学计算”就是很好的入门教程。但目前中文资源仍比较少,我这里根据Astronomical Python、和
Python for astronomers两个页面对常见的科学及天文类资源做个简单的介绍 (新闻动态可以参考AstroPython)。

linux下的安装我不多说,windows下推荐安装现成的发行版,目前主要有两个:Python(x,y)EPD (Enthought Python Distribution)。前者是个开源工具大集合,有完整,标准,精简,和ETS(Enthought Tool Suite)四种安装方式可选,完整版包括Qt开发工具和Eclipse开发平台等众多工具,体积有600多M,完全免费;后者包含的库也很全,因为只有命令行界面,体积要小一些,224M。虽然是商业软件,但也免费提供32位的教育版。

下面是一些常用的科学计算扩展,很多都已经包括在上面的两个发行版中。

  • Numpy – Arrays manipulation library 科学计算的必装模块,几乎所有的其他科学模块都依赖于它。
  • Scipy – 扩展的科学计算模块。
  • PyGSL C/C++语言中著名的科学计算函数库GNU Scientific Library (GSL)的python版,也有Pyrex版本,PyrexGsl
  • PyIMSL:商业软件 IMSL 数值计算函数库( IMSL Numerical Libraries)也推出了python 版,可选择非商业授权。
  • IPython – 最好的命令行界面。
  • Matplotlib – 高质量的2D作图模块,足以替代GNUPlot
  • Mayavi:强大的三维作图模块,属于EPD公司套件的一部分
  • Sympy:符号计算模块
  • StatLib:统计学工具箱
  • Escript/Finley:偏微分方程求解
  • Parallel Python:并行计算模块
  • GDL:独立的IDL程序编译器。

通向完整列表的传送门

如果要调用C,C++或者Fortran模块,还要安装编译器gcc(win下可以用cygwin或者MinGW)并修改配置文件,如果未指定,程序会默认寻找Visual Studio 2008,找不到时提示如下:

error: Unable to find vcvarsall.bat

现在各个领域的python模块都已经很丰富了,丝毫不逊于Matlab的工具箱。光是Scipy社区的科学模块列表就已经让人目不暇接了(天文由此去),也可以在python社区的模块列表中直接搜索 (不过搜astro评分靠前的几个都是占星模块……)。我挑了些天文模块做简单的介绍:

  • AstroLib:IDL下的天文运算库Astronomy User’s Library,已经被移植到了Python上。虽然项目主页放在Scipy上,但并没有包括在scipy的安装包中,甚至也没有完整的安装包,6个子库由不同的单位开发维护,要分别下载安装。分别是处理数据表的 AstroAsciiData,孔径测光 pysynphot,坐标转换 coords,测光包tfit,FITS文件坐标转换 pywcs,和一个数据格式转换包 votable2recarray
  • STSCI Python:哈勃望远镜的东家空间望远镜研究中心STSCI开发的一系列Python工具。包括IRAF的Python脚本环境,PyRAF;处理FITS图像和表格的PyFITS,用于图像合并的MultiDrizzle,出现于Astrolib中的孔径测光脚本pysynphot,以及数据可视化的Numdisplay。但目前的2.9版不支持Python 2.5以上的版本,还依赖于IRAF、Tcl/Tk 等其他软件。不过单独安装最新的PyRAF 1.8倒是可以在2.6下运行。Linux和Mac下还有更简单的办法,就是安装欧南台的天文软件包Scisoft,环境都是配好的。
  • PyMidas:欧南台为其数据处理系统MIDAS开发的python接口。
  • EphemPy:为JPL ephemeris tables 开发的Python接口,需要从JPL星历网站下载数据文件。有着这个库,就不用查天文年历了。
  • PyEphem:功能和前一个库类似,不过是基于Linux上著名的天象软件XEphem的算法开发,可以独立计算。
  • Kapteyn Package:荷兰Groningen大学Kapteyn Astronomical Institute的函数库,基于numpy 和 WCSLIB ,没有提供安装包,需要自行编译。
  • APLpy:在matplotlib的基础上增强对天文图像的处理功能
  • astLib:天文学家Matt Hilton开发维护的模块,包括图像处理,坐标转换,绘图,统计等一整套工具。
  • ATpy 专门处理天文表格,FITS, VO,数据库通吃。
  • pywcsgrid2 利用matplotlib来显示fits图像
  • CosmoPy著名宇宙学程序CAMB的python后端,和CosmoMC类似。但版本较老,08年12月之后一直没有更新。
  • cosmocalc,计算宇宙学模型下的基本常数。

个人脚本:

作为一门新兴的语言,Python无疑有着出色的表现,但也有着无法回避的困难,向下兼容,由于3.0新版语法变动很大,几乎所有这些库都没有跟进,2.6仍是目前最好的选择。另一方面,不同平台的软硬件条件差别也造成了调试编译的困难,前面介绍的一些模块甚至不能在Windows下顺利安装。然而,这不就是历史吗……

订阅评论
提醒

0 评论
内联反馈
查看所有评论