# Tractor Catalog Format

## tractor/<AAA>/tractor-<brick>.fits

FITS binary table containing Tractor photometry. Before using these catalogs, note that there are known issues regarding their content and derivation. In DR5, the columns pertaining to optical data also have $u$, $i$ and $Y$-band entries (e.g. flux_u, flux_i, flux_Y), but these contain only zeros.

Name

Type

Units

Description

release

int32

Unique integer denoting the camera and filter set used (RELEASE is documented here)

brickid

int32

Brick ID [1,662174]

brickname

char[8]

Name of brick, encoding the brick sky position, eg "1126p222" near RA=112.6, Dec=+22.2

objid

int32

Catalog object number within this brick; a unique identifier hash is BRICKID,OBJID; OBJID spans [0,N-1] and is contiguously enumerated within each brick

brick_primary

boolean

True if the object is within the brick boundary

type

char[4]

Morphological model: "PSF"=stellar, "REX"="round exponential galaxy" = 0.45" round EXP galaxy, "DEV"=deVauc, "EXP"=exponential, "COMP"=composite. Note that in some FITS readers, a trailing space may be appended for "PSF ", "DEV " and "EXP " since the column data type is a 4-character string

ra

float64

deg

Right ascension at equinox J2000

dec

float64

deg

Declination at equinox J2000

ra_ivar

float32

1/deg²

Inverse variance of RA (no cosine term!), excluding astrometric calibration errors

dec_ivar

float32

1/deg²

Inverse variance of DEC, excluding astrometric calibration errors

bx

float32

pix

X position (0-indexed) of coordinates in brick image stack

by

float32

pix

Y position (0-indexed) of coordinates in brick image stack

dchisq

float32[5]

Difference in χ² between successively more-complex model fits: PSF, REX, DEV, EXP, COMP. The difference is versus no source.

ebv

float32

mag

Galactic extinction E(B-V) reddening from SFD98, used to compute DECAM_MW_TRANSMISSION and WISE_MW_TRANSMISSION

mjd_min

float64

days

Minimum Modified Julian Date of observations used to construct the model of this object

mjd_max

float64

days

Maximum Modified Julian Date of observations used to construct the model of this object

flux_g

float32

nanomaggy

model flux in $g$

flux_r

float32

nanomaggy

model flux in $r$

flux_z

float32

nanomaggy

model flux in $z$

flux_w1

float32

nanomaggy

WISE model flux in $W1$

flux_w2

float32

nanomaggy

WISE model flux in $W2$

flux_w3

float32

nanomaggy

WISE model flux in $W3$

flux_w4

float32

nanomaggy

WISE model flux in $W4$

flux_ivar_g

float32

1/nanomaggy²

Inverse variance of FLUX_G

flux_ivar_r

float32

1/nanomaggy²

Inverse variance of FLUX_R

flux_ivar_z

float32

1/nanomaggy²

Inverse variance of FLUX_Z

flux_ivar_w1

float32

1/nanomaggy²

Inverse variance of FLUX_W1

flux_ivar_w2

float32

1/nanomaggy²

Inverse variance of FLUX_W2

flux_ivar_w3

float32

1/nanomaggy²

Inverse variance of FLUX_W3

flux_ivar_w4

float32

1/nanomaggy²

Inverse variance of FLUX_W4

apflux_g

float32[8]

nanomaggy

Aperture fluxes on the co-added images in apertures of radius [0.5,0.75,1.0,1.5,2.0,3.5,5.0,7.0] arcsec in $g$

apflux_r

float32[8]

nanomaggy

Aperture fluxes on the co-added images in apertures of radius [0.5,0.75,1.0,1.5,2.0,3.5,5.0,7.0] arcsec in $r$

apflux_z

float32[8]

nanomaggy

Aperture fluxes on the co-added images in apertures of radius [0.5,0.75,1.0,1.5,2.0,3.5,5.0,7.0] arcsec in $z$

apflux_resid_g

float32[8]

nanomaggy

Aperture fluxes on the co-added residual images in $g$

apflux_resid_r

float32[8]

nanomaggy

Aperture fluxes on the co-added residual images in $r$

apflux_resid_z

float32[8]

nanomaggy

Aperture fluxes on the co-added residual images in $z$

apflux_ivar_g

float32[8]

1/nanomaggy²

Inverse variance of APFLUX_RESID_G

apflux_ivar_r

