Reference data¶
This page documents the reference datasets that PROTEUS uses at runtime: where they come from, what they contain, and how they are identified in config files. For instructions on switching between spectrum sources, see Switch and choose a stellar spectrum.
Automatic data download¶
PROTEUS downloads reference data from Zenodo on first run. Each dataset is provisioned by one of two mechanisms, named per dataset in the table below.
fwl-io. fwl-io pins a dataset to
a Zenodo version DOI declared in src/proteus/data/proteus_manifest.toml,
verifies every file against a checksum registry committed beside that manifest,
and places the files in a version directory named for the record, so a re-pinned
deposit lands beside its predecessor rather than overwriting it. Every request
carries a connect and read timeout, and a transient failure is retried with
backoff. Zenodo is currently the only mirror these datasets declare, so an
unreachable Zenodo means the fetch fails rather than falling back elsewhere.
The PROTEUS downloader. proteus.utils.data fetches a whole Zenodo record,
retrying a few times, and falls back to the corresponding project on the
Open Science Framework (OSF) when Zenodo is unavailable. A
Zenodo API token applies to this mechanism only; without one, public access is
used with lower rate limits.
| Dataset | Provisioned by | Downloaded by |
|---|---|---|
| Stellar spectra (solar, MUSCLES) | PROTEUS downloader | proteus get solar, proteus get muscles |
| PHOENIX synthetic spectra | PROTEUS downloader | proteus get phoenix |
| Stellar evolution tracks | PROTEUS downloader | proteus get stellar |
| Spectral k-tables | PROTEUS downloader | proteus get spectral |
| Surface albedos | PROTEUS downloader | proteus get surfaces |
| Scattering properties | PROTEUS downloader | proteus get scattering |
| Exoplanet populations, mass-radius curves | fwl-io | proteus get reference |
| Interior EOS tables, melting curves | PROTEUS downloader | proteus get interiordata |
To configure a Zenodo API token, see the Troubleshooting guide.
Stellar spectra¶
The spectrum source is set via star.mors.spectrum_source and
star.mors.star_name (or star.mors.star_path for a custom file).
See Switch and choose a stellar spectrum
for full usage instructions.
Solar spectra¶
Observed solar spectra are stored under $FWL_DATA/stellar_spectra/solar/.
The modern spectrum is from Gueymard (2003)
via NREL.
Historical and future spectra are from
Claire et al. (2012).
star_name |
Description | Age of Sun |
|---|---|---|
sun |
Modern NREL spectrum | 4.6 Gyr |
SunModern |
Alternative modern solar spectrum | 4.6 Gyr |
Sun0.6Ga |
0.6 Gyr ago | ~4.0 Gyr |
Sun1.8Ga |
1.8 Gyr ago | ~2.8 Gyr |
Sun2.4Ga |
2.4 Gyr ago | ~2.2 Gyr |
Sun2.7Ga |
2.7 Gyr ago | ~1.9 Gyr |
Sun3.8Ga |
3.8 Gyr ago | ~800 Myr |
Sun4.4Ga |
4.4 Gyr ago | ~200 Myr |
Sun5.6Gyr |
Future Sun | 5.6 Gyr |
star_name matching is case-insensitive.
MUSCLES / Mega-MUSCLES spectra¶
Observed UV–optical–IR spectra from the
MUSCLES and
Mega-MUSCLES surveys,
stored under $FWL_DATA/stellar_spectra/MUSCLES/ as <star_name>.txt.
star_name matching is case-insensitive.
Full star catalog
| Star | star_name |
Type | Teff (K) | Age | L (L☉) | M (M☉) | R (R☉) | Survey |
|---|---|---|---|---|---|---|---|---|
| Epsilon Eridani | v-eps-eri |
K2V | 5020 | 400–800 Myr | 0.32 | 0.82 | 0.759 | MUSCLES |
| GJ 1132 | gj1132 |
M4.5V | 3229 | — | 0.005 | 0.195 | 0.221 | Mega-MUSCLES |
| GJ 1214 | gj1214 |
M4V | 3100 | 5–10 Gyr | 0.00351 | 0.182 | 0.216 | MUSCLES |
| GJ 15 A | gj15a |
M1–M2V | ~3700 | — | ~0.021 | ~0.40 | ~0.38 | Mega-MUSCLES |
| GJ 163 | gj163 |
M3.5V | ~3300–3500 | ~2–10 Gyr | ~0.02 | ~0.40 | ~0.41 | Mega-MUSCLES |
| GJ 176 | gj176 |
M2.5V | ~3700 | ~4 Gyr | 0.034 | 0.51 | 0.48 | MUSCLES |
| GJ 436 | gj436 |
M2.5–M3V | ~3600 | ~6–15 Gyr | 0.023 | 0.44 | 0.42 | MUSCLES |
| GJ 551 (Proxima Cen) | gj551 |
M5.5Ve | ~2900–3000 | ~4.8 Gyr | 0.0015 | 0.12 | 0.14 | MUSCLES |
| GJ 581 | gj581 |
M3V | ~3500 | ~4 Gyr | ~0.012 | ~0.30 | ~0.30 | MUSCLES |
| GJ 649 | gj649 |
M1–M2V | ~3700 | — | ~0.044 | 0.51 | 0.50 | Mega-MUSCLES |
| GJ 667 C | gj667c |
M1.5V | ~3700 | >2 Gyr | ~0.014 | ~0.33 | ~0.32–0.42 | MUSCLES |
| GJ 674 | gj674 |
M2.5V | ~3400–3600 | ~0.5–3 Gyr | 0.017 | 0.35 | 0.36 | Mega-MUSCLES |
| GJ 676 A | gj676a |
M0V | ~3800–4000 | — | 0.083 | 0.63 | 0.65 | Mega-MUSCLES |
| GJ 699 (Barnard's Star) | gj699 |
M3.5–4V | ~3200–3300 | ~10 Gyr | 0.0035 | ~0.16 | ~0.19 | Mega-MUSCLES |
| GJ 729 (Ross 154) | gj729 |
M3.5V | ~3200–3300 | <1–2 Gyr | ~0.004–0.005 | ~0.18 | ~0.20 | Mega-MUSCLES |
| GJ 832 | gj832 |
M1–M3V | ~3500 | ~4–12 Gyr | ~0.03 | 0.45 | 0.45 | MUSCLES |
| GJ 832 (synthetic) | gj832_synth |
M1–M3V | ~3500 | ~4–12 Gyr | ~0.03 | 0.45 | 0.45 | MUSCLES |
| GJ 849 | gj849 |
M3.5V | 3467 | >3 Gyr | 0.02887 | 0.45 | 0.45 | Mega-MUSCLES |
| GJ 876 | gj876 |
M2–4V | ~3200–3300 | ~2–15 Gyr | ~0.013 | ~0.37 | ~0.37 | MUSCLES |
| HAT-P-12 | hat-p-12 |
K4V | 4500–4800 | 2–14 Gyr | ~0.20 | 0.74 | 0.70 | MUSCLES ext. |
| HAT-P-26 | hat-p-26 |
K1V | ~5050 | 4–12 Gyr | ~0.44 | 0.85 | 0.86 | MUSCLES ext. |
| HD 40307 | hd40307 |
K2.5V | ~4800–5000 | ~2–5 Gyr | ~0.22 | ~0.79 | ~0.71 | MUSCLES |
| HD 85512 | hd85512 |
M0V | ~4400 | ~6 Gyr | 0.17 | 0.69 | 0.69 | MUSCLES |
| HD 97658 | hd97658 |
K1V | 5212 | 3.9 Gyr | 0.351 | 0.773 | 0.728 | MUSCLES |
| HD 149026 | hd-149026 |
G0V | ~6100–6200 | ~2–3 Gyr | ~2.6 | ~1.14 | ~1.46 | MUSCLES ext. |
| L 98-59 | l-98-59 |
M3V | 3415 | ~5 Gyr | 0.012 | 0.292 | 0.316 | Mega-MUSCLES |
| L 678-39 (GJ 357) | l-678-39 |
M2.5V | ~3500 | — | 0.0017 | ~0.34 | ~0.34 | MUSCLES ext. |
| L 980-5 | l-980-5 |
M4V | — | — | — | — | — | Mega-MUSCLES |
| LHS 2686 | lhs-2686 |
M5V | — | — | — | — | — | Mega-MUSCLES |
| LP 791-18 | lp-791-18 |
M6V | ~2960 | >0.5 Gyr | ~0.002 | 0.139 | 0.182 | MUSCLES ext. |
| TOI-193 (LTT 9779) | toi-193 |
G7V | ~5400–5500 | ~2 Gyr | ~0.7 | ~1.0 | ~0.95 | MUSCLES ext. |
| TRAPPIST-1 | trappist-1 |
M8V | 2566 | ~8 Gyr | 0.000553 | 0.0898 | 0.1192 | Mega-MUSCLES |
| WASP-17 | wasp-17 |
F4–F6V | ~6550 | ~3 Gyr | ~4 | 1.35 | 1.57 | MUSCLES ext. |
| WASP-43 | wasp-43 |
K7V | ~4100 | ~7 Gyr | ~0.15 | ~0.65 | ~0.76 | MUSCLES ext. |
| WASP-77 A | wasp-77a |
G8V | ~5600 | ~6 Gyr | ~0.74 | ~0.90 | ~0.91 | MUSCLES ext. |
| WASP-127 | wasp-127 |
G5 | ~5600–5800 | ~10–12 Gyr | ~1.8 | ~0.95–1.10 | ~1.3 | MUSCLES ext. |
PHOENIX synthetic spectra¶
Med-resolution synthetic spectra from the PHOENIX library, stored under
$FWL_DATA/stellar_spectra/PHOENIX/<FeH>_<alpha>/. Each subdirectory
corresponds to one metallicity–alpha combination (e.g. FeH-0.5_alpha+0.0/).
Parameters defining the PHOENIX grid:
| Parameter | Config key | Unit | Default |
|---|---|---|---|
| Effective temperature | phoenix_Teff |
K | Derived from MORS tracks |
| Surface gravity | phoenix_log_g |
log\(_{10}\) (cgs) | Derived from MORS tracks |
| Stellar radius | phoenix_radius |
R\(_\odot\) | Derived from MORS tracks |
| Metallicity | phoenix_FeH |
[Fe/H] dex | 0.0 (solar) |
| Alpha enhancement | phoenix_alpha |
[α/Fe] dex | 0.0 (solar) |
Any parameter set to "none" in the config is derived from the MORS
stellar evolution tracks using star.mass. Grid inputs are automatically
rounded to the nearest available grid point.
Custom stellar spectrum¶
A user-supplied spectrum is loaded when star.mors.star_path is set. It
overrides spectrum_source, star_name, and all phoenix_* parameters.
Environment variables (e.g. $FWL_DATA, $HOME) in the path are expanded
at load time.
Required file format:
| Column | Quantity | Unit |
|---|---|---|
| 1 | Wavelength | nm |
| 2 | Flux | erg s\(^{-1}\) cm\(^{-2}\) nm\(^{-1}\) |
The spectrum must be scaled to a distance of 1 AU. Comment lines begin
with #.
Spectral files¶
Correlated-k opacity tables used by the atmosphere climate modules
(AGNI, JANUS). Selected via atmos_clim.spectral_group and
atmos_clim.spectral_bands in the config. Stored under
$FWL_DATA/spectral_files/<group>/<bands>/.
For a full description of each group's spectral coverage and gas
species, see docs/assets/spectral_files.pdf in the PROTEUS repository.
| Group | Available band counts | Notes |
|---|---|---|
Honeyside |
16, 48, 256, 4096 | Default; broad gas coverage |
Dayspring |
16, 48, 256, 4096 | |
Frostflow |
16, 48, 256, 4096 | |
Oak |
318 |
The default configuration uses Honeyside / 48. Higher band counts
increase spectral resolution and runtime cost.
Surfaces¶
Single-scattering albedo data from Hammond et al. (2024): Zenodo record 13691960.
Available surface types can be listed with:
ls $FWL_DATA/surface_albedos/Hammond24
Exoplanet population data¶
Obtained from the DACE PlanetS database (Parc et al., 2024).
Fetched through fwl-io into
$FWL_DATA/observe/exoplanet_reference/r<record-id>/, where <record-id> is
the Zenodo record the manifest pins. The population diagram resolves this
directory from the pin, so the version segment never has to be typed by hand.
The catalogue is decorative for a simulation: when it is absent or cannot be
downloaded, the population diagram is skipped with a warning rather than
failing the run.
A copy under $FWL_DATA/planet_reference/Exoplanets is not read and can be
deleted.
Mass-radius relations¶
Theoretical mass-radius curves for a range of interior and atmospheric structures, from Zeng et al. (2019), taken from the author's planet model tables.
Fetched through fwl-io into
$FWL_DATA/observe/mass_radius/zeng_2019/r<record-id>/, on the same terms as
the exoplanet catalogue above. A copy under $FWL_DATA/mass_radius/Zeng2019 is
not read and can be deleted.
Equations of state¶
The interior structure solver of PROTEUS, Zalmoxis, uses equation-of-state tables by Seager et al. (2007), and from PALEOS by Attia et al. (2026). An overview of equation of state tables can be found here.