From 28bde9df86146fa7cd9ac3c0cb64529ac2f70cc3 Mon Sep 17 00:00:00 2001 From: Alexander Rulkens Date: Sun, 7 Jun 2026 23:11:06 +0200 Subject: [PATCH] fix(milliquas): disable colour K-correction that clamped quasars to blue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The colour-index K-correction subtracts kPerZ·z in ramp-position units, where the whole blue→white→red ramp spans only 2.0. Milliquas redshifts run z ≈ 1–7, so kPerZ=0.5 subtracted 0.5–3.5 ramp units — more than the observed B−R colour of nearly every quasar — pinning the entire catalog to the t=0 blue floor regardless of its real colour. Set kPerZ=0 so observed B−R maps straight to the ramp and the genuine blue→red AGN spread survives. A redshift-aware quasar correction belongs in a dedicated bias-correction subsystem with its own QLF, not here. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/data/sources.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/data/sources.ts b/src/data/sources.ts index 4ae58685..a816058e 100644 --- a/src/data/sources.ts +++ b/src/data/sources.ts @@ -343,10 +343,13 @@ export const SOURCE_REGISTRY = { // wavelength to SDSS g among the empty slots) and Rmag into magR. bandLabels: { u: '—', g: 'B', r: 'R', i: '—', z: '—' }, // B−R is the natural quasar colour: blue quasars sit near 0; red / - // dust-obscured AGN extend to ≳ 2. kPerZ is non-zero because the - // observed-frame band sweeps through the Lyα forest at high z, but - // kept modest until the bias-correction subsystem wires Milliquas in. - colourSpec: { slotA: 'g', slotB: 'r', rangeMin: 0.0, rangeMax: 2.0, kPerZ: 0.5 }, + // dust-obscured AGN extend to ≳ 2. kPerZ is 0: the K-correction is + // expressed in ramp-position units over a span of only 2.0, but + // Milliquas redshifts run z ≈ 1–7, so any non-zero coefficient + // subtracts most of the range and clamps the whole catalog to the + // blue floor. The correction stays off until a quasar-specific + // bias-correction subsystem wires Milliquas in with its own QLF. + colourSpec: { slotA: 'g', slotB: 'r', rangeMin: 0.0, rangeMax: 2.0, kPerZ: 0.0 }, // Milliquas's quasar-completeness limit varies wildly by parent // survey (SDSS DR16Q reaches r ~ 22, DESI EDR ~ 23, bright optical/ // X-ray-selected subsamples cut at ~18). We use a permissive limit