天文软件概述
崔辰州
cb@yac.bao.ac.cn
中国科学院国家天文台
(发表于2001年的《天文馆研究》)
随着计算机技术、互联网技术,特别是像VC、Delphi等软件开发工具的快速发展,天文软件也像其它门类软件一样得到了高速发展。天文软件的开发队伍中既有世界著名的软件公司、专业软件开发人员,也有酷爱软件编程的天文爱好者。现在的天文软件种类繁多,内容几乎涉及天文学的各个领域。这些软件的使用,无论是对专业的天文工作者还是业余时间玩玩天文的爱好者都提供了极大的方便。下面就以笔者的体会对当前的天文软件做一概要介绍。
从软件的功能和内容上分,天文软件可以分为天文百科类、电子星图类、仪器设计与控制类、天文小工具类等几大方面。
天文百科类软件就像一个天文馆。从这里你可以学习到从天文学发展的历史到当代天文学的最新成就各方面的知识。由于这种软件涉及的内容范围广,软件包的大小一般比较大。这类软件中我们比较熟悉的主要有:红移(www.redshift.maris.com),Starry Night Pro(www.starrynight.com),应用大量图片真实模拟太阳系的景观的solar
kingdom(www.solarkingdom.com)等。
电子星图软件主要致力于“星图”的电子化。利用计算机强大的计算能力,电子星图软件可以显示世界上上下几千年的时间跨度上任何时刻、任何地理位置的星空状况。有些软件像Starry Night Backyard,还可以把观测者的位置设想在月球、火星等地球之外的天体上,也就是说可以显示其他星球上所看到的星空的情景。软件显示星空时,坐标形式(赤道、黄道、银道)、极限星等、视场大小等都可以由用户自己定义。星图类的软件非常多,代表性的产品主要有:SkyMap
(www.skymap.com),CyberSky (www.cybersky.com)、Stella 2000 (www.stella2000.com)、Deep
Sky 2000 (www.deepsky2000.com)、Distant Suns (www.distantsuns.com)、Kagayaki III
(www.now21.com/kagayaki)、xephem (www.clearskyinstitute.com/xephem/)、Stella
Theater Pro (www.toxsoft.com/sswpro/index.html)、Mega Star (www.flash.net/~megastar/)等。
仪器设计与控制类软件是进行天文仪器设计、天文观测的有力辅助工具。可以利用这些软件进行天文望远镜的光路设计、像差分析,可以实现望远镜的自动指向、自动导星等功能。不同的仪器设计软件所能设计的光路的复杂性、分析结果的精度随软件的专业程度不同而不同。不同的仪器控制软件所支持的望远镜的品牌、型号不同,控制精度也不同。在这类软件中,比较流行的有天文望远镜光学设计和分析软件ATMOS (web.tiscali.it/ATMOS)、OSLO (www.sinopt.com)、MODAS
(members.kabsi.at/i.krastev),望远镜观测控制软件Epoch 2000 (www.meade.com),等。我国湖北武汉的王国胜先生自己开发的“天文望远镜折射物镜设计”
软件可以设计两组镜片的简单折射望远镜,给出最优设计时镜片的磨制参数。
天文小工具类软件主要是利用计算机强大的计算能力进行程序计算,解决天文研究、天文观测中经常遇到的一些数值计算问题,比如天体轨道的计算、月相的计算、星系相互作用模拟、恒星化学演化模拟还有日月食、掩星等天象的计算。这类软件中,我们爱好者常用到的月相显示软件Lunar Phase (indigo.ie/~gnugent/LunarPhase/),星系碰撞模拟软件Galaxy Collider
(homepages.tig.com.au/~cthulhu),流星雨目视观测记录评测软件VISDAT (www.imo.net),进行星图自动匹配的RegiStar
(www.aurigaimaging.com)、利用数值积分方法计算从公元前4500到公元4500年间天象的SOLEX (softload.narod.ru/education_and_science/astronomy)、可以让你随心所欲画星空的软件universe
(www.diardsoftware.com)、计算天体运行轨道的Orbit Xplorer (www.ottisoft.com)、CCD图像处理软件CCDPRO(www.ccdpro.com)等都是有代表性的小工具软件。
按用户群不同,天文软件可分为专业天文软件和业余天文软件。
专业天文软件主要是由世界上大的天文台开发的,软件的使用者也主要是世界各国的专业天文学家。由于是专业软件,所以有很强大的分析计算功能和很高的计算精度,对软件开发者和使用者的要求都较高,用户界面通常不如业余软件好。我国的天文学家们现在主要用到的专业天文软件有用于光谱分析的美国国立光学天文台开发的IRAF(iraf.noao.edu/),欧洲南方天文台开发的MIDAS (www.eso.org/projects/esomidas/);用于天文图像处理的有美国国立射电天文台开发的AIPS
(www.cv.nrao.edu/aips/);主要用于FITS文件处理的FTOOLS(heasarc.gsfc.nasa.gov)软件包,由美国宇航局高能天体物理科学文献研究中心开发。由于天文学家工作的软件平台主要是UNIX和LINUX,所以这些软件的运行平台也主要是UNIX和LINUX。业余天文软件的用户群主要是为数众多的天文爱好者和普通大众。上一部分中列举的那些软件都属于业余天文软件。业余天文软件由于其开发群、用户群的规模都远大于专业天文软件,所以它无论在涉及的领域、用户界面、运行环境都比专业天文软件丰富。
按软件包的大小,天文软件可分为小型天文软件和大型天文软件。
像DOS环境下以三维形式显示地球附近2000多个星系情况的cosmos (Jeff Bondono编写),计算每晚可以看到的梅西耶天体数的messmara
(www.ip.pt/coaa),电子星图Cybersky,月相显示软件LunarPhase以及国际流星组织推荐的由资深流星观测者编写的几套软件(www.imo.net)等这些用一张普通的软盘就可以携带的软件就属于小型天文软件,而像Redshift
4,skymap 8.0 pro, starry night pro等这些必须用光盘甚至不只一张光盘才能容下的软件便属于大型天文软件。造成大型天文软件规模增大的一个非常重要的原因是大型星表、多媒体资料如大量图片、声音、电影等的使用。有些软件,当星表、图片等数据太大很难用光盘发行的时候往往在软件界面上提供了网络接口。当用到这些大型数据时直接实时的通过互联网从网站上下载。小型天文软件由于没有使用这些大型星表及多媒体等内容,便把更多的力量集中到编程技巧上,用尽量少的程序实现尽可能多的功能。
按软件的运行方式,天文软件可分为单机天文软件和网络天文软件。
单机天文软件就像我们通常在自己计算机上安装的那些软件,主要利用自己计算机的软硬件资源来运行。而网络天文软件主要采取一种服务器/客户机的运行模式。计算程序和各种数据都存放在服务器上。用户通过网络浏览器像服务器提交操作请求。服务器按照用户的要求完成需要的计算和数据处理后把所得到的结果反馈给用户。这样的网络天文软件在某种意义上带有一些“虚拟天文台”(见《天文爱好者》2001年第五期)的性质,从γ射线到射电波段全波段的地面、空间天文观测的数据往往可以融合在一起使用。当前开发的比较成功的网络天文软件有Aladin
(simbad.u-strasbg.fr)、SkyView(skyview.gsfc.nasa.gov/),JPL的skicat(www-aig.jpl.nasa.gov/public/mls/skicat)和虚拟太阳系(space.jpl.nasa.gov/)等。SETI@home(setiathome.ssl.berkeley.edu/)是一套比较特殊的软件。它利用用户计算机的空闲资源,当用户的计算机空闲时通过互联网从服务器上下载望远镜观测的数据并对这些数据进行分析,寻找地外生命存在的线索。最后,它再把分析的结果上传汇总到服务器上。可以看出SETI@home兼有单机软件和网络软件的性质。
按软件的发行方式,天文软件可以划分为商业软件、共享软件和免费软件。
商业软件一般是由商业软件公司开发,按照正规的商品销售方式销售。这样的软件有比较规范的开发过程、销售渠道和售后服务。软件的性能一般也比较高,比较稳定。由于这些软件绝大多数是国外公司的产品,对国内爱好者不利的是价格比较高,只有那些经济条件充裕的人才享受的起。共享软件一般是作为商业软件的演示版本发行的,不需要用户花钱就可以通过互联网等途径得到。这类软件要么在功能上加以限制,要么在使用时间上加以限制。如果要使用软件的全部功能或者过了试用期后想继续使用,用户就必须付费向发行公司去购买正式版了。免费软件则是一套真正的“免费”午餐。这样的软件相当一部分是有爱好电脑编程的天文爱好者自己开发并维护的,主要是为了满足自己的兴趣需要而不是出于商业目的。现在的免费软件一般借助互联网传播,用户可以免费下载,掏的只是网络费。由于主要靠个人开发,免费软件的整体水平比商业软件要差,软件的漏洞也比较多。但另一方面,这些软件一般都凝聚了开发者丰富的实践经验,所以在某些方面可能会有自己的独到之处。
以上从五个方面,按照笔者的理解给天文软件大致分了一下儿类别。但我们应该清楚严格的、界限分明的分类是不可能的。不同类别的软件之间常常是相互渗透,相互融合的。比如说在天文百科类软件中同时也提供了电子星图、天象计算、望远镜控制等功能。电子星图软件也往往提供仪器控制、图片显示等功能。质量优秀的业余软件专业天文学家也常常借用,水平越来越高的业余天文队伍也常常使用专业的天文软件处理自己的观测数据。给软件分类,主要的目的是让大家对天文软件有个更好的了解,更好的选择适合自己的软件。天文软件是一种非常有用的工具,充分利用现有的软件资源来满足我们工作、兴趣需要才是最终目的。
上面提到的这些仅是笔者接触到的一些,更多的资源还得你自己去寻找。利用方便快捷的互联网络,这一切都将在你的点点击击之中成为现实。