ePSF Colour Model Explorer

ePSF Colour Model Explorer

Held-out residual grids for every colour model we trained, on one fixed colour scale, so switching model changes only the residual. Pick a model, a field and a star set below. The figures further down show what the colour terms are and how they compare with the measured colour response.

Grid layout: outer 3×3 = CCD cells (y up). Inside each cell, rows are T 8–10, 10–12, 12–13 (bright on top) and columns are BP−RP blue < 0.75, mid 0.75–1.25, red > 1.25. Each stamp is the clipped mean of residual / flux, in 10⁻⁴ per px². The stamp title gives n and the width residual cxx/cyy (10⁻³ px², negative = data sharper than the model).

Model
Field
Stars
View
Colour scale (10⁻⁴ per px²)
Held-out: each star rendered by the fit that never trained on it (folds 0 and 1 pooled). The honest test.Trained: in-sample stars only; a model can look better here than it is.All: trained + held-out, both fold fits pooled (a star used by both appears twice); the clearest picture.

Every model uses the same colour scale, chosen with the scale buttons (±30, ±20 or ±10×10⁻⁴ per px²); switching model never changes the scale. Colour-relative = each cell minus its all-star stack. Fields F1 = S24 cam 2 CCD 2, F2 = S20 cam 3 CCD 3, C4 = S23 cam 4 CCD 2; the final model also has S22 (S22 cam 3 CCD 3) and C1 (S24 cam 1 CCD 2).


What the data show, before any model

The colour response of the TESS PSF measured on held-out T 10–13 stars, five fields, three zones of distance from the optical axis. u is the model's colour variable: the star's flux-weighted mean wavelength across the template's PS1 bands (from Gaia XP), mapped to BP−RP units by a per-CCD linear fit, so it runs from about 0.5 (bluest) to 2.1 (reddest). The red line in each panel is the operator model's term (A3, run3 final fits).

Radial colour shift versus colour u, five fields by three axis-distance zones
Shift. Radial colour shift in px (positive = toward the optical axis). Red stars sit further from the axis; nearly linear in u, slope growing with axis distance.
Width change versus colour u, five fields by three zones
Width. Width change ΔΣ/2 inside 3 px (px²). Red stars have sharper cores; the operator model under-predicts the reddest bin in most panels.
Kurtosis amplitude versus colour u, five fields by three zones
Kurtosis. Kurtosis amplitude (generator units). Negative for red stars: a brighter centre with a darker ring. The operator model falls short at the red end on F2, C1 and C4.
Colour slope of shift, width and kurtosis versus distance from the optical axis
Against axis distance. Colour slope of shift, width and kurtosis vs distance from the optical axis (points: blue and red halves of the colour range; lines: operator model). The shift slope follows a quadratic in distance; width and kurtosis slopes weaken away from the axis.
Pooled colour-effect images for blue, mid and red stars in three axis zones
The images behind the curves. Five fields pooled, held-out T 10–13, optical axis to the right, ±0.004 per unit flux. For each zone: the odd part of the colour effect (shift, a dipole along the axis), the even part (width and kurtosis: red stars a brighter centre with a darker ring), and what the operator model leaves.

The terms of the A3 operator model

A3 is the colour model of the Paper 1 freeze (decided 2026-09-29): model #14 plus a shift quadratic in colour and colour elongation planes across the CCD, 17 coefficients fitted per CCD. Every term is proportional to the star's colour offset, so a star of the reference colour gets the plain ePSF.

δ = c − cref,   c = a + b·u

c: the star's colour in BP−RP magnitudes, from u through a per-CCD linear fit (slope b ≈ 0.035 mag/nm), or Gaia BP−RP when there is no XP spectrum. cref: mean colour of the scene stars, fixed at the start of the fit. r: distance from the star to the optical axis in units of 1000 px. X, Y: the star's CCD position scaled to [−1, 1]. P: the ePSF at the star's position; ρ: radius from the star centre; n̂: unit vector from the star toward the optical axis.

TermWhat it does to the PSFGeneratorAmplitude for a starCoefficients
Colour shiftMoves the whole PSF toward or away from the optical axis (lateral colour). Red stars sit further out.translation along n̂Δx = [δ(s0 + s1r + s2r²) + (δ² − ⟨δ²⟩)(qs0 + qs1r)] n̂5
KurtosisMoves light between the centre and a ring at 1–2 px without changing the flux: red stars get a brighter centre and a darker ring.P·(ρ² − ⟨ρ²⟩)δ(k0 + k1r)2
BlurGaussian-like broadening or sharpening of the core.∇²Pδ·b1
DilationMagnifies or shrinks the whole PSF, wings included.2P + x·∇Pδ(d0 + d1r)2
TrefoilA three-fold (120°) distortion aligned with the radial direction.radial trefoilδ·t1
Elongation planesStretches the PSF along x vs y and along the 45° diagonals, by an amount that varies linearly across the CCD.traceless stretch, x/y and 45°δ(q1,0 + q1,xX + q1,yY), δ(q2,0 + q2,xX + q2,yY)6

