PyAtomDB & AtomDB

The AtomDB Project consists of a large atomic database designed for creating spectra of collisionally excited plasmas in the UV and X-ray wavebands for use in astronomy and astrophysics research. It has been successfully used for some time within several different spectral analysis suites, such as XSPEC and Sherpa.

There are two main parts to AtomDB:

The Astrophysical Plasma Emission Database (APED)

A series of FITS files which store the atomic data necessary for modelling emission from collisional plasmas from elements from H through to Zn.

The Astrophysical Plasma Emission Code (APEC)

Code which takes the APED and uses it to model a collisional plasma, creating emissivity files for line and continuum emission. These output files are then used in a range of models such as the apec, nei and pshock models amongst others.

Starting in 2015, PyAtomDB was developed to achieve a number of goals:

  1. To replace the APEC code (formerly in C) with a more flexible tool for larger data sets

  2. To allow interactive user access to the underlying database, which was always freely available but sometimes difficult to use

  3. To enable creating more flexible spectra based on the outputs of AtomDB

  4. To enhance the types of spectra which can be modeled in AtomDB, and astronomer interaction with these models

  5. To facililtate inclusion of AtomDB models in other software (often python based).



PyAtomDB is a selection of utilities designed to interact with the AtomDB database . These utilities are under constant development. Please get in touch with any issues that arise.

There are several different modules currently. These are:


A series of codes for interacting with the AtomDB atomic database


Basic atomic data routines - e.g. converting element symbols to atomic number, etc.


Physical and code related constants


Routines for generating spectra from the published AtomDB line and continuum emissivity files


Utility codes (sorting etc) that pyatomdb relies on.


The full APEC code

To report bugs or make feature requests, email the code authors or raise an issue at the github page

Indices and tables