Stellar Spectroscopy with the VLT

Astronomical Laboratory ASTR:4850, Fall 2015
by Philip Kaaret

Reading


Introduction

Spectroscopy is crucial to astronomy.  It is the principal diagnostic for determining the temperature and chemical composition of stars, nebulae, and galaxies.  Spectroscopy is of equal importance to physics.  No experimental evidence was of more importance to the emergence of modern physics than the existence of spectral lines of different atoms and molecules.  Today, spectroscopy continues to be one of the most important experimental or observational measurement in both astronomy and physics.    (Hmm, I think he said that already.)

In this class, we will have the pleasure of analyzing spectra obtained with the Faint Object Spectrograph (FORS) mounted on the Very Large Telescope (VLT) of the European Southern Observatory.  The spectra were obtained to study emission from an optical nebula surrounding an ultraluminous X-ray source are are described in this paper http://adsabs.harvard.edu/abs/2009ApJ...697..950K.  You will be analyzing the spectrum of the star referred to as “star A” in that paper.


Checking the slit position

The first step in obtaining the spectrum of an astronomical object is positioning the spectrograph slit on the star.  The observer or operator points the telescope to the general direction of the target and then fine tunes the pointing so that the target lies on the slit.  Standard procedure on the VLT is to take an image of the whole field once the pointing is set, the image for this observation is in acqimage.fits.  The operator then moves the slit into place, but does not move the grating into place, and takes another image, this is acqslit.fits.  Load both of these images into ds9 in two different frames so that you can view them simultaneously.  Note that acqslit shows only the part of the sky visible through the slit.  Zoom in on the bright star visible in the slit and center it in ds9, then do Frame/Match/Frame/Physical.  The two images have the same physical coordinate system.  By comparing the positions of stars on the full image to sky maps, one can determine the coordinates of the stars on the image in order to identify them in catalogs.  This has already been done for you and the information (called the 'World Coordinate System' or WCS) is written into the FITS header of both images.  Thus, ds9 reported astronomical coordinates for your cursor on the line FK5, in addition to image and physical coordinates.  Determine the coordinates of the bright star visible in the slit and record them in your notebook.

When the grating in put in place, the light passing through the slit is dispersed along the x-axis of the CCD.  However, the position of the light along the y-axis is unchanged.  Thus, in the spectra, the y-axis represents the positions of objects along the slit.  You will need to know the position of star A along the slit.  So, record the y position of the star in your notebook.  Note that you want this in image units.


Calibrating the Spectrograph Wavelength Scale

We now need to determine the relationship between the position along the x-axis of the spectrum images and the wavelength of the radiation.  As we did for the DDS-7, this is done by taking a spectrum a gas discharge lamp that produces several emission lines of known wavelength and then using the lines to determine the relationship between pixel number and wavelength.  The file lamp.fits contains an image of the spectrum obtained using an He+HgCd lamp for this observation.  This lamp produces many lines as shown in the figure below.  Note that the wavelengths are given in Angstroms.


The following is a list of the brighter lines:

3650.144 Hg  
3888.646 He
4046.557 Hg
4077.831 Hg
4358.343 Hg
4471.479 He
4678.160 Cd
4713.200 He
4799.920 Cd
4921.929 He
5015.675 He
5085.824 Cd
5460.742 Hg
5769.598 Hg
5790.656 Hg
5875.620 He I


Load the python program calibrate.py into your favorite editor and then edit the name of the file containing the calibration lamp spectrum and the lines specifying the band over which the spectrum is extracted.  There can be slight shifts of the calibration across the slit, if the CCD or grating isn't exactly perpendicular to the slit, so use the y value that you found above for star A.

