Knowledgebase: Spitzer: IRAC

What is the accuracy of measuring the relative separation between two sources in an IRAC observation?

The relative accuracy of measuring the separation of two sources in IRAC images is probably better than 0.3" for source with signal-to-noise ratio greater than 10 on the same BCD image. One of the main factors limiting the accuracy is the uncertainty in the knowledge of the distortion, which we think is known to 0.1" or better. If the two sources are in different BCDs, and the position difference is being measured on the mosaic, then the error will be dominated by the error in the pointing refinement. We've measured this to be ~0.3" for frames where the pointing refinement has worked well. For a difference this should be multiplied by sqrt(2), but that's probably a little conservative as the errors in any patch of sky are probably correlated.

I see weird image artifacts in my IRAC data, including horizontal and vertical wings around bright sources, and some unreal looking fuzzy light patches. What are these and how can I get rid of them?

Please take a look at data features pages for the Cryogenic Mission, the Warm Mission and the IRAC Instrument Handbook which explain what these features are and shows example images. The pipeline tries to mitigate some of these artifacts, but the correction is not always perfect. The artifact-corrected files are the *cbcd.fits files. If you are not happy with the pipeline-corrected data, you can go back to the *bcd.fits files and perform your own artifact correction. If your data were well dithered, and you have sufficient redundancy, at least some of these artifacts should go away when mosaicking your data together.

I need the most accurate PSF available to do image deconvolution and search for faint objects near a bright star in my image. Are such PSFs available?

The STinyTim PSFs do not work well for IRAC. IRAC pixels are large relative to the spatial frequencies found in the PSF, and the response of an IRAC pixel to light varies with position on the pixel. Instead we recommend the use of the PRFs available on the IRAC PSF page. For image deconvolution and source fitting you need to use the core PRFs, and software which utilizes the PRF, not the PSF, such as APEX. For faint objects in the wings of bright stars the extended PRFs are best.

I am trying to figure out the relationship between the observatory axes Y and Z and the IRAC image x and y axis. Where exactly are the scattered light boxes?

The relationship between Y and Z and IRAC x and y is the following:

+Y = IRAC +x
+Z = IRAC -y

Please see Figure 6.6 in the Spitzer Observer's Manual. It explains the orientation of the x and y axes and the scattered light boxes with respect to those axes.

What is the absolute and relative calibration accuracy in IRAC data?

The absolute calibration accuracy for IRAC is discussed in Section 4.3 of the IRAC Instrument Handbook and is 3% for all channels in the cryogenic mission data, and currently 5% in the warm mission data. The repeatability is better than 1% for all channels. To obtain the stated absolute calibration accuracy, several effects need to be accounted for. If these effects are not taken into consideration, then the uncertainty in photometry can be 10% or more. Note that extremely high accuracy relative photometry (e.g., exoplanet observations) requires special observing techniques that are ill-suited to most other types of observing programs. Hence, while those programs can achieve relative photometric accuracy of better than a part in 1000, "typical" IRAC observations will not.

Do you have IRAC zero magnitude flux density values posted?

They can be found in Table 4.2 of the IRAC Instrument Handbook.

How do I convert my IRAC images into flux density units? What corrections do I need to worry about? How do I convert the flux densities into magnitudes?

IRAC images are in units of MJy/sr. If you want to convert them into flux density/pixel units, you can convert steradians into arcsecconds squared, and then multiply by the area of the pixel. Remember that in BCDs the pixel area is approximately 1.22 arcseconds squared, whereas in the pipeline mosaic the pixelsize by default is 0.6 arcseconds squared exactly. So, for example, for the pipeline mosaic a pixel value needs to be multiplied by (1E12 micro-Jy)/(4.254517E10 arcsec**2) x 0.6 arcsec x 0.6 arcsec = 8.461595 to obtain micro-Jy/pixel flux densities.

Remember to make all the appropriate corrections to your measurements. These include

