Hands-on classroom repository for the seminar module Carbon-neutral global pathways: from greenhouse-gas emissions to global temperature.
Students adjust simple global emissions pathways and generate temperature curves through 2100. The practical challenge is to find a scenario that is at or below 1.5 degC warming in 2100 relative to 1850-1900, while also checking whether the pathway temporarily overshoots 1.5 degC before 2100.
After this folder is pushed to GitHub, open:
https://colab.research.google.com/github/<ORG>/<REPO>/blob/main/notebooks/01_pathway_lab.ipynb
In Colab, run the first setup cell, then run all cells. If FaIR is unavailable, the notebook automatically uses the transparent teaching emulator.
cd carbon_pathway_lab
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m src.run_classroom --controls data/student_scenario_controls.csv --out results/Open the generated outputs:
results/pathway_timeseries.csvresults/temperature_results.csvresults/pathway_summary.csvresults/temperature_curves.pngresults/emissions_curves.png
For a 35-45 minute exercise:
- Open
notebooks/01_pathway_lab.ipynband run the default scenarios. - Ask students to copy or edit one row in
data/student_scenario_controls.csv. - Re-run the notebook or command line script.
- Compare 2100 temperature, peak temperature, first overshoot year, and cumulative net CO2.
- Discuss which lever mattered most: CO2 decline, methane decline, N2O decline, or CDR.
python -m src.run_classroom --controls data/student_scenario_controls.csv --out results/Optional fallback-only run:
python -m src.run_classroom --controls data/student_scenario_controls.csv --out results/ --force-fallbackcarbon_pathway_lab/
README.md
requirements.txt
environment.yml
.devcontainer/devcontainer.json
data/
notebooks/
src/
tests/
results/
The data files are classroom-ready teaching inputs provided by the instructor package.
ar6_spm1_ghg_emissions_key_points.csv: IPCC AR6 WGIII Figure SPM.1 key points for 1990, 2000, 2010, and 2019 in GtCO2-eq using AR6 GWP100.derived_physical_emissions_for_teaching.csv: approximate conversion of CH4 and N2O CO2-eq values to physical mass using GWP100 values.noaa_2024_ghg_concentrations.csv: 2024 global concentrations from NOAA AGGI.current_temperature_anchors.csv: current warming anchors from Copernicus, WMO, and NASA references.student_scenario_controls.csv: high-level controls students edit.student_scenario_template_timeseries.csv: annual 2020-2100 example trajectories generated from controls.source_index.csv: source URLs used in the module.
The wrapper function is:
from src.run_classroom import run_pathways
outputs = run_pathways("data/student_scenario_controls.csv", "results/")run_pathways calls run_fair_or_fallback(...). It first attempts to import and use FaIR. If FaIR is unavailable or cannot be configured from the simplified teaching inputs, the code prints a clear warning and runs simple_emulator.py.
The fallback emulator is not research-grade. It is included so class does not fail because of package installation or calibration-data issues. It uses:
- approximate CO2 warming from cumulative net CO2 since 2020 using a TCRE-style parameter;
- smoothed non-CO2 warming from CH4, N2O, and aggregate F-gas trajectories;
- calibration to a 2025 temperature anchor of 1.47 degC above 1850-1900.
Research-grade or graded quantitative work should use FaIR with RCMIP/AR6 emissions inputs and calibrated configurations.
- The instructor data use teaching-level simplifications, including CO2-eq values and approximate GWP conversions.
- FaIR normally expects complete physical emissions or concentrations for many species, not only aggregate classroom categories.
- F-gases are treated as an aggregate CO2-eq forcing proxy in the fallback.
- Staying below 1.5 degC in 2100 is not the same as never exceeding 1.5 degC. The plots and summary table report both 2100 temperature and overshoot years.
- Gross CDR is shown as a pathway control, but the temperature calculation uses net CO2 for cumulative CO2 warming.
- IPCC AR6 WGIII Figure SPM.1: https://www.ipcc.ch/report/ar6/wg3/figures/summary-for-policymakers/figure-spm-1/
- Data DOI for Figure SPM.1: https://doi.org/10.48490/vfxm-tm28
- IPCC AR6 WGI Annex III: https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_AnnexIII.pdf
- Annex III Zenodo data: https://doi.org/10.5281/zenodo.5705391
- AR6 Scenario Explorer: https://data.ene.iiasa.ac.at/ar6/
- NOAA AGGI: https://gml.noaa.gov/aggi/aggi.html
- NASA GISTEMP: https://data.giss.nasa.gov/gistemp/
- Copernicus 2025 temperature summary: https://climate.copernicus.eu/copernicus-2025-was-third-hottest-year-record
- WMO 2025 temperature summary: https://wmo.int/news/media-centre/wmo-confirms-2025-was-one-of-warmest-years-record
- FaIR basic example: https://docs.fairmodel.net/en/latest/examples/basic_run_example.html
- FaIR CMIP6 SSP emissions example: https://docs.fairmodel.net/en/v2.2.1/examples/cmip6_ssp_emissions_run.html
- FaIR PyPI: https://pypi.org/project/fair/
- FaIR GitHub: https://github.com/OMS-NetZero/FAIR
python -m pip install -r requirements.txt
pytest
python -m src.run_classroom --controls data/student_scenario_controls.csv --out results/ --force-fallback