Skip to the navigation links
Last modified: 21 December 2023

URL: https://cxc.cfa.harvard.edu/ciao/intro/index.html

Welcome to CIAO


The remarkable science capabilities of the Chandra X-ray Observatory demanded new, flexible, multi-dimensional software to analyze the data it returned. The result is CIAO, a system that has proven itself useful for the analysis of data from other, non-X-ray missions, because of the mission independence that is the basis of the CIAO design.

New to X-ray Astronomy?

For those new to X-ray astronomy and data analysis, please see our "An X-ray Data Primer: What I Wish I Knew when Starting X-Ray Astronomy"


There are CIAO Software downloads available for several platforms.

The Introduction to Tools and Applications page describes the classes of tools and gives links to the tool help files. The Release Notes have detailed information regarding the most recent version of CIAO and any patches, including new tool descriptions and bug fixes. The Data Caveats page gives warnings for specific data sets.

For information regarding calibration and how CIAO uses cal information, try visiting the CALDB page. You may also find the Chandra Instruments and Calibration page useful.

High resolution spectroscopy using the Chandra gratings requires a greater amount of atomic physics knowledge than previous X-ray astronomy has done. The CXC has therefore supported the creation of a new atomic physics database, ATOMDB.


The following is a simple example of how CIAO works. This set of commands creates an energy spectrum for a region of an event file. The data is from the ObsID 214 dataset (an ACIS-S observation of supernova remnant Cassiopeia A), which was downloaded from the Archive.

We begin by loading the event file into the image viewer, ds9.

unix% ds9 acisf00214N003_evt2.fits &

Then we select regions to contain most of the source emission, shown in green on the image below. The resulting region file (obj.reg) looks like:

unix% more obj.reg
# Region file format: CIAO version 1.0
circle(3818,3980,408)
circle(3436,4150,100)
[Cas A image in ds9]

The dmextract tool can be used to create a spectrum for the source by binning the events which fall within the regions:

unix% punlearn dmextract
unix% dmextract "acisf00214N003_evt2.fits[sky=region(obj.reg)][bin pi]" spectrum.fits 

The PI spectrum can now be plotted and examined using Sherpa, the CIAO modeling and fitting tool, and analyzed further:

unix% sherpa
-----------------------------------------------------
Welcome to Sherpa: CXC's Modeling and Fitting Package
-----------------------------------------------------
Sherpa 4.16.0

Python 3.11.6 | packaged by conda-forge | (main, Oct  3 2023, 10:40:35) [GCC 12.3.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.18.1 -- An enhanced Interactive Python. Type '?' for help.

IPython profile: sherpa
Using matplotlib backend: QtAgg

sherpa In [1]: load_pha("spectrum.fits")                                                             

sherpa In [2]: plot_data()                                                                           

sherpa In [3]: ignore(250,None)                                                                      

sherpa In [4]: plot_data()                                   

This filtering shows the detail of the spectrum in the plot below. Analysis of greater depth, such as fitting a source model, may be done in Sherpa once the necessary response files have been created.

[Spectrum plotted in Sherpa]
sherpa> quit()

The CIAO Threads page contains more examples of frequently used data analysis procedures.