1. aperture correction (including point source versus extended source photometry correction)
2. (position dependent) color correction
3. pixel phase correction in channel 1
4. image artifact corrections
5. overlap correction in mosaics
6. background subtraction
7. pixel solid angle correction in BCDs (but not in MOPEX-produced mosaics).

Information on these corrections can be found in Chapter 4 of the IRAC Instrument Handbooks.

Once you have measured the flux density of your source, you can convert from Jy into Vega magnitudes (from a Kurucz model spectrum of an A0 V star matched to the visible photometry of Vega) using the zero-magnitude flux densities posted in Table 4.2 of the the IRAC Instrument Handbook. Note that zero magnitude flux densities are not what you would measure for Vega necessarily, as Vega does have circumstellar dust. If F(i) is your measured flux density and F(0) is the zero magnitude flux density in the corresponding channel, then the magnitude corresponding to F(i) is m(i) = 2.5*log10(F(0)/F(i)).

Is there a document or internal memo describing transformations of the IRAC fluxes to those in similar, but better known bandpasses, such as L, M, and N?

The spectral responses of IRAC are posted on our web pages. You can use those to figure out the conversions. The STAR-PET also gives conversions to the K band in different photometric systems for stars of various types.

What were the IRAC FLUXCONV values (the BCD header value showing the conversion from MJy/sr to DN/sec) in the different IRAC pipeline processing versions?

In general, users should trust the FLUXCONV values in the headers of the
IRAC data FITS files that they have. Here is a brief summary of the changes
in the FLUXCONV values throughout the Spitzer mission.

Warm Mission S18.18 and S19 pipelines:

ch1 FLUXCONV = 0.1253
ch2 FLUXCONV = 0.1469

Cryogenic Mission S18.18 (final processing) pipeline:

ch1 FLUXCONV = 0.1069
ch2 FLUXCONV = 0.1382
ch3 FLUXCONV = 0.6054
ch4 FLUXCONV = 0.2083

S13.0 - S18.14 pipelines:
ch1 FLUXCONV = 0.1088
ch2 FLUXCONV = 0.1388
ch3 FLUXCONV = 0.5952
ch4 FLUXCONV = 0.2021

S11.0 through pre-S13.0 pipelines:
ch1 FLUXCONV = 0.1104
ch2 FLUXCONV = 0.1390
ch3 FLUXCONV = 0.6024
ch4 FLUXCONV = 0.2083

Pre-S11.0 pipelines:
ch1 FLUXCONV = 0.1125
ch2 FLUXCONV = 0.1375
ch3 FLUXCONV = 0.5913
ch4 FLUXCONV = 0.2008

Are there electronic (ASCII) versions of the transmission curves for the IRAC filters?

Yes. Electronic (ASCII) versions of the transmission curves for the IRAC filters can be found from the IRAC pages.

Have the pipeline-processed data been corrected for muxbleed, column pulldown and banding? What about saturation?

Yes, we are correcting the data for muxbleed and column pulldown in the pipeline. Sometimes these corrections do not produce a perfect mitigation of these effects. Therefore, you should always check your CBCDs and try to perform additional mitigation if necessary.

Banding is also corrected for in the pipeline, but the correction usually is not perfect. Banding is very hard to model and has complicated spatial characteristics which are not currently well understood (or modeled).

Point source saturation is currently mitigated in the pipeline as well, but the correction uses a PRF and a known 2MASS K magnitude to extrapolate to build the source. The saturation correction will fail if no 2MASS counterparts to the saturated stars are found. Extended source saturation is not corrected. If the data were taken in the high-dynamic-range mode, one may be able to obtain a better correction using the short frametime exposures to extrapolate.

What is the pixel phase effect and do I need to worry about it?

