Tractor Catalog Format

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

FITS binary table containing Tractor photometry. Before using these catalogs, note that there may be known issues regarding their content and derivation. Note that all flux-based quantities in the catalogs are on the AB system (we specify that WISE fluxes are AB in the table for clarity, as such quantities are often quoted on the Vega system).

Name Type Units Description
release int16   Unique integer denoting the camera and filter set used (as 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 release,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
maskbits int16   Bitwise mask indicating that an object touches a pixel in the coadd/*/*/*maskbits* maps, as cataloged on the DR9 bitmasks page
fitbits int16   Bitwise mask detailing pecularities of how an object was fit, as cataloged on the DR9 bitmasks page
type char[3]   Morphological model: "PSF"=stellar, "REX"="round exponential galaxy", "DEV"=deVauc, "EXP"=exponential, "SER"=Sersic, "DUP"=Gaia source fit by different model.
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 the brick image stack (i.e. in the e.g. legacysurvey-<brick>-image-g.fits.fz coadd file)
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, SER. The difference is versus no source.
ebv float32 mag Galactic extinction E(B-V) reddening from SFD98, used to compute the mw_transmission_ columns
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
ref_cat char[2]   Reference catalog source for this star: "T2" for Tycho-2, "G2" for Gaia DR2, "L3" for the SGA, empty otherwise
ref_id int64   Reference catalog identifier for this star; Tyc1*1,000,000+Tyc2*10+Tyc3 for Tycho2; "sourceid" for Gaia DR2 and SGA
pmra float32 mas/yr Reference catalog proper motion in the RA direction
pmdec float32 mas/yr Reference catalog proper motion in the Dec direction
parallax float32 mas Reference catalog parallax
pmra_ivar float32 1/(mas/yr)² Reference catalog inverse-variance on pmra
pmdec_ivar float32 1/(mas/yr)² Reference catalog inverse-variance on pmdec
parallax_ivar float32 1/(mas)² Reference catalog inverse-variance on parallax
ref_epoch float32 yr Reference catalog reference epoch (eg, 2015.5 for Gaia DR2)
gaia_phot_g_mean_mag float32 mag Gaia G band mag
gaia_phot_g_mean_flux_over_error float32   Gaia G band signal-to-noise
gaia_phot_g_n_obs int16   Gaia G band number of observations
gaia_phot_bp_mean_mag float32 mag Gaia BP mag
gaia_phot_bp_mean_flux_over_error float32   Gaia BP signal-to-noise
gaia_phot_bp_n_obs int16   Gaia BP number of observations
gaia_phot_rp_mean_mag float32 mag Gaia RP mag
gaia_phot_rp_mean_flux_over_error float32   Gaia RP signal-to-noise
gaia_phot_rp_n_obs int16   Gaia RP number of observations
gaia_phot_variable_flag bool   Gaia photometric variable flag
gaia_astrometric_excess_noise float32   Gaia astrometric excess noise
gaia_astrometric_excess_noise_sig float32   Gaia astrometric excess noise uncertainty
gaia_astrometric_n_obs_al int16   Gaia number of astrometric observations along scan direction
gaia_astrometric_n_good_obs_al int16   Gaia number of good astrometric observations along scan direction
gaia_astrometric_weight_al float32   Gaia astrometric weight along scan direction
gaia_duplicated_source bool   Gaia duplicated source flag
gaia_a_g_val float32 magnitudes Gaia line-of-sight extinction in the G band
gaia_e_bp_min_rp_val float32 magnitudes Gaia line-of-sight reddening E(BP-RP)
gaia_phot_bp_rp_excess_factor float32   Gaia BP/RP excess factor
gaia_astrometric_sigma5d_max float32 mas Gaia longest semi-major axis of the 5-d error ellipsoid
gaia_astrometric_params_solved uint8   which astrometric parameters were estimated for a Gaia source
flux_g float32 nanomaggies model flux in \(g\)
flux_r float32 nanomaggies model flux in \(r\)
flux_z float32 nanomaggies model flux in \(z\)
flux_w1 float32 nanomaggies WISE model flux in \(W1\) (AB system)
flux_w2 float32 nanomaggies WISE model flux in \(W2\) (AB)
flux_w3 float32 nanomaggies WISE model flux in \(W3\) (AB)
flux_w4 float32 nanomaggies WISE model flux in \(W4\) (AB)
flux_ivar_g float32 1/nanomaggies² Inverse variance of flux_g
flux_ivar_r float32 1/nanomaggies² Inverse variance of flux_r
flux_ivar_z float32 1/nanomaggies² Inverse variance of flux_z
flux_ivar_w1 float32 1/nanomaggies² Inverse variance of flux_w1 (AB system)
flux_ivar_w2 float32 1/nanomaggies² Inverse variance of flux_w2 (AB)
flux_ivar_w3 float32 1/nanomaggies² Inverse variance of flux_w3 (AB)
flux_ivar_w4 float32 1/nanomaggies² Inverse variance of flux_w4 (AB)
fiberflux_g float32 nanomaggies Predicted \(g\)-band flux within a fiber of diameter 1.5 arcsec from this object in 1 arcsec Gaussian seeing
fiberflux_r float32 nanomaggies Predicted \(r\)-band flux within a fiber of diameter 1.5 arcsec from this object in 1 arcsec Gaussian seeing
fiberflux_z float32 nanomaggies Predicted \(z\)-band flux within a fiber of diameter 1.5 arcsec from this object in 1 arcsec Gaussian seeing
fibertotflux_g float32 nanomaggies Predicted \(g\)-band flux within a fiber of diameter 1.5 arcsec from all sources at this location in 1 arcsec Gaussian seeing
fibertotflux_r float32 nanomaggies Predicted \(r\)-band flux within a fiber of diameter 1.5 arcsec from all sources at this location in 1 arcsec Gaussian seeing
fibertotflux_z float32 nanomaggies Predicted \(z\)-band flux within a fiber of diameter 1.5 arcsec from all sources at this location in 1 arcsec Gaussian seeing
apflux_g float32[8] nanomaggies 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\), masked by \(invvar=0\) (inverse variance of zero [1])
apflux_r float32[8] nanomaggies 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\), masked by \(invvar=0\)
apflux_z float32[8] nanomaggies 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\), masked by \(invvar=0\)
apflux_resid_g float32[8] nanomaggies Aperture fluxes on the co-added residual images in \(g\), masked by \(invvar=0\)
apflux_resid_r float32[8] nanomaggies Aperture fluxes on the co-added residual images in \(r\), masked by \(invvar=0\)
apflux_resid_z float32[8] nanomaggies Aperture fluxes on the co-added residual images in \(z\), masked by \(invvar=0\)
apflux_blobresid_g float32[8] nanomaggies Aperture fluxes on \(image-blobmodel\) residual maps in \(g\) [2], masked by \(invvar=0\)
apflux_blobresid_r float32[8] nanomaggies Aperture fluxes on \(image-blobmodel\) residual maps in \(r\), masked by \(invvar=0\)
apflux_blobresid_z float32[8] nanomaggies Aperture fluxes on \(image-blobmodel\) residual maps in \(z\), masked by \(invvar=0\)
apflux_ivar_g float32[8] 1/nanomaggies² Inverse variance of apflux_resid_g, masked by \(invvar=0\)
apflux_ivar_r float32[8] 1/nanomaggies² Inverse variance of apflux_resid_r, masked by \(invvar=0\)
apflux_ivar_z float32[8] 1/nanomaggies² Inverse variance of apflux_resid_z, masked by \(invvar=0\)
apflux_masked_g float32[8]   Fraction of pixels masked in \(g\)-band aperture flux measurements; 1 means fully masked (ie, fully ignored; contributing zero to the measurement)
apflux_masked_r float32[8]   Fraction of pixels masked in \(r\)-band aperture flux measurements; 1 means fully masked (ie, fully ignored; contributing zero to the measurement)
apflux_masked_z float32[8]   Fraction of pixels masked in \(z\)-band aperture flux measurements; 1 means fully masked (ie, fully ignored; contributing zero to the measurement)
apflux_w1 float32[5] nanomaggies Aperture fluxes on the co-added images in apertures of radius [3, 5, 7, 9, 11] [3] arcsec in \(W1\), masked by \(invvar=0\)
apflux_w2 float32[5] nanomaggies Aperture fluxes on the co-added images in apertures of radius [3, 5, 7, 9, 11] arcsec in \(W2\), masked by \(invvar=0\)
apflux_w3 float32[5] nanomaggies Aperture fluxes on the co-added images in apertures of radius [3, 5, 7, 9, 11] arcsec in \(W3\), masked by \(invvar=0\)
apflux_w4 float32[5] nanomaggies Aperture fluxes on the co-added images in apertures of radius [3, 5, 7, 9, 11] arcsec in \(W4\), masked by \(invvar=0\)
apflux_resid_w1 float32[5] nanomaggies Aperture fluxes on the co-added residual images in \(W1\), masked by \(invvar=0\)
apflux_resid_w2 float32[5] nanomaggies Aperture fluxes on the co-added residual images in \(W2\), masked by \(invvar=0\)
apflux_resid_w3 float32[5] nanomaggies Aperture fluxes on the co-added residual images in \(W3\), masked by \(invvar=0\)
apflux_resid_w4 float32[5] nanomaggies Aperture fluxes on the co-added residual images in \(W4\), masked by \(invvar=0\)
apflux_ivar_w1 float32[5] 1/nanomaggies² Inverse variance of apflux_resid_w1, masked by \(invvar=0\)
apflux_ivar_w2 float32[5] 1/nanomaggies² Inverse variance of apflux_resid_w2, masked by \(invvar=0\)
apflux_ivar_w3 float32[5] 1/nanomaggies² Inverse variance of apflux_resid_w3, masked by \(invvar=0\)
apflux_ivar_w4 float32[5] 1/nanomaggies² Inverse variance of apflux_resid_w4, masked by \(invvar=0\)
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\) as cataloged on the DR9 bitmasks page
anymask_r int16   Bitwise mask set if the central pixel from any image satisfies each condition in \(r\) as cataloged on the DR9 bitmasks page
anymask_z int16   Bitwise mask set if the central pixel from any image satisfies each condition in \(z\) as cataloged on the DR9 bitmasks page
allmask_g int16   Bitwise mask set if the central pixel from all images satisfy each condition in \(g\) as cataloged on the DR9 bitmasks page
allmask_r int16   Bitwise mask set if the central pixel from all images satisfy each condition in \(r\) as cataloged on the DR9 bitmasks page
allmask_z int16   Bitwise mask set if the central pixel from all images satisfy each condition in \(z\) as cataloged on the DR9 bitmasks page
wisemask_w1 uint8   W1 bitmask as cataloged on the DR9 bitmasks page
wisemask_w2 uint8   W2 bitmask as cataloged on the DR9 bitmasks page
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/nanomaggies² 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 AB magnitude
psfdepth_r float32 1/nanomaggies² For a \(5\sigma\) point source detection limit in \(g\), \(5/\sqrt(\mathrm{psfdepth\_r})\) gives flux in nanomaggies and \(-2.5[\log_{10}(5 / \sqrt(\mathrm{psfdepth\_r})) - 9]\) gives corresponding AB magnitude
psfdepth_z float32 1/nanomaggies² For a \(5\sigma\) point source detection limit in \(g\), \(5/\sqrt(\mathrm{psfdepth\_z})\) gives flux in nanomaggies and \(-2.5[\log_{10}(5 / \sqrt(\mathrm{psfdepth\_z})) - 9]\) gives corresponding AB magnitude
galdepth_g float32 1/nanomaggies² As for psfdepth_g but for a galaxy (0.45" exp, round) detection sensitivity
galdepth_r float32 1/nanomaggies² As for psfdepth_r but for a galaxy (0.45" exp, round) detection sensitivity
galdepth_z float32 1/nanomaggies² As for psfdepth_z but for a galaxy (0.45" exp, round) detection sensitivity
nea_g float32 arcsec² Noise equivalent area in \(g\).
nea_r float32 arcsec² Noise equivalent area in \(r\).
nea_z float32 arcsec² Noise equivalent area in \(z\).
blob_nea_g float32 arcsec² Blob-masked noise equivalent area in \(g\).
blob_nea_r float32 arcsec² Blob-masked noise equivalent area in \(r\).
blob_nea_z float32 arcsec² Blob-masked noise equivalent area in \(z\).
psfdepth_w1 float32 1/nanomaggies² As for psfdepth_g (and also on the AB system) but for WISE W1
psfdepth_w2 float32 1/nanomaggies² As for psfdepth_g (and also on the AB system) but for WISE W2
psfdepth_w3 float32 1/nanomaggies² As for psfdepth_g (and also on the AB system) but for WISE W3
psfdepth_w4 float32 1/nanomaggies² As for psfdepth_g (and also on the AB system) but for WISE W4
wise_coadd_id char[8]   unWISE coadd brick name (corresponding to the, e.g., legacysurvey-<brick>-image-W1.fits.fz coadd file) for the center of each object
wise_x float32 pix X position of coordinates in the brick image stack that corresponds to wise_coadd_id (see the DR9 updates page for transformations between wise_x and bx)
wise_y float32 pix Y position of coordinates in the brick image stack that corresponds to wise_coadd_id (see the DR9 updates page for transformations between wise_y and by)
lc_flux_w1 float32[15] nanomaggies flux_w1 in each of up to fifteen unWISE coadd epochs (AB system; defaults to zero for unused entries)
lc_flux_w2 float32[15] nanomaggies flux_w2 in each of up to fifteen unWISE coadd epochs (AB; defaults to zero for unused entries)
lc_flux_ivar_w1 float32[15] 1/nanomaggies² Inverse variance of lc_flux_w1 (AB system; defaults to zero for unused entries)
lc_flux_ivar_w2 float32[15] 1/nanomaggies² Inverse variance of lc_flux_w2 (AB; defaults to zero for unused entries)
lc_nobs_w1 int16[15]   nobs_w1 in each of up to fifteen unWISE coadd epochs
lc_nobs_w2 int16[15]   nobs_w2 in each of up to fifteen unWISE coadd epochs
lc_fracflux_w1 float32[15]   fracflux_w1 in each of up to fifteen unWISE coadd epochs (defaults to zero for unused entries)
lc_fracflux_w2 float32[15]   fracflux_w2 in each of up to fifteen unWISE coadd epochs (defaults to zero for unused entries)
lc_rchisq_w1 float32[15]   rchisq_w1 in each of up to fifteen unWISE coadd epochs (defaults to zero for unused entries)
lc_rchisq_w2 float32[15]   rchisq_w2 in each of up to fifteen unWISE coadd epochs (defaults to zero for unused entries)
lc_mjd_w1 float64[15]   mjd_w1 in each of up to fifteen unWISE coadd epochs (defaults to zero for unused entries)
lc_mjd_w2 float64[15]   mjd_w2 in each of up to fifteen unWISE coadd epochs (defaults to zero for unused entries)
lc_epoch_index_w1 int16[15]   Index number of unWISE epoch for W1 (defaults to -1 for unused entries)
lc_epoch_index_w2 int16[15]   Index number of unWISE epoch for W2 (defaults to -1 for unused entries)
sersic float32   Power-law index for the Sersic profile model (type="SER")
sersic_ivar float32   Inverse variance of sersic
shape_r float32 arcsec Half-light radius of galaxy model for galaxy type type (>0)
shape_r_ivar float32 1/arcsec² Inverse variance of shape_r
shape_e1 float32   Ellipticity component 1 of galaxy model for galaxy type type
shape_e1_ivar float32   Inverse variance of shape_e1
shape_e2 float32   Ellipticity component 2 of galaxy model for galaxy type type
shape_e2_ivar float32   Inverse variance of shape_e2

Goodness-of-Fits and Morphological type

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 Sersic model ("SER"), in that order. Note that the Sersic model replaces the composite ("COMP") model used in DR8 (and before). 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.

The final, additional moropholigical type is "DUP." This type is set for Gaia sources that are coincident with, and so have been fit by, an extended source. No optical flux is assigned to DUP sources, but they are retained to ensure that all Gaia sources appear in the catalogs even if Tractor prefers an alternate fit.

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.

Eddie Schlafly has computed the extinction coefficients for the DECam filters through airmass=1.3, computed for a 7000K source spectrum as was done in the Appendix of Schlafly & Finkbeiner (2011). These coefficients are A / E(B-V) = 3.995, 3.214, 2.165, 1.592, 1.211, 1.064 (note that these are slightly different from the coefficients in Schlafly & Finkbeiner 2011). The coefficients are multiplied by the SFD98 E(B-V) values at the coordinates of each object to derive the \(g\), \(r\) and \(z\) mw_transmission values in the Legacy Surveys catalogs. The coefficients at different airmasses only change by a small amount, with the largest effect in \(g\)-band where the coefficient would be 3.219 at airmass=1 and 3.202 at airmass=2.

We calculate Galactic extinction for BASS and MzLS as if they are on the DECam filter system.

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 ellipticities for each galaxy type (i.e. shape_e1, shape_e2) are 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*}

Footnotes

[1] We define a mask for the aperture fluxes using an inverse variance of zero. So, pixels with undefined ("infinite") measurement errors are not used when calculating aperture fluxes in the Tractor catalogs. As the aperture fluxes are calculated from the coadd images described on the files page, pixels end up being ignored if they are masked in every overlapping exposure in a given band. Thus, for example, the saturated cores and bleed trails of bright stars will be masked. Further, in the case that a coadd is only built from a single image, cosmic rays and other mask bits will cause poorly measured and saturated pixels to be ignored for aperture flux measurements.
[2] blobmodel refers to the "blob-model" maps (i.e. the <AAA>/<brick>/legacysurvey-<brick>-blobmodel-<filter>.fits.fz maps described on the files page).
[3] The aperture sizes for WISE, and the rationale for including them, are detailed in issue #447.