Validation catalogue¶
21 cases run with spectro-kernel 0.8.1 when this page was
built: 19 within tolerance, 0 outside,
2 not run in this build. The registry is
tests/reference/cases.py; the reference test suite asserts the same cases and is
where a regression blocks CI. This page only reports. The same table is available
as JSON; Validation explains how to read
the tolerances and how to add a case.
Status: ✓ the measured value is within the tolerance of the published one (Δ is measured − published); ✗ it is not; not run in this build means the input was unavailable where the documentation was built (Git LFS fixture not pulled, external atlas absent) and says why.
Literature values on synthetic inputs¶
| Case | Algorithm | Dataset | Published value (source) | Measured | Tolerance | Status |
|---|---|---|---|---|---|---|
morton2000_halpha_air_to_vacuumλ_vac(Hα) [Å] |
air_to_vacuum |
synthetic: one sample at 6562.79 Å (standard air) | 6564.603 — Morton 2000, ApJS 130, 403 (air/vacuum dispersion n(λ)) ; air → vacuum with the VALD3 closed-form inverse ; Hα 6562.79 Å air = 6564.603 Å vacuum (NIST ASD) | 6564.603 | ±0.0015 absolute the VALD3 inverse reproduces Morton's relation to ~1e-4 Å ; 1.5e-3 Å is the rounding of the published vacuum value |
✓ Δ = -2.27e-05 |
stoehr2008_der_snr_flat_continuumDER_SNR [-] |
snr_der |
synthetic: flat continuum 50 with N(0, 1) noise, 3000 samples, seed 0 | 50 — Stoehr et al. 2008, ASP Conf. Ser. 394, 505 — DER_SNR : SNR = median(F) / (1.482602/√6 · median|2F_i − F_{i−2} − F_{i+2}|), unbiased for Gaussian noise ; the synthetic is built with S/N = 50 | 50.01248 | ±0.05 relative median statistics over 3000 samples scatter by ~2 % from realisation to realisation ; 5 % is 2–3 σ of that scatter |
✓ Δ = +0.0125 |
olivero1977_voigt_fwhmVoigt FWHM [Å] |
fit_voigt_line |
synthetic: Voigt profile σ = 2.0 Å, γ = 1.5 Å, amplitude 40 on continuum 100 | 6.516 — Olivero & Longbothum 1977, JQSRT 17, 233 — FWHM ≈ 0.5346 f_L + √(0.2166 f_L² + f_G²) with f_G = 2√(2 ln 2) σ = 4.7096 Å, f_L = 2γ = 3.0 Å ⇒ 6.5160 Å | 6.516041 | ±0.001 relative σ and γ are recovered to 1e-3 on a noise-free line ; the approximation itself is accurate to 0.02 % (the numerical FWHM of the true profile is 6.515 Å) |
✓ Δ = +4.08e-05 |
bouchy2001_rv_precision_gaussian_lineδV_rms [m/s] |
rv_precision_bouchy |
synthetic: Gaussian absorption λ₀ = 5050 Å, depth 500 on 1000, s = 0.5 Å, Δλ = 0.01 Å, σ_F = 10 | 89.18 — Bouchy, Pepe & Queloz 2001, A&A 374, 733, Eq. 6 (δV_rms = c / √ΣW) with Eq. 8 weights ; closed form for one Gaussian line δV = c σ_F √(2 s Δλ) / (λ₀ A π^{1/4}) = 89.18 m/s | 89.18982 | ±0.001 relative the closed form assumes λ ≈ λ₀ across the line and a continuous integral ; the discrete sum on a 0.01 Å grid differs by 1e-4 |
✓ Δ = +0.00982 |
osterbrock2006_oiii_te_ratio_100T_e([O III]) [K] |
oiii_electron_temperature |
synthetic: [O III] λ4959, λ5007 (ratio 2.98) and λ4363 Gaussians, (4959 + 5007) / 4363 = 100 | 12961 — Osterbrock & Ferland 2006, Astrophysics of Gaseous Nebulae and AGN, Eq. 5.4 : [j(4959) + j(5007)] / j(4363) = 7.90 exp(32900 / T) ⇒ R = 100 gives T = 32900 / ln(100 / 7.90) = 12 961 K | 12961.39 | ±100 absolute dT/dR = −51 K per unit of R at R = 100 : 100 K allows a 2 % error on the fitted doublet ratio (recovered to 1e-9 on this noise-free input) |
✓ Δ = +0.393 |
proxauf2014_sii_density_ratio_1n_e([S II]) [cm⁻³] |
sii_electron_density |
synthetic: equal [S II] λ6716 and λ6731 Gaussians (R = 1.0) | 449 — Proxauf, Öttl & Kimeswenger 2014, A&A 561, A10 — log n_e = 0.0543 tan(−3.0553 R + 2.8506) + 6.98 − 10.6905 R + 9.9186 R² − 3.5442 R³ evaluated at R = F(6716)/F(6731) = 1.0 ⇒ log n_e = 2.653, 449 cm⁻³ | 449.3936 | ±0.05 relative d(log n_e)/dR = −1.66 at R = 1 : 5 % on n_e is a 1.3 % error on the fitted line ratio, generous for a noise-free input and the 3-digit published value |
✓ Δ = +0.394 |
kauffmann2003_bpt_demarcation_x_minus_0p5log([O III]/Hβ) on the Kauffmann line at log([N II]/Hα) = −0.5 |
bpt_line_ratios |
synthetic: bisection of the classifier at log([N II]/Hα) = −0.5 | 0.1909 — Kauffmann et al. 2003, MNRAS 346, 1055, Eq. 1 : log([O III]/Hβ) = 0.61 / (log([N II]/Hα) − 0.05) + 1.3 ⇒ 0.1909 at x = −0.5 | 0.1909091 | ±0.001 absolute the bisection resolves the HII / Composite edge to 1e-15 ; 1e-3 is the rounding |
✓ Δ = +9.09e-06 |
kewley2001_bpt_demarcation_x_minus_0p5log([O III]/Hβ) on the Kewley line at log([N II]/Hα) = −0.5 |
bpt_line_ratios |
synthetic: bisection of the classifier at log([N II]/Hα) = −0.5 | 0.5611 — Kewley et al. 2001, ApJ 556, 121, Eq. 5 (maximum starburst line) : log([O III]/Hβ) = 0.61 / (log([N II]/Hα) − 0.47) + 1.19 ⇒ 0.5611 at x = −0.5 | 0.561134 | ±0.001 absolute the bisection resolves the Composite / AGN edge to 1e-15 ; 1e-3 is the rounding |
✓ Δ = +3.4e-05 |
kasten_young1989_airmass_60degairmass X(z = 60°) |
atmospheric_extinction_correct |
synthetic: kasten_young_airmass(60°), the brick's geometry path | 1.994293 — Kasten & Young 1989, Appl. Opt. 28, 4735, Eq. 3 : X = 1 / [cos z + 0.50572 (96.07995 − z)^−1.6364] with z in degrees | 1.994293 | ±1e-05 absolute closed form evaluated in double precision ; 1e-5 is the rounding of the value |
✓ Δ = -1.47e-07 |
kpno_extinction_node_5504k(5504 Å) = 2.5 log₁₀(F_corr / F) [mag/airmass] |
atmospheric_extinction_correct |
synthetic: unit flux at 5504 Å corrected at airmass 1 | 0.15 — IRAF onedstds$kpnoextinct.dat (KPNO mean extinction curve, 82 nodes) : k(5504 Å) = 0.150 mag/airmass | 0.15 | ±1e-06 absolute 5504 Å is a node of the table, so no interpolation : exact to rounding |
✓ Δ = +8.33e-17 |
ccm89_deredden_factor_5500F_dereddened / F at 5500 Å |
deredden_interstellar |
synthetic: unit flux at 5500 Å, E(B−V) = 0.1, R_V = 3.1, law CCM89 | 1.33 — Cardelli, Clayton & Mathis 1989, ApJ 345, 245 : R_V = 3.1, E(B−V) = 0.1 ⇒ A_V = 0.31, A(5500)/A_V = 0.99885 ⇒ 10^(0.4 · 0.30964) = 1.3300 | 1.330018 | ±0.001 absolute the published factor is quoted to 4 digits ; skipped when dust_extinction is absent |
✓ Δ = +1.76e-05 |
vollmann2006_ew_error_gaussian_absorptionσ(EW) [Å] |
equivalent_width |
synthetic: Gaussian absorption depth 0.4, FWHM 8 Å on continuum 100, σ_F = 1 (S/N = 100), 0.1 Å sampling, ±60 Å window | 1.6595 — Vollmann & Eversberg 2006, AN 327, 862, Eq. 7 : σ(EW) = √(1 + F̄_c / F̄) · (Δλ − EW) / (S/N), evaluated with the analytic EW = 3.4063 Å and Δλ = 119.9 Å | 1.659459 | ±0.001 relative the brick uses the measured EW and mean flux ; both agree with the analytic values to 1e-5 on a 0.1 Å grid |
✓ Δ = -4.11e-05 |
dravins1990_q1_epsilon_0p6q₁(ε = 0.6) |
vsini_fourier |
synthetic: q1_first_zero(0.6), the brick's calibration polynomial | 0.66 — Dravins, Lindegren & Torkelsson 1990, A&A 237, 137 (q₁(ε) polynomial) ; Gray 2005, The Observation and Analysis of Stellar Photospheres, ch. 18 : q₁ = 0.660 for ε = 0.6 | 0.6600304 | ±0.001 absolute Gray's tabulated value has three decimals |
✓ Δ = +3.04e-05 |
greisen2006_wave_log_axisλ(pixel 2) [Å] |
read_fits |
synthetic: header CTYPE1 = WAVE-LOG, CRVAL1 = 5000, CDELT1 = 1, CRPIX1 = 1 | 5001 — Greisen, Calabretta, Valdes & Allen 2006, A&A 446, 747 (WCS Paper III), the WAVE-LOG axis λ = λ_r exp(w / λ_r) ⇒ 5000 exp(1/5000) = 5001.0001 Å | 5001 | ±5e-05 absolute half of the last digit of the published value (the axis is exact to 1e-12) |
✓ Δ = +6.67e-09 |
Real data: CALSPEC spectrophotometric standards¶
| Case | Algorithm | Dataset | Published value (source) | Measured | Tolerance | Status |
|---|---|---|---|---|---|---|
vega_halpha_rest_centrerest-frame air λ(Hα) [Å] |
fit_gaussian_line |
vega_calspec |
6562.79 — NIST ASD Hα 6562.79 Å (air) ; fitted on CALSPEC alpha_lyr_stis_011 after vacuum_to_air and corrected for RV = −13.9 km/s (Evans 1967, IAU Symp. 30, 57) | 6562.533 | ±4.9 absolute half the fixture's FWHM column at the line (9.76 Å, STIS G750L segment) ; the fit lands within 0.3 Å |
✓ Δ = -0.257 |
vega_hbeta_rest_centrerest-frame air λ(Hβ) [Å] |
fit_gaussian_line |
vega_calspec |
4861.35 — NIST ASD Hβ 4861.35 Å (air) ; fitted on CALSPEC alpha_lyr_stis_011 after vacuum_to_air and corrected for RV = −13.9 km/s (Evans 1967, IAU Symp. 30, 57) | 4861.133 | ±2.75 absolute half the fixture's FWHM column at the line (5.49 Å, STIS G430L segment) |
✓ Δ = -0.217 |
vega_hgamma_rest_centrerest-frame air λ(Hγ) [Å] |
fit_gaussian_line |
vega_calspec |
4340.47 — NIST ASD Hγ 4340.47 Å (air) ; fitted on CALSPEC alpha_lyr_stis_011 after vacuum_to_air and corrected for RV = −13.9 km/s (Evans 1967, IAU Symp. 30, 57) | 4340.429 | ±2.75 absolute half the fixture's FWHM column at the line (5.50 Å, STIS G430L segment) |
✓ Δ = -0.0411 |
vega_hdelta_rest_centrerest-frame air λ(Hδ) [Å] |
fit_gaussian_line |
vega_calspec |
4101.73 — NIST ASD Hδ 4101.73 Å (air) ; fitted on CALSPEC alpha_lyr_stis_011 after vacuum_to_air and corrected for RV = −13.9 km/s (Evans 1967, IAU Symp. 30, 57) | 4101.508 | ±2.75 absolute half the fixture's FWHM column at the line (5.50 Å, STIS G430L segment) |
✓ Δ = -0.222 |
sun_halpha_hbeta_separationλ(Hα) − λ(Hβ) [Å] |
fit_gaussian_line |
sun_calspec |
1701.44 — NIST ASD Hα 6562.79 Å − Hβ 4861.35 Å = 1701.44 Å (air) ; fitted on CALSPEC sun_reference_stis_002 (Neckel & Labs 1984 segment) after vacuum_to_air | 1703.123 | ±10 absolute the fixture is sampled every 10 Å (20 Å above 6500 Å) with a 10 Å FWHM : half the coarser step ; the Na I D doublet (5.97 Å apart) is not resolved, so the Balmer separation is the pair this resolution allows |
✓ Δ = +1.68 |
vega_mk_type_pickles_chi2MK spectral type |
classify_template_chi2 |
vega_calspec |
A0V — Johnson & Morgan 1953, ApJ 117, 313 (α Lyr is the A0 V MK standard) ; templates from Pickles 1998, PASP 110, 863 |
- | exact match categorical ; runs only when the Pickles atlas is available locally (SPECTRO_PICKLES_ATLAS_DIR), it is neither bundled nor downloaded |
not run in this build: Pickles 1998 atlas not bundled (about 1 MB, ESO / CDS J/PASP/110/863 download) ; set SPECTRO_PICKLES_ATLAS_DIR to a directory of uk*.dat files to run this case |
sun_mk_type_pickles_chi2MK spectral type |
classify_template_chi2 |
sun_calspec |
G2V — Morgan & Keenan 1973, ARA&A 11, 29 (the Sun as G2 V) ; templates from Pickles 1998, PASP 110, 863 |
- | exact match categorical ; runs only when the Pickles atlas is available locally (SPECTRO_PICKLES_ATLAS_DIR), it is neither bundled nor downloaded |
not run in this build: Pickles 1998 atlas not bundled (about 1 MB, ESO / CDS J/PASP/110/863 download) ; set SPECTRO_PICKLES_ATLAS_DIR to a directory of uk*.dat files to run this case |
Not measurable on these fixtures¶
Checks that were considered and cannot be made with the current fixtures, recorded so nobody re-tries them without a better input.
| Measurement | Dataset | Why not |
|---|---|---|
| Na I D doublet separation (5895.92 − 5889.95 = 5.97 Å, NIST) | sun_calspec |
the solar composite is sampled every 10 Å with a 10 Å FWHM (Neckel & Labs 1984 segment) : the doublet is a single dip at 5896 Å |
| Ca II H & K S-index (1.09 Å triangular cores, Vaughan et al. 1978) | sun_calspec |
the H and K cores are one 10 Å sample each in the Woods et al. 1996 segment ; the index needs a resolution of ~1 Å |
| Hγ and Hδ centres on the Sun | sun_calspec |
at 10 Å sampling the G band (CH, 4300 Å) and the crowded Fe I / Ca I region dominate the fit windows ; only Hα and Hβ give a clean absorption fit |
| Tonry & Davis 1979 r-value of a cross-correlation peak | synthetic |
the paper defines r = h / (√2 σ_a) but tabulates no value for a reference spectrum pair ; nothing published to compare with |