The Hubble Law


Goals of this project

Prior to starting this lab, you must understand the astronomy at the AST101 level. Check the references, or other basic astronomy references you may find in the library. The introductory quiz will be at the AST101 level.

You must also have read the IDL primer. This is a data intensive lab and you will not be able to waste much time the first period reading the notes.

Grading Policy

Grading is based on the quality of the data analysis, the discussion of the uncertainties, and the answers to the questions at the end of this page.

I. Introduction

In the early years of the 20th century, astronomers pondered the nature of the spiral nebulae. Vesto M. Slipher obtained spectra (crude by today's standards) of a sample of spiral nebulae. Unlike the planetary nebulae or gaseous nebulae, which exhibited emission line spectra (often of as yet unidentified species), the spiral nebulae generally exhibited continuous, or star-like, spectra. In addition, some exhibited fairly large radial velocities, up to 1000 km/s, we in excess of those of any known star.

In 1920 the National Academy of Sciences held a great debate, between Heber Curtis and Harlow Shapley about the scale of the Milky Way. Curtis argued for a large scale of the Milky Way, with the spiral nebulae as gas clouds within the Milky Way. Shapley argued for a much smaller Milky Way, with the spiral nebulae as "island universes", similar in size to the Milky Way, but very far away. Curtis was correct about the size of the Milky Way, but Shapley's view about the spiral nebulae was ultimately proven correct when in 1925 Edwin Hubble, using the Mt. Wilson 100 inch telescope, resolved the outer parts of M31, the Andromeda Nebula, into stars. The spiral nebulae are galaxies much like our Milky Way.

In the 1930's Edwin Hubble discovered and quantified a relationship between the distance of galaxies and their recessional velocities.
Left: Hubble guiding the Palomar Observatory 48" Schmidt telescope. This is a publicity shot: it is generally not recommended that one smoke while observing.

Hubble showed that there was a general correlation between the brightness of a galaxy and its radial velocity, with the faintest galaxies having the largest negative (recessional) velocities.

Using a variety of distance indicators, Hubble quantified this trend as a linear relation between recessional velocity and distance. The figure above, first published in 1929 (Proc NAS, 15, 3) is reproduced from Hubble's "The Realm of the Nebulae". This relation
v = H0 d
is now known as the Hubble law, and H0 is Hubble's constant. Hubble derived a slope of about 500 km/s/Mpc.

Solutions of the equations of general relativity show that a static universe is stable provided it is empty, but a universe filled with matter cannot be static. This led Albert Einstein to formulate the Cosmological Constant. Hubble's observations provided the first proof that the universe was not static, but was expanding, and led Einstein to renounce the Cosmological Constant (it is now back, but for other reasons).

The inverse of H0is proportional to the age of the universe. Measuring the value of the Hubble Constant has not proved simple; the currently accepted value is about a factor of 7 smaller than Hubble's first estimate.

Your task in this lab is to verify that Hubble got it right. We have images and spectra of a sample of galaxies. Your task is to determine the redshifts, and to estimate the relative distances.


II. The Data

At present we have compete data sets for 30 galaxies. These are:
NGC 2525 08 05 38.0-11 25 11 
NGC 2835 09 17 52.9-22 21 181 
NGC 2889 09 27 12.6-11 38 371 
NGC 2997 09 45 38.6-31 11 251 
NGC 3059 09 50 07.9-73 55 171 
NGC 3137 10 09 07.2-29 03 511 
NGC 3140 10 09 27.6-16 37 411 
NGC 3360 10 44 16.0-11 14 321 
NGC 3361 10 44 29.0-11 12 271 
NGC 3511 11 03 23.7-23 05 111S
NGC 3513 11 03 45.9-23 14 391 
NGC 3621 11 18 16.0-32 48 422 
NGC 3672 11 25 02.3-09 47 402 
MCG -01-30-013 11 37 44.9-07 16 041 
NGC 4666 12 45 08.7-00 27 412 
NGC 4668 12 45 32.0-00 32 092X
NGC 4731 12 51 01.0-06 23 342 
IC 4212 13 12 03.0-06 59 291 
NGC 5068 13 18 54.6-21 02 202 
UGCA 348 13 19 52.0-22 16 441 
NGC 5170 13 29 48.9-17 57 592 
MESSIER 083 13 37 00.8-29 51 591 
NGC 5530 14 18 27.1-43 23 192 
NGC 5643 14 32 40.7-44 10 282 
MCG -01-38-012 14 58 30.0-06 49 141 
NGC 5833 15 11 54.1-72 51 322 
NGC 5885 15 15 04.1-10 05 102 
NGC 5967 15 48 16.2-75 40 222 
NGC 6118 16 21 48.5-02 17 032 
ESO 138- G 010 16 59 02.9-60 13 031 

S: Seyfert 1 galaxy. Nucleus may be abnormally bright.
X: Possibly tidally truncated. May give misleading results.

Coordinates are epoch 2000. All have nominal Hubble types of Sc.

The data are stored on two CDs which should be easy to locate in the lab room. The data for each galaxy are in separate directories. Refer to the Table above to locate a specific data set.

The archival data include:

All the images and spectra are stored in FITS format.

II A. The Images

In each galaxy directory you will find one or two image cubes. Each image cube is an X x Y x Z array. Each Z array corresponds to an X x Y image observed though a different filter. There are always at least 4 filters (B, V, R, I); the U band image is available in some cases. The header keyword FILTERz, where Z=1-5, identifies the filter.

The images were obtained using the SMARTS 0.9m CCD imager at the Cerro Tololo Interamerican Observatory during the spring of 2003. You should read up on CCDs. The data have been bias-corrected, trimmed, and flat-fielded.

If there is a single image cube, the name is GAL_icube.fits (where GAL is the name of the galaxy); if there are two images cubes, the names are GAL_icube*.fits, where * is either 1 or 2. The two images were taken on different days, and one is generally much longer (deeper) than the other. In general, use the deeper exposure.

Use IDL to read in the images. For example, to read the I band image for NGC2525, use the following sequence of commands:

print,sxpar(h,'filter*')     ; print header words filter1, filter 2, etc.
                             ; result is "B        V        R        I"

To automate the image analysis, you could find and extract the I band image automatically with the following two lines:

k=where(strtrim(sxpar(h,'filter*'),2) eq 'I')

Display the image using the TV command. The TV command is primitive: it does not scale the data, or resize the TV window. If the image is larger than the size of the monitor, you should probably rebin it (see this section) to a manageable size. Use the TVPLOT command or, for more control, size the plot window with the XSIZE and YSIZE keywords and do the flux scaling manually (see the "Using the Cursor to Measure Positions" section in the IDL primer). The images contain some bad columns, which can take very high or very low values. Some images contain very bright stars, which can make it hard to find a low surface brightness galaxy. I suggest you find the sky level, which to a good approximation is the median level in the image. In IDL, type m=median(image) to determine the median value m.

Plotting image>m will set the floor of the image to the median, getting rid of all negative points. To truncate high points, try plotting (image>m)<(m+n), where n is some threshhold level of counts above the median. You should also try plotting the log of the image (make sure there are no negative of zero values). Experiment until you find a good visualization of the galaxy. You could also experiment with plotting the logarithm of the image to bring up the fainter details while retaining dynamic range.

Note that some of the images are rather large (the original images are 2048 x2048 pixels). Feel free to trim the images as appropriate. For example, to make an 800 x 800 image out of a 1200x1200 image, retaining the same image center, you would type IMAGE=IMAGE(200:999,200:999)

For all practical purposes, you may assume that there is minimal curvature in the sky. The plate scale is linear, and is given by the XPIXSIZE and YPIXSIZE header words. This is the number of arcsec per pixel, and is normally 0.401 for these 0.9m images. The CRVALx keywords (x = 1 or 2 for the X and Y axes, respectively) represent the decimal RA, DEC (usually the center of the galaxy) at pixel (CRPIX1, CRPIX2).

Note that the keywords RA and DEC correspond to the actual pointing position of the telescope. You need to precess this from the epoch of the observation to epoch 2000, and then figure out where the central pixel is.

When you convert seconds of time to seconds of arc, remember that there is a cos(dec) factor in the conversion.

II B. The Spectra

There are two spectra in each directory, one in the red (GAL_sp_r.fits) and one in the blue (GAL_sp_b.fits). These are 2-dimensional long slit spectra. The dispersion dimension is 1199 pixels long, the spatial dimension is generally about 260 pixels (about 5 arcmin) long. In addition, the extracted spectral files are included. These are named GAL_s_g26.fits (blue) and GAL_s_g47.fits (red). (Note: some of the blue spectra may be named GAL_s_g26i.fits.)

The images were obtained using the SMARTS 1.5m RC spectrograph at the Cerro Tololo Interamerican Observatory, mostly during the spring of 2003.

The Two Dimensional Spectral Images

The two dimensional spectral images have been bias-corrected, trimmed, and flat-fielded. Three spectra were obtained of each object. These three spectra were median-filtered to remove cosmic rays. A wavelength comparison spectrum of a hollow-cathode arc lamp was obtained along with each spectrum. These have been reduced to produce the wavelength solution. The solution in a 4th or 5th order polynomial; the coefficients are in the FITS header.

The slit runs east-west; the slit width is 110 microns (1.5 arcsec).

The Extracted Spectra

The extracted spectral files each contain 8 spectra. These are You should use spectrum 0, with uncertainties from spectrum 2. The background (spectrum 1) has already been subtracted from the next spectrum (0). The Gaussian extractions are noisier, and should not be used. If you prefer to work with fluxes rather than counts (not recommended), multiply spectra 0-3 by spectrum 6, and multiply spectra 4-5 by spectrum 7.

Extract the spectra as spectra = readfits(file,header)
where file is the name of the fits file, and spectra and header are the output data and header vectors. spectra will be an 1199 x 8 array.

The spectra have been linearized in wavelength; the wavelength of the first pixel and the number of Angstroms per pixel are given in the header keywords wave_0 and delta_w. Construct the wavelenth vector as w=sxpar(header,'wave_0')+sxpar(header,'delta_w')*findgen(1199)

What the Spectra Should Look Like

Typical spatially-resolved spectral images (actually of the brightest of the galaxies, M83), are shown and described on this page.

The red spectra (this is of the brightest galaxy, M83) generally show a triad of emission lines. These are [N II] 6548.1,6584.3 Angstroms and H-alpha (6562.9). The fainter [S II] 6716.4/6730.8 doublet is also often in emission. The broad absorption at 6867.2 Angstroms is the terrestrial B band, due to O2 absorption.

The spectral resolution is 3.1 Angstroms.

The blue spectrum of M83 shows emision lines of H-beta (4861.3) and, very faintly, H-gamma (4340.5), as well as the forbidden [O II] 3727 doublet (wavelengths 3726, 3729 Angstroms), all suprposed on a blue continuum. The upper Balmer lines are in absorption in this case. The strongest of the absorption lines is a combination of Ca II H and H-epsilon at 3970 Angstroms, and the Ca II K like at 3933 Angstroms. The Ca II K and H lines are marked in Hubble's illustrative picture above. These form the 4000A break seen in the spectra of most galaxies. Longward of the break the continuum dominates; shortward of the break the continuum is chewed up by the absorption lines from hot stars.

The spectral resolution in the blue spectra is 4.3 Angstroms.

II C. The stars.dat File

The stars.dat file is the output of a search of the USNO astrometric catalog, centered on the nominal position of the galaxy nucleus. Note that the positions given in the headers of the fits images are the positions of the telescope at the epoch of observation (usually in 2003), and may be off due to telescope drift.

The file provides the coordinates and magnitudes for stars within a square of size 7 arcmin centered on the galaxy. The columns headed Bn, Rn, I2 are, respectively, the B, R, and I magnitudes measured at two epochs (n=1, 2). An entry of 0.0 means no magnitude was measured. The B, R, and I magnitudes correspond approximately (but not exactly) to the B, R, and I bands in our images. See the USNO astrometric catalog help page more detailed descriptions. I have retained only stars with I2 magnitudes <18.

The last entry in each line is the distance from the center. Be leery of anything within a few arcsec of the galaxy: the nucleus is sometimes picked up as a star. Also, nebulosities and star clusters in the galaxy may be listed here as stars.

Because the image sizes vary, some stars may be outside the boundaries of the image.

II D. Which Data Should You Use?

The data provided here are redundant. The distance indicators from each of the 4 or 5 images should, in principle, give the same relative distances, and the redshifts from the blue and red spectra should be identical.

We recommend the following:

Do you need to measure all 30 galaxies? No. But you do need to do enough (that's >>2) to find a correlation between distance and redshift. You need to do some nearby and some distant galaxies. The non-NGC galaxies (except for M83) tend to be fainter, and perhaps are more distant, than the NGC galaxies. You might start by measuring the redshifts, which is fairly straightforward, for all the galaxies. Then do the imaging analysis on a subsample. The imaging analysis is more open-ended, and can be much more complicated, than the spectroscopy.

III. What to Measure

You will need to make the assumption that these galaxies, all selected because they have Hubble Type Sc in the NED catalog, are all intrinsically the same - that is, they are roughly the same linear size and luminosity.

II A. Images

You want to measure some distance-dependent quantity. For example, you could measure the angular size of the galaxy, either in pixels or arcsec, using the XPIXSIZE and YPIXSIZE header words to convert. The angular size should scale linearly with distance.

You could measure the brightness of the nucleus. For this you will need to do an aperture-extraction to determine the total number of counts in the nucleus. Be careful with the background subtraction.

You could measure the brightness of the brightest nebulosities in the B or V band images. As in the Olympics, throw away the brightest few (they may be pathological), and compare the 4th or 5th brightest. Again, be careful with the background subtraction.

You can select other criteria, but you must justify them. You should discuss them with the instructor first.

Note that you will not be doing rigorous photometry here. A brief introduction to everything that photometry entails is presented in this AST 443 photometry page.

Aperture Photometry

Aperture photometry is a simple procedure wherein you count up all the flux in a region, and subtract an interpolated background. It can be done simply (recommended here), or in very complex ways.

The simplest way is to extract the counts in a square region centered on some object of interest at coordinates xc, yc For a square extraction region of radius r, the total counts are cts = image(xc-r:xc+r,yc-r:yc+r). You extract a background region in a similar way, avoiding stars and galaxy light. The background region need not be the same are as the extraction area, but if it is not you must scale the background to the area in the extraction aperture. Then subtract this background off to get the net counts.

The background should be taken near to, and preferably surrounding, the extraction region, in case there are gradients in the background. You can extract background in a larger area centered on the extraction box, or you can average a number of background regions. The most important thing is to explain carefully. what you did.

A more complex extraction would involve a circular aperture and concentric annuli for the background.

Always remember to propagate your errors correctly.

Correction to Absolute Photometry

If you choose to measure the brightness of something, you will have to correct to absolute. To do this you need a reference of known brightness. This is where the stars.dat file comes in.

stars.dat is a printable text file. You can read the values into IDL variables using the procedure. The calling sequence is rd_stars,stars. The output variable stars is an IDL structure containing the data. Type rd_stars,/help for online help.

The structure contains the right ascension (stars.ra) and declination (stars.dec) of the stars. Identify a star in the image by taking the diffence in position between the star and the center of the galaxy in arcsec, and then convert to pixels. North is up in the image, East is left. Right ascension increases towards the east. The pixel scale is 0.401 arcsec per pixel. The position of the galaxy is given in the table above, or in the image header as keywords CRVAL2 and CRVAL2 (see the Astrometry section).

After you identify some stars in the image, you will perform aperture photometry on them to determine the number of detected counts. Convert the counts to the instrumental magnitude: mag = -2.5 log(counts). The difference betwen the instrumental and apparent magnitudes is the magnitude conversion factor. It is different for each filter, and varies with time due to weather condition, but should be the same everywhere within a given image. Use at least 3 stars to determine the conversion in order to reduce the scatter.

III B. Spectra

You tasks are twofold:

How to Extract the Spectra

  1. The data are in fits format. Use the READFITS function to extract the data.
  2. Plot the image using, for example, the TVPLOT procedure. The nucleus of the galaxy is the bright horizontal line near the middle of the image
  3. Locate the galaxy by performing a cross cut. Reset the plot scaling with SETXY and SVP. Extract a horizontal cut, e.g., CUT=IMAGE(X,*), where X is the X value at which the cut is made. To improve the S/N, sum over a range of X pixels with CUT=total(IMAGE(X1:X2,*),1).
    Then use the cursor to mark the peak, e.g., CURSOR,xc,yc & print,xc. Move the cursor to the peak position and click the left mouse button.
  4. To verify this position, you can mark the position by typing OPLOT,[xc,xc],!y.crange Determine the width of the spectrum using the cursor. Note that the spectrum is not exactly horizontal. Verify this by overplotting a cut through the image near X=100 and near X=1100.
    Ideally you would write a program which would determine the center of the spectrum at each X pixel, and then extract the data centered on that central Y(X). However, it won't cost much in terms of S/N to simply extract a linear spectrum, so long as it is broad enough to contain all the light. In this case, the spectrum is given by SPECTRUM=TOTAL(D(*,Y1:Y2),2), where Y1 and Y2 are the lower and upper extent of the extraction box.
  5. There is background from the night sky. In the red spectra much of this is in the form of emission lines; in the blue much is scattered continuum. Subtract the background. Define extraction boxes above and below the spectrum. Be sure that the area in the background region extracted is the same as the spectral region. You might want to average the bacgrounds above and below the nucleus. Then, the background-subtracted spectrum is SPECTRUM = SPECTRUM - BACKGROUND

    Note that the galaxies are extended on the sky, and there is galactic starlight in many cases. You may be able to see this in the vertical cuts. You may want to avoid this, if possible, but it is not crucial if all you intend to do is measure the radial velocities.

  6. Establish the wavelength scale. The X axis (in pixels) is given by X = FINDGEN(1199). The coefficients of the polynomial wavelength solution are given by the header keywords WAVE_0, WAVE_1, and W_COEFFS. The wavelength scale is given by W=WAVE_0 + WAVE_1 * X + W_COEFFS(0) * X2 + W_COEFFS(1) * X3 + ... .
  7. You may use this wavelength scale, or you may linearize it using the INTERPOL function.
  8. Then PLOT,W,SPECTRUM. Identify known features, perhaps using the CURSOR command.
  9. Determine the redshift, Z = (Wmeas-W0)/W0), where Wmeas is the observd wavelength and W0 is the rest frame (laboratory) wavelength. and the radial valocity, V = cZ.
  10. You should measure more than one feature, and average results to reduce the measurement errors.

IV. How You Should Proceed.

There will probably not be enough time to do a good job on all the available galaxies, so you should consider limiting the sample. However, do not do so randomly, since the galaxies are not uniformly distributed in either velocity or distance.

The spectra are easier to measure and comprehend than the distances. To ensure you get a broad range of recession velocities, I recommend you first determine redshifts for ALL the galaxies. Then select a sample distributed over the full range of recessional velocities for the distance determinations.

You should also sample a number of galaxies with similar recessional velocities in order to investigate your scatter at a given distance.

V. Your Results

You want to plot the recessional velocity as a function of the estimated relative distances. Do you see a linear relation? How good is it? Perform a linear regression, determine the correlation coefficient, and determine the probability that the velocity and distance are correlated (see the appropriate equations in Bevington and Robinson).

Why is your plot not as clean as the figure above (from observations of type Ia supernovae)?

Comment on the quality of your results. Why is there so much scatter among the closer galaxies? Do all galaxies show a redshift (positive velocity). How confident are you of your relative distances?

In order to determine the value for the Hubble constant, you will need to know the distance to one of the galaxies. Here are the actual distances (based on the Cepheid period-luminosity relation) in Mpc to three galaxies:

NGC 3059 19.2
NGC 5530 19.3
NGC 5643 19.2

Question: Why is the mean surface brightness of the galaxy in the I band not a good distance indicator?

Return to top

Return to PHY 445/515 Astronomy page