The pixel phase effect is due to the varying sensitivity of a pixel across its area. The sensitivity is usually highest in the center of the pixel. This effect is seen most clearly in channel 1 data, but appears to exist at a detectable level in channel 2 as well. If your data are well dithered and sample a variety of pixel phases (the object is centered on various parts of pixels), this effect will probably average out mostly (in cases of a dozen or more dithers). With significantly fewer than a dozen or so dithers you need to apply a correction to each BCD. See the IRAC calibration files web page and also the list of contributed IRAC software under the Data Analysis and Tools web pages for more information and useful correction codes for the pixel phase effect. This effect can be as large as 4% (from the largest downward correction to the largest upward correction) in the cryogenic data and 7% - 8% in the warm IRAC data.

Almost all the background pixels in my image are negative. What is wrong?

Most likely the skydark that was subtracted from your data over-subtracted the background in your images. You can add back the subtracted skydark background value using the BCD header keyword SKYDRKZB. See section 6.3 in the IRAC Instrument Handbook. You will need to scale the SKYDRKZB value by the extended source throughput to get the "as measured" surface brightness. For example in channel 4, SKDRKZB / 0.74 will be the best estimate. Adding this back to a BCD image will result in a BCD image with a background that reflects the measured background counts in the raw image. Users are reminded that IRAC is not an absolute photometer, and are advised against interpreting the resulting measured value as the absolute surface brightness of the sky. For comparison, the predicted zodiacal background for your images is in the BCD header keyword ZODY_EST.

I see large gradients and background variations in my channel 3 (5.8 micron) mosaics. What is wrong?

Channel 3 suffers from a large first frame effect. Depending on the observation strategy, this may cause severe variations in the background level of the individual BCDs. The effect is worst in frame repeats (as opposed to frame dithers). To mitigate, you may want to form a delta dark by taking the medium of all the channel 3 BCDs in the AOR, normalizing this to zero, and then subtracting it from each BCD. Also, use the overlap-correction module in MOPEX before making the mosaic. Note that if you have extremely bright objects or emission regions within certain BCDs, their background may be artificially elevated by the "droop" or array pull-up effect, and needs to be manually lowered to match the spatially surrounding background level before overlap correction and mosaicking.

I want to make sure the pointing refinement ran without problems for my data so that the coordinates in my images will be accurate to 0.2 arcsec or less.

You can check the BCD header keyword USEDBPHF. If pointing refinement ran without problems, it should be set to "T". To see whether the superboresight pointing refinement ran successfully, you can look at the value of the BCD header keyword "BPHFNAME." It this filename starts with an "S", then the superboresight pointing refinement ran, if not, then it did not run. In superboresight pointing refinement the pointing refinement information from channels 1 and 2 is combined and applied to each channel, resulting in the most accurate available pointing values which are copied to the CRVAL1 and CRVAL2 BCD header keywords. You can always of course overlay the 2MASS catalog stars at the position of your images, for example with DS9 or Gaia, to check the pointing.

How is the dark/sky subtraction actually performed in the pipeline. Can you give a mathematical representation of it?

A so-called labdark is subtracted from each frame, including skydark frames. So, in simple mathematical terms,

[(obj-lab) - (sky-lab)]/flatfield = (obj-sky)/flatfield = BCD

where "obj" is a science object frame, "lab" is the appropriate labdark, and "sky" is an appropriate skydark. Please note that the lab image subtracted from the object is not necessarily equal to the lab image subtracted from the sky frame, they are just very similar. The subtracted labdark is based on the exposure time, Fowler sampling and operation history of the arrays and therefore is different for the object frame and the skyframe. The DC (bias) levels change as a function of time elapsed since the previous frame was taken (the "first frame effect"). This effect is largest for channel 3 and can lead to background variations from frame to frame, especially in channel 3. Note that you can download the darks from the Spitzer Heritage Archive by selecting the "cal data" box during the packaging process.

