# Measured Vega spectrum for Spectrum Detective

This derivative contains **270 calibrated HST/STIS samples**, in four optical windows around Hδ, Hγ, Hβ and Hα. It is not the adjustable teaching model, a synthetic atmosphere spectrum, or raw detector counts.

Credit: NASA/ESA Hubble Space Telescope; STIS; STScI/CALSPEC; Ralph Bohlin and collaborators. Public HST calibration data are used under the [MAST data-use policy](https://archive.stsci.edu/publishing/data-use), preserving the originating mission and data-author credit. CALSPEC is identified in MAST's [Reference Atlases collection](https://archive.stsci.edu/hlsp/reference-atlases). No source paper, third-party image or synthetic spectral extension is redistributed. Data attribution remains separate from this repository's MIT code license.

Source: [alpha_lyr_stis_012.fits](https://ssb.stsci.edu/trds/calspec/alpha_lyr_stis_012.fits), HD 172167 (Vega), CALSPEC product dated 16 March 2026; retrieved 28 September 2026. SHA-256: `7201cd8566d53d384430c3d5fd2ae8d8122e9a7f765711748b49336f63237672`.

The FITS pedigree identifies the 1675–10200 Å region as STIS observations. The selected windows (400–420, 424–444, 476–496, 644–669 nm, endpoints inclusive) lie entirely in that region. Model-based extensions elsewhere in the composite file are excluded. Instrument corrections and the HST flux calibration precede this extraction. G430L inputs are o8i105060, o8i106010 and o8i106040; G750L inputs are o8i105070 and o8i106050, obtained on days 181 and 235 of 2003.

All 270 selected rows have CALSPEC DATAQUAL = 1, defined by this product as good. This is not the raw STIS detector bit-mask convention. No selected row is removed or replaced. There is no interpolation across the gaps between windows.

| Column | Unit and meaning |
| --- | --- |
| wavelength_vacuum_nm | Supplied heliocentric vacuum wavelength, Å divided by 10; not shifted to Vega's rest frame |
| flux_per_angstrom | Calibrated spectral flux density in erg s⁻¹ cm⁻² Å⁻¹ |
| statistical_error_per_angstrom | Supplied STATERROR, in the same flux-density units |
| systematic_error_per_angstrom | Supplied SYSERROR, in the same flux-density units |
| fwhm_nm | Supplied spectral FWHM in Å divided by 10 |
| data_quality | Supplied CALSPEC DATAQUAL, always 1 in this excerpt |
| exposure_seconds | Supplied TOTEXP, seconds |

The page plots FLUX and STATERROR divided by 10⁻⁹, with the units stated. It does **not** convert per-Å density into per-nm density or normalize the continuum. The four panels use different labeled vertical ranges. Error bars are often smaller than dots; the download retains the full numeric values. SYSERROR is separate: the FITS header specifies 1% of flux and warns that it may be larger. These columns do not supply a complete covariance model. The resolution FWHM is about 0.55 nm in the three blue windows and 0.98 nm at Hα, so adjacent pixels are not independent resolution elements.

No binning, smoothing, fitting, Doppler correction, continuum normalization or resampling is performed. HST observes above the atmosphere, excluding ground-based telluric absorption; broad stellar profiles and unresolved blends remain. The lowest sampled flux is not a fitted line centre. This beginner excerpt is for recognizing a multi-line pattern, not deriving Vega's radial velocity or elemental abundances.

Scientific references:

- Bohlin, R. C., and Gilliland, R. L. (2004), *AJ* **127**, 3508–3515, §§ 2 and 4, [doi:10.1086/420715](https://doi.org/10.1086/420715).
- Bohlin, R. C., Hubeny, I., and Rauch, T. (2020), *AJ* **160**, 21, [doi:10.3847/1538-3881/ab94b4](https://doi.org/10.3847/1538-3881/ab94b4), the flux-scale source named in the FITS header.
- STScI (2026), [CALSPEC documentation](https://www.stsci.edu/hst/instrumentation/reference-data-for-calibration-and-tools/astronomical-catalogs/calspec), composition and heliocentric vacuum-wavelength convention; source FITS headers specify this product's exact pedigree, columns and quality values.

Reproduce from the retained input with Python 3 standard library, from the repository root:

```sh
python3 scripts/universe/prepare-spectrum-data.py --input scripts/universe/fixtures/alpha_lyr_stis_012.fits
```

Add `--check` to compare without writing. `--download` explicitly retrieves the identified source product; acquisition is never part of a site build or page request. The parser checks the complete source digest, target, product, binary row layout and finite values before extracting data. `node scripts/test-universe-spectrum.mjs` independently decodes the selected FITS rows and checks the CSV/JSON pair as well as the separate Doppler model.
