Astronomical Laboratory ASTR:4850,
Spring 2018
by Philip Kaaret
This course is focused on visible light, but astronomy covers the
whole electromagnetic spectrum from lethargic radio waves to very
energetic gamma-rays. In today's lab, we will analyze X-ray data
obtained with the Chandra X-ray Observation of jets ejected from
the black hole X-ray binary XTE J1550-564. XTE J1550-564
(hereafter J1550) is a binary system consisting of a black hole
with a mass of 9.10±0.61 solar masses and a star of spectral type
K3III in a 1.55 day orbit. The system is at a distance of =
4.4±0.6 kpc. In 1998, the system produced a major X-ray outburst
that peaked on 1998 September 20. Radio jets on milli-arcsecond
scales were observed a few days after the outburst. In 2002, a
radio jet was discovered to the East of the black hole. This led
to a re-analysis of X-ray data taken in 2000 and the detection of
an X-ray counterpart of the radio jet. Follow-up observations led
to the discovery of a jet visible in X-rays to the west of the
black hole. The figure below shows an X-ray image taken on 2002
March 11. The color scale represents the number of X-rays in each
pixel of the image. The black hole is the bright source at the
center of the image, the western jet is the brighter source on the
right, and the eastern jet is the dim source on the left. The red
line shows the axis of the milli-arcsecond scale jets seen in 1998
shortly after the major X-ray outburst. The jets visible in
2000-2002 appear to be the same jets ejected in 1998 re-energized
by interaction with the interstellar medium.
In this class, we will have the pleasure of analyzing X-ray
event data obtained with the Chandra X-Ray Observatory. We will
compare two images, one taken on 2002 March 11 and a second taken
on 2002 September 24. The data were previously analyzed in these
papers: http://adsabs.harvard.edu/abs/2003ApJ...582..945K
and http://adsabs.harvard.edu/abs/2004NuPhS.132..354K.
You will be measuring the position of the Western jet relative to
the black hole to estimate the speed of the jet.
With optical CCDs, one exposes the CDD for some time with photons
striking many, if not all, of the pixels on the CCD. The data read
out from the CCD is then an image of the sum of all the photons
received. X-ray CCDs work in a different mode, recording each
individual X-ray. X-ray astronomy suffers from a paucity of
photons (we delude ourselves that quality counts more than
quantity). Even with large X-ray telescopes such as Chandra, the
rate at which X-rays are collected is often one per second or
less. X-ray CCDs are usually typically exposed for short
intervals, shorter than the average time between two successive
photons. Each image is then an image of a single photon. Also, due
to their sizable energies, X-ray do not produce a single
photoelectron, but many. In silicon, 3.65 eV of energy is
required, on average, to produce an electron-hole pair, so an
X-ray with an energy of 2000 eV can produce 550 electrons. CCDs
measure the total number of electrons, called pulse height, which
is a measure of the energy of incident X-ray. Rather than
producing images, X-ray CCDs produce a record of each individual
X-ray detected. The position of the photoelectrons on the chip
indicates the position on the sky from which the X-ray originated,
the total number of electrons indicates the X-ray energy, and the
time at which the exposure was acquired indicates the time at
which the X-ray arrived. Thus, the data from X-ray CCDs is
fundamentally different from optical images.
We have been storing our optical images in FITS format. FITS (the
Flexible Image Transport System) was originally created to store
images, but its popularity led to extensions for other types of
data. X-ray data are typically stored in a 'binary table
extension', which is basically a list of events with values, such
as time, pulse height, and position.
We will get our X-ray data form the Chandra archive. Observatories operated by NASA are required to store all of their observational data and make it publicly available (often first giving the observers who obtained it exclusive access for the first year). Go to the Chandra Search and Retrival interface http://cda.harvard.edu/chaser/. Type (or paste) XTE J1550-564 in the Target Name field and click the "Resolve Name" button. Check that the name was resolved (RA and DEC coordinates should appear) and then click the "Search" button. Now find the observations that occurred on 2002-03-11 and 2002-09-24 and check the Select box for those. Click the "Add Products to Retrieval List" button. Then click the "Retrieve Products" button. Wait a bit and then click "view the status of your retrieval". A little window should pop-up; wait until it indicates your data are ready for retrieval, then click on the link to download your data. You will need to extract two files: 3448/primary/acisf03448N003_evt2.fits.gz and 3807/primary/acisf03807N003_evt2.fits.gz. You'll then need to gunzip those so that you end up with files with .fits extension. These are event files containing binary tables of X-ray events. If your computer doesn't have software for uncompressing tar and gz file, you can use the portable version of 7-zip that requires no installation unzip software that can be used to open tar/gz: https://portableapps.com/apps/utilities/7-zip_portable.
You should see two bright X-ray source near the center of the
image. Use Simbad to find the coordinates for XTE J1550+564 so
that you can identify which is the black hole binary. Draw
circular regions around the black hole and the X-ray jet to the
west (to the right in the image). To draw a circular region,
select Region/Shape/Circle and Edit/Region. Then move your cursor
to where you want the center of the region, click and hold
dragging out to your desired radius. Make your radius just large
enough to enclose all of the counts associated with each source.
You will need the region information later on. You can either
double click on the region, which will raise a pop-up window or do
Region/Save Regions to write the regions you have defined to a
file. Find regions in physical coordinates for the black hole and
jet in each image.
Now let's look at a python program to process event files in fits
format. Load xray_fits.py into an
editor of your choice. Briefly look at line 3. Most of the python
examples in this class import everything from numpy using 'from
numpy import *'. This is easy, but has the disadvantage of loading
the whole numpy module which can sometimes conflict with other
modules or your own code. It is better practice to import only
those functions that you actually use as done here. The downside
of this is that you have to remember to put the functions in the
import statement.
Edit line 6 that sets the filename to match the name that you
used for one of your downloaded event files. Add directory
information if you don't store your code in the same directory as
your data.
Lines 8-11 open the FITS file and read it in, copy the header
information into the variable h, copy all of the event information
into the numpy record array d, and then close the file. It's
always do practice to close a file as soon as you are done with
it, since you'll forget otherwise.
A record array works like an array, but allows using a text index
into the data rather than a numerical index. This is evidence in
line 14. d['x'] picks out the data filed under the index 'x'.
Lines 15-19 do the same for other event data. We end up with a set
of numpy arrays with the event data: x, y, energy, time, ccd_id,
and grade. The first entry in each array corresponds to the first
event in the FITS file, the second to the second event, ...
The variables x and y are sky coordinates in pixels. These match
the physical coordinates in ds9. energy is the event energy in eV.
Time is the event time in seconds since 1998 Jan 1, 00:00:00 TT
(Terrestrial Time). ccd_id indicates on which CCD the event was
recorded. Chandra has multiple CCDs. The observations you are
examining were taken with only one of the CCDs on, CCD #7 which is
also called the S3 chip. The layout of the Chandra CCDs is
described here: http://cxc.harvard.edu/proposer/POG/html/chap6.html.
The variable grade indicates the shape of the X-ray event. As
noted above, X-ray CCDs are operated so that single X-rays are
recorded in each exposure. However, the charge from a single X-ray
can reach more than one pixel. This happens if the track length of
the primary photoelectron produced by the X-ray is larger the
pixel size. An additional effect is that electrons diffuse as they
move in the CCD, spreading the charge cloud. Even so, images of
individual X-ray tend to be very compact, with most of the charge
going into the central pixel and extra charge going into an
adjacent pixel sharing a side (rather than a corner). In space
there are energetic particles that can also strike the CCD and
deposit charge. Sometimes these particle-induced events look just
like X-rays. However, energetic particles can deposit energy in
multiple pixels making some particle-induced events more spread
out than X-rays. Chandra, and almost all other X-ray CCDs in
space, use the event 'grade' to screen out particle-induced
events. The standard Chandra data processing retains grades 0, 2,
3, 4, and 6. These correspond to events with all of the charge in
a single pixel, in two adjacent pixels sharing a side, or three
adjacent pixels forming an 'L'. you can read about this in section
6.15.1 of http://cxc.harvard.edu/proposer/POG/html/chap6.html.
The next set of lines, 21-29, select out only events with
energies between 300 and 8000 eV. This is a commonly used energy
range with Chandra. Line 22 sets the energy range. Line 23 finds
which events satisfy the energy cut. Lines 24-29 picks out only
the events satisfying the cut and put them back into the same
variables.
The remainder of the code makes a few plots: a histogram of event
grades, a histogram of event energies, and a plot of the event
positions. On the position plot, it will probably look like a
solid block when the plot first appears. This is because the plot
symbol is relatively large. If you zoom in on the coordinates of
the black hole and jet, you should be able to pick them out.
Now run the program and look at the plots. Are the grades as
expected? Can you see the black hole and the X-ray jet?
Now print out the variable h. The first line indicates that we
have a binary table extension. NAXIS1 is the number of bytes used
to record each event. NAXIS2 is the number of events. The
different data recorded for each event are described by keywords
like TTYPE1 = the name of the datum, TFORM1 = the format (1D is a
double precision floating point number, 1I is an integer), and
TUNIT1 = the units. Our python code uses only a subset of the data
available for each event. How many different pieces of information
are recorded for each event?
We want to measure the displacement between the black hole and
the jet in the two images. To do this, you will need to write code
to pick out the events corresponding to the black hole or X-ray
jet in each image and then find the centroid for those events.
From the position of the black hole and of the X-ray jet, you can
calculate the distance between them in pixels. Convert the pixel
distance to arcseconds using the pixel size in the Chandra
Advanced CCD Imaging Spectrometer description. You can then
calculate how much the jet moved between the two observations.
Using the change in distance between the two observations and the
time between the two observations, you can then calculate the
average apparent speed of the jet during that interval (let's use
units of milliarcseconds per day).
Hints - you might use the code for event selection based on
energy as a guide about how to do event selection based on X and
Y. You can do the event selection using either circles or
rectangles. You could convert the event list into an image and use
your code from the astrometry lab, but you might find it easier to
keep everything in terms of the event list.
Questions - can you estimate the error on your position
calculations? Given that the jet isn't very point-like, is there a
better way to estimate how much it moved?
If you get bored, you can watch
Neil de Grasse Tyson comment on these data.