For the warm mission, the arrays were set to a new bias due to the higher temperature. For the warm mission duration, there were no measured labdarks that had been created at this new temperature and bias level. Therefore, only a skydark was subtracted from each frame, including skydark frames. So, in simple mathematical terms,

 (obj-sky) / flatfield = BCD

where "obj" is a science object frame and "sky" is an appropriate skydark.

Please note that both the sky image and the obj image contained a “lab dark” signal  based on the exposure time, Fowler sampling and operation history of the arrays. This DC (bias) level changes as a function of time elapsed since the previous frame was taken (the "first frame effect”), so there will be a small residual left from the subtraction. Note that you can download the darks from the Spitzer Heritage Archive by selecting the "cal data" box during the packaging process.

How do I convert the measured IRAC flux densities to IRAC fluxes so that I can compare them to theoretical models?

We discourage the conversion of IRAC flux densities to IRAC fluxes by the multiplication with the effective bandwidth since the fluxes depend on the (unknown) absolute normalization of the instrument throughput. Instead, you should calculate the flux density at the effective IRAC channel wavelength, and perform the color correction as explained in Section 4.4 of the IRAC Instrument Handbook and then compare to the observed flux density.

I have heard of a non-standard observing mode (not an AOR).How do I tell if the data were taken using this non-standard mode? What are some of the characteristics of the BCDs obtained with the non-standard mode?

Technically challenging observations (e.g., long-term monitoring) may have been converted to Instrument Engineering Requests, IERs, from the submitted Astronomical Observation Requests, or AORs. To tell whether your data are from an AOR or IER, look at the BCD header keyword "REQTYPE". Its possible values are "AOR", "IER", or "SER" (you should not see the last type). The IRAC IERs with repeats and frame times greater than 2 seconds will not have a BCD for EXPID=0.

What is the best way to do photometry on slightly extended objects (size a few arcsec to about 5-6 arcsec)?

You could use the SExtractor and the Kron flux from its output. This was done by the SWIRE Legacy team. Or, you could take a circular aperture, with a size just larger than the outermost isophote of your target, and do aperture photometry and apply the appropriate aperture correction to get a flux density measurement. This should get you to within 5%-10%. The most accurate flux estimates would theoretically come from fitting a source model convolved with a PSF to compare to the measured fluxes. Unfortunately, there is no publicly available software for performing such estimations.

I need to operate with electron units on the fluxes coming from my target. How do I convert the images (in MJy/sr) to do my analysis?

You need to multiply the values of the pixels by GAIN*EXPTIME/FLUXCONV to get electrons. These keywords are given in the BCD header. You should also add a term (-ZODY_EST+SKYDRKZB)/f_ext, where ZODY_EST is the estimated zodiacal background light at your observed position, found in the BCD header, and SKYDRKZB is an estimate for the zodiacal component in the skydark that was subtracted from your BCDs. f_ext is the infinite aperture correction, 0.91, 0.94, 0.71, 0.74 in channels 1-4, respectively.

How important is the array-location-dependent photometric correction for my data?

The array-location photometric effect will go down as sqrt(number of dithers), so if it is a 4% effect to start with in channel 1, after combining five dithers into a mosaic it should be less than a 2% effect. Of course you can get even better results by mosaicking together the array location-dependent correction maps using the observed BCD positions in your observation and check the resulting correction mosaic to see how large the corrections in your final mosaic are.

How important is the photometric color correction for my data?

Absolute calibration assumes source spectrum F(ν) is proportional to ν-1. For any other source spectrum, a color correction must be applied. Corrections are typically a few percent for stellar and blackbody sources. Corrections can be more significant for sources with ISM-like source spectra (50%–250%, depending on spectrum and passband). Please note that the measured flux density is flux density at the effective wavelength of an array: 3.550, 4.493, 5.731 and 7.872 microns, for channels 1–4 respectively.

How do I know if sources in my IRAC data are saturated?

There are several things you can do to check for saturation. If you have HDR data, the saturation flag in the imask file of the long frames (bit 13) will be set. Similarly the same bit will be set in the imask if saturation is indicated during linearization correction. However, the best bet may be to look at the raw frames (*dce.fits frames). If any pixels near the core of your target approach 35,000–45,000 DN (30,000 DN in the warm mission; DN is the unit in the raw or DCE frames is DN), then the odds are that the central pixel itself is saturated (negative or positive values are seen in the channel 1 & 2 raw files so look for absolute values that approach 35,000).

If the data are clearly above saturation, a "donut" will be seen in the core of the source in the BCD image (the central pixel or pixels have smaller brightnesses than the surrounding pixels). This is a sure sign of saturation. Performing photometry on each BCD is useful too. If a source is just saturating, then it may not saturate in frames where the center of the star is at a pixel edge or corner.

Can you please explain how the IRAC zmags were derived?

To understand where the IRAC zmag comes from, you can start with the fundamental equation between magnitudes and flux densities. In one incarnation, it becomes

m - M0 = -2.5*log(F/F0)

Here m is the magnitude of the source you want to measure, M0 is the zero magnitude (= 0), F is the flux density in Jy of the source you want to measure and F0 is the flux density of a zero magnitude source. For IRAC channel 1, F0 = 280.9 Jy. Expanded out, this becomes thus

m = -2.5*log(F) + 2.5*log(F0)

Here 2.5*log(F0) is the same as zmag. Now, since the IRAC images are in units of MJy/sr, we have to do some manipulation to get the equation to this form. Specifically, the measurable F that we have in IRAC images is the surface brightness, not the flux density. So therefore the equation becomes

m = -2.5*log(SB*C) + 2.5*log(F0)

where SB is the measured surface brightness in the image in MJy/sr and C is a conversion factor from MJy/sr to Jy/pixel. For IRAC channel 1 mosaics with 0.6 arcsec x 0.6 arcsec pixels it equals C = 8.461595E-06 Jy/pixel/(MJy/sr). Therefore the equation becomes

m = -2.5*log(SB) + 2.5*log(F0/C)

where zmag now corresponds to the latter term, 2.5*log(F0/C). Inserting the values of F0 and C mentioned above, we get zmag = 2.5*log(280.9/8.461595E-06) = 18.80 mag

These are zmags in the Vega system using a Kurucz model spectrum of an A0 V star matched to the visible photometry of Vega. Note that zero magnitude fluxes are not necessarily what you would measure for Vega as Vega does have circumstellar dust.

Please remember that this is true only for the 0.6 arcsec x 0.6 arcsec pixel scale mosaics. For other pixel scales you will get a different value. Also, please remember the required corrections (e.g., aperture correction) that are needed for high accuracy photometry.

What is different about taking IRAC data with the subarray mode (as opposed to full array or HDR mode) and what are the main differences in data processing and data products for IRAC subarray?

Subarray mode is useful for observing very bright sources and/or observing with high temporal resolution.

In subarray mode, only one corner, 32×32 pixels offset by 8 pixels from the edges, is read out from one array. Pixels (9:40, 9:40) of the array are read out. This corresponds to pixels (9:40,217:248) in channel 1 and 2 BCD images since the raw frame orientation is mirrored on the y-axis with respect to the BCD orientation in these channels. In channels 3 and 4, the raw and BCD pixel coordinates of the subarray location are the same (9:40, 9:40). The subarray pixel size is the same as the full array pixel size (roughly 1.2 arcseconds x 1.2 arcseconds). Fowler sampling is performed (as in full array mode): the subarray area is read (with Fowler sampling) 64 successive times and the data stored, in order, in the image data. In a 256x256 raw image the data appear scrambled. Changing the image dimensions to 32x32x64 will render them readable in a FITS viewer.

The subarray BCDs are actually 3-dimensional data cubes, with 64 32x32 pixel planes. Note that there is no post-BCD processing of subarray data through the IRAC pipeline, and pointing refinement of any type is not performed on subarray data as the number of astrometric truth sources visible in most subarray observations is too low for the refinement to work. The 64 subarray reads are performed with the spacecraft holding a fixed attitude. Although a small level of drift exists, for all but the most demanding observers the 64 subarray reads during a single exposure are at the same pointing. Note especially that NO CBCD FILES AND NO MOSAICS ARE GENERATED FOR SUBARRAY DATA. This can result in somewhat unexpected Spitzer Heritage Archive (SHA) behavior: you can be looking at AORs in the AOR window, but have "no data to display" in the Level 2 (PBCD) tab. If you want to use MOPEX to generate your own mosaics from subarray data, see this memo which explains in detail how to do it.

The IRAC BCD pipeline produces collapsed two-dimensional images, made by taking a median of the 64 pixels at a given location in the subarray field of view. These products are called *sub2d.fits. The corresponding collapsed 2D uncertainty files are called *unc2d.fits, imask files *msk2d.fits and coverage files *cov2d.fits. These are available in the BCD directory of downloaded subarray data, together with the 3D BCD data cubes (*bcd.fits), 3D uncertainty files (*bunc.fits) and 3D imask files (*bimsk.fits).

If the subarray data were used to obtain high-cadence observations of a target, you definitely want to reduce each of the 64 images separately. You can manipulate the original BCD images as described in the memo above, and pass them individually to MOPEX, or use your own favorite data reduction package. Note that you will have to handle any image artifacts on your own as well. The IRAC Instrument Handbook describes many of the common artifacts, and the Contributed IRAC Software Page contains several routines for removing artifacts, should they be in the data.

I have an observation with frame repeats, and the repeated frames are full of weird (usually column-wise) structure. What can Ido to fix these data?

The first frame correction in the pipeline has not worked well for such data. This was sometimes true for channel 3 data in the cryogenic mission and this is currently always true for warm IRAC data. The first-order mitigation is fairly simple. Take a median average with outlier rejection of the difference images between the first repeat and a given repeat, for example, median-average the difference between the first and the second repeat frames (and similarly, but separately, median-average the difference between the first and the third repeat frames, etc.) Then add these median difference images to your individual (C)BCD frames. For example, you would add the median difference of the first and second repeat frames to each second repeat frame.

An IDL code to perform this "delta-dark" correction is available in the Spitzer Contributed software section at

Where are my dmask files?

Pipeline products after S18.5 no longer provide dmasks as they contain misleading and incomplete information. They have been superceded by the information contained in the imask files. The imasks are more robust, include flagging of various artifacts that are not present in dmasks and make full use of the saturation correction made by the pipeline.

For more information, see the IRAC Instrument Handbook Appendix A.

What is the first-frame effect and why should I worry about it?

There is an electronic history effect in the IRAC arrays that produces an offset pattern in each Fowler frame image. The strength and shape of the patterns depend on the history of how an array was clocked during the time -- from seconds to days -- preceding the beginning of an integration. The time an array spends idling just before an image, the FRAME DELAY, has the greatest effect. We call this the "first-frame effect" as it was seen to be largest in the first frame of long sequences in lab tests.

Cryogenic mission:

The channel 3 array had the largest effect in the cryogenic mission (see Section.1.10). The first frame correction is applied in the IRAC pipeline for all cryo mission data. Unfortunately, all of the effect was not removed because the instrument was operated differently in-flight than in lab tests for other reasons.

Post-cryogenic Warm mission:

The effect in channel 1 was larger than channel 2. There were no corrections for this effect in the warm mission pipeline because the instrument operated at a higher temperature than the cryogenic mission.


The effect of poorly corrected or uncorrected first-frame effect on aperture photometry is probably small, except perhaps for the first few BCDs of an AOR ( in cryo channel 3 or post-cryo channel 1).  One should be careful in interpreting background gradients in these data as well.