Each generator is made orthogonal to the ePSF itself (the "raw-P" gauge), so no term changes the total flux or the centroid except the shift. Kurtosis, blur and dilation are the round terms: they change the radial profile, and they overlap with each other and with the inner rings of the radial + coma model (see the ring-average plot below). The final model drops them and keeps the shift, trefoil and elongation planes. The images of blur, dilation and kurtosis on a real ePSF are in the second figure of the next section.

Records: dev/forward_epsf_wcs/docs/COLOUR_MODEL_DECISION_20260924.md (#14) and COLOUR_MODEL_V2_DECISION_20260929.md (A3).

The terms: operator model and radial + coma model

Two ways to describe the colour response. The operator model (A3) uses physical operators on the ePSF: a colour shift toward or away from the axis, blur, dilation, kurtosis, trefoil and elongation planes. The radial + coma model replaces the round operators with five flux-neutral rings in radius and coma terms that change the one-sided shape without moving the centroid. The final model is the radial + coma law with an extra coma knot at 0.4 px, the rings tapering to zero between 5.5 and 7 px. It keeps A3's colour shift, trefoil and elongation planes and drops A3's round terms.

Final radial plus coma colour terms rendered at 0.25 px on a camera 4 ePSF node, with ring and one-sided profiles
Final model terms on a real camera-4 ePSF node at 0.25 px (optical axis toward +x; red adds light, blue removes it; each image on its own scale). Radial rings 1–5 and coma 1–4 (coma 1 is the 0.4 px inner knot), the shift for comparison, and A3's blur and dilation, which this model drops. Bottom: ring-average profile of each round term and one-sided profile of the coma terms against the shift.
First-round radial plus coma terms with the A3 blur, dilation and kurtosis operators
Operator terms next to the rings (first round of the radial + coma law, before the inner knot). Middle row: A3 blur, dilation and kurtosis. Kurtosis puts light into the centre and takes it from a ring at 1–2 px; in the ring-average plot (dashed) it overlaps the inner rings, which is why the final model drops the round A3 terms.
Colour terms on one camera 4 star, 15 by 15 pixel stamp
The same terms on one star at native pixels (C4, T 11.2, u 1.10, 15×15 stamp), with the radial bump functions Bj(ρ) and coma radial weights ρBk(ρ) on top. At the pixel level the operator terms and the inner rings are hard to tell apart.

How the two models compare

Measured colour response versus the operator model and the radial plus coma model, in physical terms
In physical terms. Held-out clean T 10–13 stars, F1, F2 and C4, three axis zones. Black: measured shift, width and kurtosis against u (grey numbers = stars per bin where fewer than 150). Red dashed: operator model. Blue: radial + coma model. Both follow the shift; the radial + coma model follows the red-end width and kurtosis where the operator model falls short (C4 in particular).
C4 held-out red minus mid and blue minus mid residual profiles for the operator model and the radial plus coma model
Red − mid and blue − mid residual profiles, C4 held-out T 10–13: ring average (m = 0) and the one-sided part along the axis (m = 1). Black: operator model; orange: radial + coma model (fold 1); grey: noise band from splitting the mid-colour stars. The operator model leaves structure out to 3.5 px; the radial + coma model puts everything beyond about 1.3 px inside the noise. A red-core residue inside 1.3 px remains.
Residual light in 0-2, 2-4 and 4-7 px annuli versus colour for five fields
Where the operator model falls short. Residual light (ppt of flux) in annuli 0–2, 2–4 and 4–7 px vs u, five fields, operator model (run3). Grey dashed: data − achromatic model, the true colour effect. Red stars have less 4–7 px light than an achromatic PSF, but the operator model removes even more (blue line rises to +3 to +12 ppt at the red end): the operators that sharpen the core also take light from the wing.

Records

Model comparison fits and grids/astro/armin/koji/syndiff/dev_runs/colour_shoulder_20261008/README.md (grids: canvas_figs/code/resgrid_fixed.py)
Final model grids/astro/armin/koji/syndiff/dev_runs/group_meeting_slides_20261013/colour_viewer/run5_fixed.py on e2e_final_recipe_20261007/run5/<F>/folds_final, folds 0+1
Data and term figurescolour-model framing canvas, /home/kshukawa/syndiff_pipeline/doc/epsf_framing_canvas/figs/; term images colour_shoulder_20261008/canvas_figs/
Earlier side-by-side explorerhttps://claude.ai/artifact/Geoq6EAspMjfJS7LocNSaR (with metric charts)