Spitzer
Functions for working with Spitzer Space Telescope IRAC, MIPS, and IRS Peak-Up observations.
import kete
fovs = kete.spitzer.fetch_fovs(2010, band="IRAC1")
Spitzer Space Telescope functions.
Spitzer operated from August 2003 to January 2020. This module provides access to Spitzer IRAC, MIPS, and IRS Peak-Up Basic Calibrated Data (BCD) frames via the IRSA CAOM TAP service.
IRAC observed simultaneously at 3.6, 4.5, 5.8, and 8.0 um (channels 1-4) during the cryogenic phase; cryogen was exhausted in 2009, after which only channels 1 and 2 were available (the “warm mission”).
MIPS observed at 24, 70 and 160 um during the cryogenic phase (2003-2009).
IRS Peak-Up imaging observed at 13.3-18.7 um (Blue) and 18.5-26.0 um (Red) during the cryogenic phase (2003-2009).
Frame FOV metadata is queried from the IRSA caom.plane table (collection
spitzer_sha) and cached locally as parquet files. Each FOV record includes the IRSA
IBE artifact URI, so frames can be downloaded directly without additional network
queries.
- kete.spitzer.IRAC_BAND_WAVELENGTHS: list[float] = [3600.0, 4500.0, 5800.0, 8000.0]
Channel wavelengths in nm for IRAC channels 1-4 (3.6, 4.5, 5.8, 8.0 um). These are the wavelengths at which the zero-magnitude flux densities (Table 4.2) are defined. The nominal isophotal wavelengths from Table 4.3 depend on source spectrum and are slightly different (3544, 4487, 5710, 7841 nm). Source: IRAC Instrument Handbook v2.1, Tables 4.1 and 4.2.
- kete.spitzer.IRAC_ZERO_MAGS: list[float] = [280.9, 179.7, 115.0, 64.9]
Vega-system zero-magnitude flux densities in Jy for IRAC channels 1-4. Values are evaluated at 3.6, 4.5, 5.8, and 8.0 um respectively. Magnitude is
-2.5 * log10(flux_jy / zero_mag). Source: IRAC Instrument Handbook v2.1, Table 4.2.
- kete.spitzer.IRS_PU_BAND_WAVELENGTHS: list[float] = [15800.0, 22300.0]
Effective wavelengths in nm for IRS Peak-Up Blue and Red. Source: IRS Instrument Handbook v5.0.
- kete.spitzer.IRS_PU_ZERO_MAGS: list[float] = [15.6, 7.8]
Vega-system zero-magnitude flux densities in Jy for IRS Peak-Up Blue and Red. Derived from the Cohen (1999) Vega spectral model at the effective wavelengths.
- kete.spitzer.MIPS_BAND_WAVELENGTHS: list[float] = [23680.0, 71420.0, 155900.0]
Effective wavelengths in nm for MIPS 24, 70, and 160 um bands. Source: MIPS Instrument Handbook (Rieke et al. 2004).
- kete.spitzer.MIPS_ZERO_MAGS: list[float] = [7.17, 0.778, 0.159]
Vega-system zero-magnitude flux densities in Jy for MIPS 24, 70, and 160 um. Sources: Engelbracht et al. 2007 (24um), Gordon et al. 2007 (70um), Stansberry et al. 2007 (160um).
- kete.spitzer.fetch_fovs(year, band=None)
Load all Spitzer IRAC and MIPS BCD FOVs for the specified mission year.
FOV metadata is queried from the IRSA
caom.planetable (science observations only) and cached locally as a parquet file. The Spitzer spacecraft SPICE kernel must be loaded for the observer state to be computed.Available bands:
'IRAC1'(3.6 um),'IRAC2'(4.5 um),'IRAC3'(5.8 um),'IRAC4'(8.0 um) – cryogenic 2003-2009, warm IRAC1/2 through 2020.'MIPS24'(24 um),'MIPS70'(70 um),'MIPS160'(160 um) – cryogenic phase only (2003-2009).'IRS Peak-Up Blue'(13.3-18.7 um),'IRS Peak-Up Red'(18.5-26.0 um) – cryogenic phase only (2003-2009).
- Parameters:
year (int) – Calendar year of observations, 2003 to 2020.
band (str | None) – If provided, only return FOVs for that band (e.g.
'IRAC1','MIPS24'). If None, all available bands are returned for the given year.
- Returns:
FOVs sorted by observation time.
- Return type:
list[SpitzerFrame]
- kete.spitzer.fetch_frame(fov, as_fits=True, file_type='bcd')
Fetch a Spitzer FITS frame from the IRSA IBE archive.
The artifact URI stored on the FOV (populated by
fetch_fovs()) is translated to an HTTPS download URL and the file is retrieved and cached locally. No additional network queries are made beyond the download itself.To retrieve a product other than the primary BCD (e.g. uncertainty
'bunc'), the URI suffix_bcd.fitsis substituted with_{file_type}.fits– the Spitzer naming convention guarantees all BCD-level products for the same frame share the same directory and base filename.- Parameters:
fov (SpitzerFrame) – A
SpitzerFrameobtained fromfetch_fovs().as_fits (bool) – If True (default), return an Astropy FITS HDU. Otherwise return the path to the cached file.
file_type (str) – BCD product suffix to retrieve. Use
'bcd'for the flux-calibrated image or'bunc'for the per-pixel uncertainty image.
- Returns:
An
astropy.io.fits.ImageHDUifas_fits=True, otherwise the local file path as astr.- Return type:
object
- kete.spitzer.parse_poly(poly_hex)
Parse an EWKB (Extended Well-Known Binary) polygon from the CAOM
polycolumn.The IRSA CAOM tables return polygon footprints as hex-encoded EWKB with SRID 4326. Longitude is in the range [-180, 180] and is normalized to [0, 360] before constructing vectors.
The polygon has 5 vertices (4 corners plus a closing repeat of the first); only the first 4 are returned.
- Parameters:
poly_hex (str) – Hex-encoded EWKB polygon string.
- Returns:
Four corner vectors in ICRS (equatorial) coordinates.
- Return type:
list[Vector]
- kete.spitzer.resolve_artifact_url(uri, file_type='bcd')
Convert a CAOM artifact URI to an IRSA IBE download URL.
- Parameters:
uri (str) – Artifact URI from the CAOM
artifacttable (CAOM HTTPS,ibe://data/, or plainhttps://).file_type (str) – BCD product suffix.
'bcd'for the flux-calibrated image,'bunc'for the per-pixel uncertainty image.
- Returns:
Public HTTPS download URL.
- Return type:
str