float32[8]

1/nanomaggy²

Inverse variance of APFLUX_RESID_R

apflux_ivar_z

float32[8]

1/nanomaggy²

Inverse variance of APFLUX_RESID_Z

mw_transmission_g

float32

Galactic transmission in $g$ filter in linear units [0,1]

mw_transmission_r

float32

Galactic transmission in $r$ filter in linear units [0,1]

mw_transmission_z

float32

Galactic transmission in $z$ filter in linear units [0,1]

mw_transmission_w1

float32

Galactic transmission in $W1$ filter in linear units [0,1]

mw_transmission_w2

float32

Galactic transmission in $W2$ filter in linear units [0,1]

mw_transmission_w3

float32

Galactic transmission in $W3$ filter in linear units [0,1]

mw_transmission_w4

float32

Galactic transmission in $W4$ filter in linear units [0,1]

nobs_g

int16

Number of images that contribute to the central pixel in $g$: filter for this object (not profile-weighted)

nobs_r

int16

Number of images that contribute to the central pixel in $r$: filter for this object (not profile-weighted)

nobs_z

int16

Number of images that contribute to the central pixel in $z$: filter for this object (not profile-weighted)

nobs_w1

int16

Number of images that contribute to the central pixel in $W1$: filter for this object (not profile-weighted)

nobs_w2

int16

Number of images that contribute to the central pixel in $W2$: filter for this object (not profile-weighted)

nobs_w3

int16

Number of images that contribute to the central pixel in $W3$: filter for this object (not profile-weighted)

nobs_w4

int16

Number of images that contribute to the central pixel in $W4$: filter for this object (not profile-weighted)

rchisq_g

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $g$

rchisq_r

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $r$

rchisq_z

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $z$

rchisq_w1

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $W1$

rchisq_w2

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $W2$

rchisq_w3

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $W3$

rchisq_w4

float32

Profile-weighted χ² of model fit normalized by the number of pixels in $W4$

fracflux_g

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $g$ (typically [0,1])

fracflux_r

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $r$ (typically [0,1])

fracflux_z

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $z$ (typically [0,1])

fracflux_w1

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $W1$ (typically [0,1])

fracflux_w2

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $W2$ (typically [0,1])

fracflux_w3

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $W3$ (typically [0,1])

fracflux_w4

float32

Profile-weighted fraction of the flux from other sources divided by the total flux in $W4$ (typically [0,1])

fracmasked_g

float32

Profile-weighted fraction of pixels masked from all observations of this object in $g$, strictly between [0,1]

fracmasked_r

float32

Profile-weighted fraction of pixels masked from all observations of this object in $r$, strictly between [0,1]

fracmasked_z

float32

Profile-weighted fraction of pixels masked from all observations of this object in $z$, strictly between [0,1]

fracin_g

float32

Fraction of a source's flux within the blob in $g$, near unity for real sources

fracin_r

float32

Fraction of a source's flux within the blob in $r$, near unity for real sources

fracin_z

float32

Fraction of a source's flux within the blob in $z$, near unity for real sources

anymask_g

int16

Bitwise mask set if the central pixel from any image satisfies each condition in $g$

anymask_r

int16

Bitwise mask set if the central pixel from any image satisfies each condition in $r$

anymask_z

int16

Bitwise mask set if the central pixel from any image satisfies each condition in $z$

allmask_g

int16

Bitwise mask set if the central pixel from all images satisfy each condition in $g$

allmask_r

int16

Bitwise mask set if the central pixel from all images satisfy each condition in $r$

allmask_z

int16

Bitwise mask set if the central pixel from all images satisfy each condition in $z$

wisemask_w1

uint8

W1 bright star bitmask, $2^0$ $(2^1)$ for southward (northward) scans

wisemask_w2

uint8

W2 bright star bitmask, $2^0$ $(2^1)$ for southward (northward) scans

psfsize_g

float32

arcsec

Weighted average PSF FWHM in the $g$ band

psfsize_r

float32

arcsec

Weighted average PSF FWHM in the $r$ band

psfsize_z

float32

arcsec

Weighted average PSF FWHM in the $z$ band

psfdepth_g

float32

1/nanomaggy²

For a $5\sigma$ point source detection limit in $g$, $5/\sqrt(\mathrm{PSFDEPTH\_G})$ gives flux in nanomaggies and $-2.5[\log_{10}(5 / \sqrt(\mathrm{PSFDEPTH\_G})) - 9]$ gives corresponding magnitude

