This repository includes Jupyter notebooks and data for reproducing figures anlyzing the effect of temporal lags in CDR. A paper with these figures is currently posted as a preprint:
B. Cabiyo, F. Chay, C. Field, K. Fingerman, Z. Hausfather, K. Hemes, and C. M. Zarakas. Consistent temporal accounting supports credible CDR use. Preprint DOI: 10.70212/cdrxiv.2026302v1
- Python ≥ 3.13
- Key packages:
fair(>2.2.3),numpy(>2.3.4),pandas(>2.3.3),matplotlib(>3.10.7),seaborn(>0.13.2),jupyter(>1.1.1) - See
pyproject.tomlfor the full dependency list
The code has been tested on macOS 26.2 (Tahoe). It should work on any system that supports Python ≥ 3.13.
No non-standard hardware is required. All notebooks run on a standard personal computer.
Clone the repo:
git clone https://github.com/carbonplan/carbonplan-srm.git
Install uv:
This package uses uv for environment management.
curl -LsSf https://astral.sh/uv/install.sh | sh
Install the dependencies:
uv sync --all-groups
Typical install time is about 1 minute on a normal personal computer. You can alternatively install dependencies manually and then install the package:
pip install -e .
Run the notebooks in the nbs/ directory in numbered order. The 0_ prefixed notebooks generate input data, and the 1_ prefixed notebooks run the FaIR model simulations:
0_Generate_data_for_figures_1_and_2.ipynb: constructs the stylized CDR lag profiles0_Modify_emissions_input_files.ipynb: prepares modified SSP1-2.6 emissions inputs1_Run_FaIR_for_figure_3.ipynb: runs FaIR for the 20-year pulse experiments1_Run_FaIR_for_figure_4.ipynb: runs FaIR for the continuous deployment experimentsFigure_1.ipynbthroughFigure_4.ipynb: generates the manuscript figures
Running the notebooks reproduces Figures 1–4 and Table S1 from the manuscript. Figures are rendered inline in the notebooks and saved in /temporal-lags/figures/
The full analysis should take less than 15 minutes on a normal personal computer, depending on hardware. The FaIR ensemble simulations (841 ensemble members × multiple scenarios) account for most of the run time.
To apply different lag profiles or emissions scenarios, modify the parameters in 0_Generate_data_for_figures_1_and_2.ipynb (lag duration, functional form, emissions fraction) or replace the SSP pathway in 0_Modify_emissions_input_files.ipynb. The FaIR notebooks can then be re-run with the updated inputs.
To reproduce all quantitative results in the manuscript, run the notebooks in nbs/ sequentially as described above. Input data are provided in data/ and model outputs are written to data/outputs/.
data/CDR_1.5deg_Fuhrman.csv— CDR deployment time series from Fuhrman et al. (2024)data/original/— original SSP1-2.6 emissions input files for FaIRdata/modified/— modified emissions inputs with lagged CDR profiles applieddata/outputs/— FaIR model output data
All the code in this repository is MIT-licensed, meaning you are free to use, modify, and redistribute it, provided you include the original license and copyright notice.