Last modified 12 months ago Last modified on 04/17/2013 07:44:58 PM

AstroLib Project Page

Astrolib is an astronomical utility library for Python analogous to the ASTRON library for IDL. There's a (mostly inactive) wiki that includes discussion of its design philosophy, requirements, envisioned components, etc.

Send questions to the "astropy at scipy dot org" mailing list.

Astrolib presently has six active components:


read/modify/write ASCII tables

AstroAsciiData is a Python module to handle ASCII tables. Features:

  • Imports all reasonably well-formed Ascii tables
  • Easy creation and manipulation of tables, columns, rows and attached comments
  • Retains formatting of data values
  • Support for SExtractor style header
  • Column sorting
  • Interchangeable comment character, column delimiter and null value
  • Data export to Numpy/Numarray?, FITS, HTML and LaTex?


Read and write ASCII tables

Asciitable is an extensible ASCII table reader/writer that handles a wide range of input formats:

  • Basic: basic table with customizable delimiters and header configurations
  • Cds: CDS format table (also Vizier and !ApJ machine readable tables)
  • CommentedHeader: column names given in a line that begins with the comment character
  • Daophot: table from the IRAF DAOphot package
  • Ipac: IPAC format table
  • Memory: table already in memory (list of lists, dict of lists, etc)
  • NoHeader: basic table with no header where columns are auto-named
  • Rdb: tab-separated values with an extra line after the column definition line
  • Tab: tab-separated values

By default the table is read as a NumPy record array which can then be manipulated using the full complement of NumPy methods. Below the hood asciitable is built on a modular and extensible class structure. The basic functionality required for reading or writing a table is largely broken into independent base class elements so that new formats can be accomodated by modifying the underlying class methods as needed.




An intended replacement for synphot

Pysynphot is a synthetic photometry software package suitable for either library or interactive use. Intended as a modern-language successor to the IRAF/STSDAS synphot package, it provides improved algorithms that address known shortcomings in synphot, and its object-oriented design is more easily extensible than synphot's task-oriented approach. Written in Python, it will run under PyRAF, and a backwards compatibility mode is provided that will recognize all spectral and throughput tables, obsmodes, and spectral expressions used by synphot, to facilitate the transition for legacy code.


  • no IRAF dependencies
  • improved precision arithmetic
  • improved handling of wavelength sampling
  • extensive graphics capabilities available using matplotlib/pylab

Pysynphot is distributed as part of stsci_python, but it can be downloaded separately here:



Earlier versions:

  • the v0.55 version, complete with all data needed for full functionality, and two demo scripts. This version was demonstrated at ADASS 2008 on 4 November 2008, Quebec City.


for managing astronomical coordinate systems (

  • Previous release v0.3 (12 Feb 2007)


for photometry of mixed-resolution data sets (a software project by the GOODS team)

TFIT is presently an inactive project.


pywcs is now part of astropy. While bug fixes and some new features will be made available to the standalone package, future large changes will be made as part of the astropy project, and we encourage moving to it when possible.

pywcs is a set of routines for handling the FITS World Coordinate System (WCS) standard. It is a thin wrapper around the high- and mid-level interfaces of Dr. Mark Calabretta's WCSLIB.

Contact: Michael Droettboom


vo.table is now part of astropy. While bug fixes and some new features will be made available to the standalone package, future large changes will be made as part of the astropy project, and we encourage moving to it when possible.

A library to parse, validate and generate VOTABLE XML files. On the Python side, the data is stored as a Numpy structured array.


  • Python 2.6, 2.7, 3.1 or 3.2
  • Numpy 1.0 or later (though 1.3 or later is recommended for a more user-friendly recarray interface). Versions prior to 1.5 have a bug handling complex numbers.
  • pyfits 2.2 or later is optional for FITS data format support

Contact: Michael Droettboom

SVN repository