psfdepth_r

float32

1/nanomaggy²

For a $5\sigma$ point source detection limit in $r$, $5/\sqrt(\mathrm{PSFDEPTH\_R})$ gives flux in nanomaggies and $-2.5[\log_{10}(5 / \sqrt(\mathrm{PSFDEPTH\_R})) - 9]$ gives corresponding magnitude

psfdepth_z

float32

1/nanomaggy²

For a $5\sigma$ point source detection limit in $z$, $5/\sqrt(\mathrm{PSFDEPTH\_Z})$ gives flux in nanomaggies and $-2.5[\log_{10}(5 / \sqrt(\mathrm{PSFDEPTH\_Z})) - 9]$ gives corresponding magnitude

galdepth_g

float32

1/nanomaggy²

As for PSFDEPTH_G but for a galaxy (0.45" exp, round) detection sensitivity

galdepth_r

float32

1/nanomaggy²

As for PSFDEPTH_R but for a galaxy (0.45" exp, round) detection sensitivity

galdepth_z

float32

1/nanomaggy²

As for PSFDEPTH_Z but for a galaxy (0.45" exp, round) detection sensitivity

wise_coadd_id

char[8]

unWISE coadd file name for the center of each object

lc_flux_w1

float32[7]

nanomaggy

FLUX_W1 in each of up to seven unWISE coadd epochs

lc_flux_w2

float32[7]

nanomaggy

FLUX_W2 in each of up to seven unWISE coadd epochs

lc_flux_ivar_w1

float32[7]

1/nanomaggy²

Inverse variance of LC_FLUX_W1

lc_flux_ivar_w2

float32[7]

1/nanomaggy²

Inverse variance of LC_FLUX_W2

lc_nobs_w1

int16[7]

NOBS_W1 in each of up to seven unWISE coadd epochs

lc_nobs_w2

int16[7]

NOBS_W2 in each of up to seven unWISE coadd epochs

lc_fracflux_w1

float32[7]

FRACFLUX_W1 in each of up to seven unWISE coadd epochs

lc_fracflux_w2

float32[7]

FRACFLUX_W2 in each of up to seven unWISE coadd epochs

lc_rchisq_w1

float32[7]

RCHISQ_W1 in each of up to seven unWISE coadd epochs

lc_rchisq_w2

float32[7]

RCHISQ_W2 in each of up to seven unWISE coadd epochs

lc_mjd_w1

float32[7]

MJD_W1 in each of up to seven unWISE coadd epochs

lc_mjd_w2

float32[7]

MJD_W2 in each of up to seven unWISE coadd epochs

fracdev

float32

Fraction of model in deVauc [0,1]

fracdev_ivar

float32

Inverse variance of FRACDEV

shapeexp_r

float32

arcsec

Half-light radius of exponential model (>0)

shapeexp_r_ivar

float32

1/arcsec²

Inverse variance of R_EXP

shapeexp_e1

float32

Ellipticity component 1

shapeexp_e1_ivar

float32

Inverse variance of SHAPEEXP_E1

shapeexp_e2

float32

Ellipticity component 2

shapeexp_e2_ivar

float32

Inverse variance of SHAPEEXP_E2

shapedev_r

float32

arcsec

Half-light radius of deVaucouleurs model (>0)

shapedev_r_ivar

float32

1/arcsec²

Inverse variance of R_DEV

shapedev_e1

float32

Ellipticity component 1

shapedev_e1_ivar

float32

Inverse variance of SHAPEDEV_E1

shapedev_e2

float32

Ellipticity component 2

shapedev_e2_ivar

float32

Inverse variance of SHAPEDEV_E2

## Mask Values

The ANYMASK and ALLMASK bit masks are defined as follows from the CP (NOIRLab Community Pipeline) Data Quality bits.

Bit

Value

Name

Description

0

1

detector bad pixel/no data

See the CP Data Quality bit description.

1

2

saturated

See the CP Data Quality bit description.

2

4

interpolated

See the CP Data Quality bit description.

4

16

single exposure cosmic ray

See the CP Data Quality bit description.

6

64

bleed trail

See the CP Data Quality bit description.

7

128

multi-exposure transient

See the CP Data Quality bit description.

8

256

edge

See the CP Data Quality bit description.

9

512

edge2

See the CP Data Quality bit description.

10

1024

longthin

$\gt 5\sigma$ connected components with major axis $\gt 200$ pixels and major/minor axis $\gt 0.1$. To mask, e.g., satellite trails.

## Goodness-of-Fits

The dchisq values represent the χ² sum of all pixels in the source's blob for various models. This 5-element vector contains the χ² difference between the best-fit point source (type="PSF"), round exponential galaxy model ("REX"), de Vaucouleurs model ("DEV"), exponential model ("EXP"), and a composite model ("COMP"), in that order. The "REX" model is a round exponential galaxy profile with a variable radius and is meant to capture slightly-extended but low signal-to-noise objects. The dchisq values are the χ² difference versus no source in this location---that is, it is the improvement from adding the given source to our model of the sky. The first element (for PSF) corresponds to a traditional notion of detection significance. Note that the dchisq values are negated so that positive values indicate better fits. We penalize models with negative flux in a band by subtracting rather than adding its χ² improvement in that band.

The rchisq values are interpreted as the reduced χ² pixel-weighted by the model fit, computed as the following sum over pixels in the blob for each object:

\begin{equation*} \chi^2 = \frac{\sum \left[ \left(\mathrm{image} - \mathrm{model}\right)^2 \times \mathrm{model} \times \mathrm{inverse\, variance}\right]}{\sum \left[ \mathrm{model} \right]} \end{equation*}

The above sum is over all images contributing to a particular filter, and can be negative-valued for sources that have a flux measured as negative in some bands where they are not detected.

## Galactic Extinction Coefficients

The Galactic extinction values are derived from the SFD98 maps, but with updated coefficients to convert E(B-V) to the extinction in each filter. These are reported in linear units of transmission, with 1 representing a fully transparent region of the Milky Way and 0 representing a fully opaque region. The value can slightly exceed unity owing to noise in the SFD98 maps, although it is never below 0.

Extinction coefficients for the SDSS filters have been changed to the values recommended by Schlafly & Finkbeiner (2011) using the Fitzpatrick (1999) extinction curve at R_V = 3.1 and their improved overall calibration of the SFD98 maps. These coefficients are A / E(B-V) = 4.239, 3.303, 2.285, 1.698, 1.263 in $ugriz$, which are different from those used in SDSS-I,II,III, but are the values used for SDSS-IV/eBOSS target selection.

Extinction coefficients for the DECam filters use the Schlafly & Finkbeiner (2011) values, with $u$-band computed using the same formulae and code at airmass 1.3 (Schlafly, priv. comm. decam-data list on 11/13/14). These coefficients are $A / E(B-V)$ = 3.995, 3.214, 2.165, 1.592, 1.211, 1.064 for the DECam $u$, $g$, $r$, $i$, $z$, $Y$ filters, respectively. Note that these are slightly different from the coefficients in Schlafly & Finkbeiner (2011).

The coefficients for the four WISE filters are derived from Fitzpatrick (1999), as recommended by Schlafly & Finkbeiner (2011), considered better than either the Cardelli et al. (1989) curves or the newer Fitzpatrick & Massa (2009) NIR curve (which is not vetted beyond 2 microns). These coefficients are A / E(B-V) = 0.184, 0.113, 0.0241, 0.00910.

## Ellipticities

The ellipticity, ε, is different from the usual eccentricity, $e \equiv \sqrt{1 - (b/a)^2}$. In gravitational lensing studies, the ellipticity is taken to be a complex number:

\begin{equation*} \epsilon = \frac{a-b}{a+b} \exp( 2i\phi ) = \epsilon_1 + i \epsilon_2 \end{equation*}

Where ϕ is the position angle with a range of 180°, due to the ellipse's symmetry. Going between $r, \epsilon_1, \epsilon_2$ and $r, b/a, \phi$:

\begin{align*} r & = & r \\ |\epsilon| & = & \sqrt{\epsilon_1^2 + \epsilon_2^2} \\ \frac{b}{a} & = & \frac{1 - |\epsilon|}{1 + |\epsilon|} \\ \phi & = & \frac{1}{2} \arctan \frac{\epsilon_2}{\epsilon_1} \\ |\epsilon| & = & \frac{1 - b/a}{1 + b/a} \\ \epsilon_1 & = & |\epsilon| \cos(2 \phi) \\ \epsilon_2 & = & |\epsilon| \sin(2 \phi) \\ \end{align*}