Source code for lazuli_exo.presets

"""Showcase planets x scenarios expressed as simulate() parameters."""
from .targets import PLANET_NAMES, get_target  # noqa: F401  (re-exported)

# Mirrors precompute/scenarios.py: cloudy = gray deck at 1 mbar; hazy =
# MacMad17 haze with log_a = 2 (100x H2 Rayleigh at 0.35 um), slope -6;
# high_metallicity = 100x solar; flat = deck at 10 nbar, above every line
# core on the grid (1e-7 bar ceiling), so the Ein deck tail leaves < 10 ppm.
SCENARIO_PARAMS = {
    "clear": dict(log_met=0.0, c_to_o=0.55, log_P_cloud_bar=None,
                  log_a_haze=None, haze_slope=-4.0),
    "cloudy": dict(log_met=0.0, c_to_o=0.55, log_P_cloud_bar=-3.0,
                   log_a_haze=None, haze_slope=-4.0),
    "high_metallicity": dict(log_met=2.0, c_to_o=0.55, log_P_cloud_bar=None,
                             log_a_haze=None, haze_slope=-4.0),
    "hazy": dict(log_met=0.0, c_to_o=0.55, log_P_cloud_bar=None,
                 log_a_haze=2.0, haze_slope=-6.0),
    "flat": dict(log_met=0.0, c_to_o=0.55, log_P_cloud_bar=-8.0,
                 log_a_haze=None, haze_slope=-4.0),
}
SCENARIOS = sorted(SCENARIO_PARAMS)


[docs] def showcase(planet, scenario="clear"): """Full simulate() parameter dict for a frozen showcase target.""" t = get_target(planet) if scenario not in SCENARIO_PARAMS: raise KeyError(f"Unknown scenario {scenario!r}. Available: {SCENARIOS}") return dict(name=t["name"], scenario=scenario, T_eq_K=t["T_eq_K"], R_p_RJ=t["R_p_RJ"], M_p_MJ=t["M_p_MJ"], R_s_RSun=t["R_s_RSun"], teff_K=t["T_eff_K"], logg=t["log_g_star"], feh=t["Met_star"], mag=t["J_mag"], band="J", mag_system="vega", t14_s=t["t14_s"], mu=None, **SCENARIO_PARAMS[scenario])