Now pick out the brightest lines in the spectrum and edit them into values for linec (line centroid in pixels), linew (line width in pixels), and linew (line wavelength in nanometers in calibrate.py.  Note that your pixel values may be shifted from the pixel values in the plot above.  This calibration routine uses a least-squares fit to the centroid versus wavelength relation, so it can use more than two lines.  Record the values for 'central pixel', 'central wavelength', and 'slope = '.  Print out your wavelength calibration spectrum, indicate the wavelengths of the lines used, and paste the plot into your lab notebook.

Calibrating the Spectrograph Flux Scale

We already know that the quantum efficiency of CCDs varies with wavelength.  In addition, the efficiency of reflection of the spectrograph grating or other components in the spectrograph can vary as a function of wavelength.  Thus, we need to calibrate the efficiency of the spectrograph versus wavelength.  This is done by observing a standard star with a known spectrum.  The primary reference for astronomical spectroscopy and photometry is Vega.  Flux are often measured simply as a ratio of the flux of the star of interest to the flux of Vega at a particular wavelength.  The spectrum of Vega has been measured in physical units by comparing it to laboratory blackbody emitters with known properties.  Vega is sometime not convenient to observe, particular when observing from the southern hemisphere, so the primary calibration from Vega has been transferred to a number of secondary stars by measuring their relative spectra.  And then from the secondary stars to tertiary stars.  See http://adsabs.harvard.edu/abs/1992PASP..104..533H for a reasonably easy to read synopsis of the process.

White dwarfs are favored objects for the secondary and tertiary standards.  The standard star used for our spectra is EG 274, a white dwarf with a spectral classification of DA, meaning that the spectrum shows hydrogen absorption, but no lines from helium or heavier elements.   The spectrum of EG 274 as measured Hamuy and collaborators in the reference above is in the file feg274.dat.  Each line of the file gives: wavelength (Å), flux (ergs/cm/cm/s/Å * 10**16), flux (milli-Jansky), and bin width (Å).  The spectrum of EG 274 obtained with the FORS/VLT is in the file std1.fits.  Open it up in ds9 and find the y-position of the star and the width in y of the spectrum.  A convenient way to do this is to draw a box using ds9 (Region/Shape/Box), position and size the region to fit the spectrum, and then double click on the region to bring up the properties dialog box and read off the center and size.  Note that you want these in image units.

Load the python program spectrum.py in an editor.  Edit the calibration data (centralp, centralw, slope) to match the wavelength calibration that you just derived, edit the file name for stdfile to match the spectrum image file for the calibration star, and the value for y0 (the first instance) to match the y position of the calibration star that you found above.  The code starting with '# read in the spectrum image file for the calibration star', reads in the calibration star spectrum file, extracts a spectrum, and then restricts the data to the range 3500-6000 Å because FORS using the grating (actually a grism) selected for this observation isn't reliable outside that range, and plots the spectrum.  It also converts wavelength from nanometers to Angstroms because your Professor is used to working in Angstroms.

The next block of code, starting with '# read in the reference spectrum from Hamuy 1992', reads in a reference spectrum for the same star.  We want to use the reference spectrum to correct for the wavelength dependence of the FORS spectrograph, by dividing the reference spectrum by the measured spectrum to find a conversion factor.  However, the binning of the reference spectrum isn't the same as that of the FORS spectrum, so we first need to define a python function that interpolates between bins.  This is done in the line 'rfi = interp1d(rw, rf)', rfi is then a function that we can call with any wavelength to get an interpolated value for the reference spectrum.  The code does this for every bin in the measured spectrum and then calculation the conversion factor using the ratio of reference/measured.  Print out your plots of the reference star spectrum and the conversion factor and put them in your report.

Unfortunately, the reference spectrum isn't as high resolution as FORS.  This leads to spurious bumps in the conversion factor around the absorption lines in the reference star spectrum.  How could one remove those bumps?


Calculating the Stellar Spectrum

Having now calibrated our spectrograph in both wavelength scale and dependence of quantum efficiency on wavelength, we can go ahead and calculate a proper stellar spectrum. 

Load the spectrum image file s.fits into ds9.  Find the spectrum of the brightest star.  The y coordinate should match the one that you found above.

The night sky glows.  This is hard to see with your eyes, but when observing dim objects with large telescope it is an important and often dominating background.  To avoid identifying spectral lines from the night sky as lines from the star, one extracts a sky background spectrum and subtracts it from stellar spectrum.  In ds9 draw a box near star A, but avoiding any bright emission.  Note that you see lines that stretch vertically across the whole spectrum.  These are night sky lines and cannot (and should not) be avoided in drawing your sky background region.  Record the center and width of the sky background region.

Our selected star towards a galaxy that produces diffuse emission from nebulae and unresolved stars.  You should choose a background region quite close to the star so that this emission is subtracted out from the stellar spectrum.

Look at the part of the code in spectrum.py starting at '# read in the spectrum image file for the target star'. 
The next part of the code calculates the target and background spectra and their difference and then plots them.  Put the plot in your report.

It then applies the conversion factor to the sky subtracted target spectrum and plots that.  Note that the code fails to account for the fact that the target spectrum likely has a different exposure time than the reference star spectrum.  How would one do that?

Can you see any lines in the spectrum?  Note their wavelengths and attempt to identify them.