Skip to content

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_continuum
DER_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_fwhm
Voigt 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_100
T_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_1
n_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_0p5
log([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_0p5
log([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_60deg
airmass 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_5504
k(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_5500
F_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_0p6
q₁(ε = 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_centre
rest-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_centre
rest-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_centre
rest-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_centre
rest-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_chi2
MK 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_chi2
MK 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