Coordinate systems used in Chandra analysis
The Chandra event files contain a number of spatial coordinate systems. For many purposes you want the system called "sky(x,y)" which gives pixels in the tangent plane to a specified position on the celestial sphere, but each system is useful for some applications.
Chandra event files contain columns for:
|CHIP||pixel numbers on ACIS chip or HRC segment|
|TDET||tiled detector, an artificial system to show the whole instrument plane|
|DET||detector or mirror coordinates|
|SKY||a pixel plane aligned with ICRS RA and Dec|
There are also FITS World Coordinate Systems attached to these pixel coordinates:
|CPC||maps CHIP to millimeters on the detector|
|MSC||maps DET to mirror off-axis angle and azimuth|
|EQPOS||maps SKY to RA and Dec|
The absolute accuracy of source positions in the EQPOS frame is typically 0.6 arcseconds (90 percent) within 2 arcmin of the optical axis. The error is about 1 arcsecond across the full Chandra field of view, although the large point spread function far off axis will limit positional accuracy in practice. See the Aspect pages of the CXC web site for details.
The CHIP coordinate system
The 'CHIP(CHIPX,CHIPY)' coordinate system gives row and column number on each chip. This is the most-basic coordinate system in the event file. The numbering starts at (1,1) in the lower left corner of the chip and starts over on each chip. For ACIS, the chips are 1024 x 1024 pixels in size and each chip has a number (CCD_ID) from 0 to 9. Note that the chip X axes are not all pointing in the same direction in the spacecraft. In the event files, the CHIP values are integers.
For HRC-I, there is a single 'chip' and the pixels are equal in size to the telemetry pixels. For HRC-S, each segment is a 'chip' numbered 1 to 3.
If you make an image in chip coordinates, you should first filter on CCD_ID to pick out a single chip:
dmcopy "evt.fits[ccd_id=7][bin chip]" chip7.img
Otherwise, you'll get all the chips superimposed on each other.
The TDET coordinate system
To see all the chips placed next to each other, use the TDET (Tiled Detector) coordinate system:
dmcopy "evt.fits[bin tdet]" tdet.img
The disadvantage of the tiled detector system is that the offsets between the chips are arbitrary. The chips in Chandra are oriented in different planes in three dimensions, and TDET does not reflect this - it should be used for visualization only.
The DET coordinate system
The coordinate system called DET(DETX,DETY), loosely "Detector coordinates", is more accurately "mirror off-axis coordinates", a projection of the photon positions onto the tangent plane to the unit sphere, with the tangent point being the Chandra telescope's optical axis. The center of the coordinate system is 4096,4096 for ACIS. If you make a detector image
dmcopy "evt.fits[bin det=16]" det_by_16.img ds9 det_by_16.img
and then adjust ds9 as follows:
- set Analysis/Coordinate Grid Parameters/Coordinate to "degrees"
- set Edit/Preferences/WCS to "degrees"
- set Analysis/Display Coordinate Grid
You will then see a grid marking the off-axis angles, making it easy to read off the values. The numbers in the WCS window are azimuth and off-axis angle; the numbers displayed on the coordinate grid are azimuth and (90 minus off-axis angle), so that the grid is marked 90.00 at the pole.
You may also notice that your sources are square-shaped. This is because the telescope is dithered during the observation; in DET coordinates the sources are squares and the bad pixels are single points; in SKY coordinates, with the aspect solution applied, the sources are points (at least the on-axis point sources are) and the bad pixels are squares.
To calculate DET from CHIP, the pipeline takes into account the 3-dimensional locations of the ACIS chip or HRC segment relative to the movable optical bench (SIM) and the translation position of the SIM relative to the optical axis, as determined both from encoders and (most accurately) from fiducial lights mounted on the instruments and imaged by the star camera. This means that the mapping from CHIP to DET changes slowly during the observation (by of order a couple of arcseconds) as the telescope tube bends, for instance under changing thermal conditions.
The SKY coordinate system
The SKY(X,Y) coordinate system is measured in pixels in the tangent plane; header information lets programs like dmcoords and applications like DS9 convert these pixel numbers to celestial RA and Dec. For Chandra data, the X and Y axes are aligned with J2000 RA and Dec in the ICRS (Hipparcos) frame. The aspect solution file gives the RA and Dec of the X-ray optical axis with respect to time; the pipeline uses this to map DET coordinates to SKY (boresighting was already taken into account in the mapping from CHIP to DET). Because the RA and Dec of the optical axis are changing, and in principle for a merged observation may change a lot, the tangent point of the projection is an arbitrary position (but it is usually chosen to be the targeted RA and Dec, or close to it). The reproject_events tool can be used to regrid the sky pixel coordinates of an event file relative to a different tangent point.
Sky coordinates (1.0,1.0) refer to the center of the lower left pixel of the image; the tangent point is in the center of the image, for ACIS it is (4096.5, 4096.5). You can check the tangent point by looking at the FITS TCRPXn keyword (using
in dmlist) or inspecting the output at the bottom of
The implicit coordinate systems provided by FITS WCS headers can also be used as if they were real columns in the event file (the values are calculated on the fly). For instance, we can use EQPOS(RA,DEC) to display the celestial coordinates of the events:
dmlist "evt.fits[cols EQPOS]" data rows=1:10
will give the RA and Dec in degrees of the first 10 rows of the file.
The MSC coordinate system
The MSC coordinate system MSC(THETA,PHI) will give the off-axis angle and azimuth of the photons in a frame fixed with respect to the HRMA optical axis. Remember that a given celestial location is dithered over time in this frame, so there is no one-to-one mapping between a source sky position and its off-axis angle. But we can get an average value with
dmstat "evt.fits[sky=region(src.reg)][cols MSC]"
A detailed description of the various coordinate systems can be found in the paper on Chandra coordinate systems available in the Manuals section of the CIAO web site.