Obtaining Pixel Area Maps for ACS Data#
Introduction#
The optical design of ACS introduces larger geometric distortion than in other HST instruments. In the event a user wishes to perform photometry on data that have not been processed by AstroDrizzle, a correction must be applied to account for the different sizes of the pixels on the sky across the field of view.
A pixel area map (PAM), which is an image where each pixel value describes that pixel’s area on the sky relative to the native plate scale, is used for this correction. The distortion corrections applied by both AstroDrizzle and the PAMs include observation-specific corrections (e.g., velocity distortion). For the best results, users are advised to create a PAM for each observation individually.
To transform a distorted FLT/FLC image so that it is suitable for photometry, users must multiply the image by the PAM and divide the result by the exposure time so that the image has units of electrons/second. After this transformation, the information on the ACS Zeropoints page can be used to convert flux measurements into physical units.
This tutorial will show you how to…#
1. Construct the Pixel Area Map#
Use
AstroDrizzle
with ASN files to combine images.
2. Apply the Pixel Area Map#
Identify which dark images to use for your data.
Use
AstroDrizzle
to combine dark images.
Imports#
Here we list the Python packages used in this notebook. Links to the documentation for each module is provided for convenience.
Package Name |
module |
docs |
used for |
---|---|---|---|
|
|
command line input |
|
|
|
setting environments |
|
|
|
remove directory tree |
|
|
|
download data from MAST |
|
|
|
access and update fits files |
|
|
|
construct pixel area map |
import os
import shutil
from astroquery.mast import Observations
from astropy.io import fits
from stsci.skypac import pamutils
from p_module import plot
Download the Data#
Here we download all of the data required for this notebook. This is an important step! Some of the image processing steps require all relevant files to be in the working directory. We recommend working with a brand new directory for every new set of data.
GO Proposal 9438: “The Origin of the Intergalactic Globular Cluster Population in Abell 1185”#
For this example, we will only retreive data associated with the Observation ID J6ME13QHQ. Using the python package astroquery
, we can retreive files from the MAST archive.
obs_table = Observations.query_criteria(proposal_id=9438, obs_id='J6ME13QHQ')
dl_table = Observations.download_products(obs_table['obsid'],
mrp_only=False,
productSubGroupDescription=['FLT'])
We’ll use the packages os
and shutil
to put all of these files in our working directory for convenience and do a little housekeeping.
for row in dl_table:
oldfname = row['Local Path']
newfname = os.path.basename(oldfname)
os.rename(oldfname, newfname)
shutil.rmtree('mastDownload')
File Information#
The structure of the fits files from ACS may be different depending on what kind of observation was made. For more information, refer to Section 2.2 of the ACS Data Handbook.
FLT Files (WFC-Specific)#
Ext |
Name |
Type |
Contains |
---|---|---|---|
0 |
PRIMARY |
(PrimaryHDU) |
Meta-data related to the entire file. |
1 |
SCI (Image) |
(ImageHDU) |
WFC2 raw image data. |
2 |
ERR (Error) |
(ImageHDU) |
WFC2 error array. |
3 |
DQ (Data Quality) |
(ImageHDU) |
WFC2 data quality array. |
4 |
SCI (Image) |
(ImageHDU) |
WFC1 raw image data. |
5 |
ERR (Error) |
(ImageHDU) |
WFC1 error array. |
6 |
DQ (Data Quality) |
(ImageHDU) |
WFC1 data quality array. |
7-10 |
D2IMARR |
(ImageHDU) |
Filter-independent CCD pixel-grid distortion corrections. |
11-14 |
WCSDVARR |
(ImageHDU) |
Filter-dependent non-polynomial distortion corrections. |
15 |
WCSCORR |
(ImageHDU) |
History of changes to the WCS solution. |
Here, we set our files to variable names below for convenience.
flt_file = 'j6me13qhq_flt.fits'
You can always use .info()
on an HDUlist for an overview of the structure
with fits.open(flt_file) as hdulist:
hdulist.info()
Construct Pixel Area Map #
Function input for pamutils.pam_from_file
is (input_file, extension, output_file). To create a PAM for the first science extension (WFC2) of this observation, we need to specify HDU Extension 1.
pamutils.pam_from_file(flt_file, ext=1, output_pam='j6me13qhq_wfc2_pam.fits')
For full-frame WFC observations, a second PAM for the WFC1 science array (extension 4) can be created as follows:
pamutils.pam_from_file(flt_file, ext=4, output_pam='j6me13qhq_wfc1_pam.fits')
Apply the Pixel Area Map #
Because the pixel area map is an array of flux corrections based on 2d image distortion, you can multiply it by your data element-by-element to produce the corrected image. Here, we present the results.
plot.triple_pam_plot(flt_file, 'j6me13qhq_wfc2_pam.fits', 'WFC2 PAM Correction Results')
plot.triple_pam_plot(flt_file, 'j6me13qhq_wfc1_pam.fits', 'WFC1 PAM Correction Results')
For more help:#
More details may be found on the ACS website and in the ACS Instrument and Data Handbooks. Geometric Distortion information can be found in Section 5.6.4 and Section 10.4 of the ACS Instrument Handbook.
Please visit the HST Help Desk. Through the help desk portal, you can explore the HST Knowledge Base and request additional help from experts.