Spitzer Documentation & Tools

This package is superseded by IRAC_APHOT_CORR, which covers both the cryogenic and warm missions.


Correct IRAC observed aperture photometry-derived fluxes (from the cyrogenic mission) for the pixel phase and array location dependent response functions. NOTE: the pixel phase response is unity (zero variation across a pixel) for channels 3 and 4.

The correction is of the following form:
CORRECTED_FLUX = Q * Observed_Flux(x,y) / R_al(i,j) * R_pp(xphase,yphase)

Here the corrected flux is in Jy or proportional units, Q is the cal factor converting observed units to Jy (or whatever you have chosen), Observed_Flux(x,y) is the measured aperture flux at centroid position (x,y), R_al(i,j) is the Array Location response function (depends on the integer pixel i,j), and R_pp(xphase,yphase) is the Pixel Phase response function (depends on pixel phase xphase,yphase). Q and the input parameters of R_al and R_pp are hardcoded in this program to the values used in deriving the flux conversion factor in the IRAC cryogenic pipeline (S18.24). You can override these defaults using the PARAMS keyword. See description of keyword PARAMS for more information on these functions.

Optional keywords /REACH and /HORA allow you to correct data using previously determined functions for pixel phase and array location dependent response (Reach et al. 2005; Hora et al. 2008).

Author: Jim Ingalls (SSC/Caltech)
Date Contributed: 09 Nov 2011
System Requirements: IDL; astrolib IDL library




Photometry, corrections

Calling Sequence

                                                   [,PARAMS=PARAMS] [,/PP_ONLY] [,/AL_ONLY] [,/REACH] [,/HORA] $


OBSERVED_FLUX:array of observed aperture fluxes corresponding to (X,Y)
X:array of X centroids (float), defined such that the center of the bottom left pixel is (0,0). The bottom left corner of the array is therefore (-0.5,-0.5) and the top right corner is (255.5,255.5). Same number of elements as OBSERVED_FLUX.
Y: array of Y centroids (float). Same number of elements as OBSERVED_FLUX.
CHANNEL:IRAC channel number (1-4). Same number of elements as OBSERVED_FLUX, or a single-element array or scalar (if only one element, the program assumes all elements of OBSERVED_FLUX are for the same channel).

Optional Inputs


Keyword Parameters

PARAMS:a 14 x 4 element matrix, where PARAMS[*,i] gives the parameter array for the model, for the ith IRAC channel. NOTE: Normally you should not have to change the default values of these parameters. Entries for the ith channel of PARAMS (i goes from 0 to 3, corresponding to channels 1-4) are as follows:
PARAMS[0:5,i]: (A,B,C,D,E,F), the coefficients of the quadratic array location dependence:
                 R_al(i,j) = A + B*(i-127) + C*(j-127) +
                             D*(i-127)*(j-127) + E*(i-127)^2 +
Here, i = FIX(X) and j = FIX(Y)

PARAMS[6:12,i]:the coefficients of the double gaussian pixel phase dependence:
                 R_pp(xphase,yphase) =
                       + deltaF_y * exp(-WRAP(yphase-Y0,0.5)^2/(2*sigma_y^2))
                       + F0

                  PARAMS[6,i] = deltaF_x
                  PARAMS[7,i] = deltaF_y
                  PARAMS[8,i] = X0
                  PARAMS[9,i] = Y0
                  PARAMS[10,i] = sigma_x
                  PARAMS[11,i] = sigma_y
                  PARAMS[12,i] = F0_pp

Here, xphase and yphase are the observed pixel phase (x-ROUND(x) and y-ROUND(y)), deltaF_x and deltaF_y are the peak to baseline offsets of the x and y gaussians, X0 and Y0 are the central x and y pixel phases of the gaussians, sigma_x and sigma_y are the gaussian sigmas, and F0_pp is the baseline relative flux (relative flux at infinity). The function WRAP(z,0.5) wraps the pixel phase offset so that it is periodic at ±0.5 pixels (z=+0.5 becomes z=-0.5, continuing to 0, and vice versa). The center of the wrap (z=0) is the phase function peak. The pixel phase response is normalized so that the function's average, integrated over a pixel, equals 1.

PARAMS[13,i]:the calibration factor converting observed units to Jy. (In most cases, aperture-photometry measurements will already be in Jy, so PARAMS[13,*] = 1.0.)
/PP_ONLY:Only correct the data using the pixel phase function.
/AL_ONLY:Only correct the data using the array location dependent function.
/REACH:Apply the pixel phase and array location corrections of Reach et al. 2005, PASP, 117, 975
/HORA:Apply the pixel phase and array location corrections of Hora et al. 2008, PASP, 120, 1233
/SUBARRAY:Interpret (X,Y) as relative to the appropriate subarray frame.


This function returns the corrected flux, which will be either a scalar or array, depending on the number of elements of OBSERVED_FLUX.


The pixel phase response was derived from aperture photometry performed with a 3 pixel aperture (3-7 pixel background annulus), and so is best used to correct data from the same aperture. (A larger aperture will give a less pronounced variation in pixel phase response, in which case this program may overcorrect your data.)

This correction is only relevant for cryogenic data. The default correction is based on S18.18 data. The /REACH and /HORA corrections are relevant to S18.7 and earlier data.


  1. Measure X and Y pixel centroid position(s) for stellar image(s) (recommended method: first moment for example: http://irsa.ipac.caltech.edu/data/SPITZER/docs/irac/calibrationfiles/pixelphase/box_centroid.pro). X and Y are decimal values defined such that the center of the bottom left pixel of the image has (X,Y) = (0.0,0.0).
  2. Perform aperture photometry on the observation(s) to derive flux(es) (recommended routine: aper.pro from the IDL Astronomy User's Library) NOTE: This correction is optimized for the 3 pixel radius aperture, and 3-7 pixel sky background annulus.
  3. Correct measured flux(es) using this function.