GCB 2025 emissions, IGCC 2025 budgets with peak-warming bands, LULUCF v4, start years from 1850; budget rebase fixes - #22
Merged
Conversation
…LULUCF Data Hub v4, start years from 1850; fix bunker accounting in the budget rebase Adds gcb-2025 (national fossil CO2, 1850-2024) and melo-2026-v4 (LULUCF Data Hub v4.0.0) as opt-in sources. Adds RCB sources forster_2026 and ar6_wg1_2021 with peak-warming-band scenario selection and rebase_fill_max_years. Allocation years start at 1850; the parameter grid checks pre-allocation years against the data. Fixes the bunker accounting in the budget rebase, the world co2 series in the NGHGI builder, and the last observed bunker year. calculate_budget_from_rcb raises an error when years are missing.
…that test values Fixes the circular import when fair_shares.library.config is the first import in a process (new test_import_order). calculate_budget_from_rcb now names the missing years and the last available year, and counts a missing value as a missing year. A budget label without a numeric temperature raises a ConfigurationError that names the label. rebase_fill_max_years must be a non-negative integer. Docs corrections across the science and user guides.
Adjusted co2 budgets of RCB sources with a baseline after 2020 were too low. The rebase adds observed LULUCF in the NGHGI convention for 2020 to the year before the baseline, and the BM-to-NGHGI convention gap also started in 2020, so the conversion was applied twice for those years. The gap now runs from the source baseline year to net zero (Weber et al. 2026, Eqs. 2-3). Notebook 104 writes one median gap per baseline year.
…efore the scenario step Allows the co2 category with a co2-ffi-only emissions source (gcb-2025) and an active LULUCF source (melo-2026-v4). Notebook 107 derives co2 as co2-ffi plus national-inventory LULUCF and skips non-CO2 categories the source cannot supply. The scenario rule now depends on notebook 107, so notebook 104 no longer writes a zero convention gap. process_rcb_to_2020_baseline raises an error for a co2 budget with a baseline after 2020 when it gets no inventory LULUCF series.
…GDP update Regenerates the three distributed_*.parquet python-API fixtures. Moves the fixture sources and source-id derivation into tests/fixtures/python_api_sources.py, shared by the fixture script and the reproduction test. The reproduction test takes the Gini source from that shared module.
…ale comments) The pathway-mode scenario rule also reads the co2 NGHGI series as its emissions input (Snakefile). Notebook 100 comment names the peak-warming band as a scenario set. Replaces TODO comments in notebooks 602 and 604 with plain statements of the historical start year. The fixture script scope change is committed with the fixture refresh in the previous commit.
…onfig re-runs when the packaged source table changes A country is an analysis country for gcb-2025 only if the source records emissions for it before 1990 and its population series starts in 1850. Nine countries join rest-of-world (AND, LSO, TUV, NAM, FSM, MHL, PLW, TLS, MAC). Global budget tables and every PRIMAP output are unchanged. compose_config declares the packaged data-source table as an input.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds three opt-in data sources and one deduction rule, lifts three limits on early start years, and corrects three accounting errors in the budget rebase. Defaults stay as they are (PRIMAP emissions,
melo-2026LULUCF, the existing budget sources and their AR6 category mapping).Results change for existing budget sources. Adjusted budgets for sources with a baseline after 2020 rise.
ar6_2020and every allocation share are unchanged.co2-ffibeforeco2beforelamboll_20231.5p50forster_20241.5p50ar6_2020(all labels)Values are Mt CO2 from 2020, PRIMAP with
melo-2026.Decisions for the reviewer
rcbs.yamlshould become a declared pipeline input (follow-up 1).Added
gcb-2025emissions source. Global Carbon Budget 2025 national fossil CO2, 1850 to 2024 (Andrew and Peters flat file, doi:10.5281/zenodo.17417124; Friedlingstein et al. 2026, doi:10.5194/essd-18-3211-2026).co2-ffionly. Blank years count as zero. The world row excludes international bunkers and the 1991 Kuwaiti oil fires. Bunkers come from the same file.gcb-2025. A country is an analysis country only if the source records emissions for it before 1990 and its population series starts in 1850. Nine countries join rest-of-world. The rule is acoverage:block on the source; a source without the block behaves as before.forster_2026andar6_wg1_2021budget sources (Indicators of Global Climate Change 2025, doi:10.5194/essd-18-3889-2026, Table 8; AR6 WGI Table SPM.2, doi:10.1017/9781009157896.001) for 1.5, 1.7 and 2°C.rebase_fill_max_yearsyears (default 1), with a warning each time.melo-2026-v4LULUCF source. NGHGI LULUCF Data Hub v4.0.0, 2000 to 2024 (doi:10.5281/zenodo.22828743).gcb-2025withmelo-2026-v4forco2runs end to end. The LULUCF step now runs before the scenario step.Changed
capability_reference_yearset, the budget approaches require GDP only at that year.co2follows the first year of the frame that is passed.Fixed
lamboll_2023), +3,959 Mt (forster_2024).co2. The rebase adds observed inventory LULUCF for 2020 to the baseline, and the gap also converted bookkeeping to inventory from 2020, so those years were converted twice. The gap now runs from the baseline year (Weber et al. 2026, doi:10.1038/s41467-026-69078-9, Methods, Eqs. 2 and 3). Effect: about +19 to +26 Gt for the two post-2020 sources.co2series no longer subtracts bunkers from a fossil series that already excludes them.fair_shares.library.config.modelsis the first import.compose_configre-runs when the packaged data-source table changes.co2rebase.Tests
821 passed, 16 deselected on the branch head. The first two commits introduce test files in their final form, so those two commits are not green on their own.
tests/fixtures/python_api/is refreshed in its own commit. The earlier fixtures predated the August Gini-membership and GDP update.Follow-ups, not in this PR
rcbs.yamlis read by the RCB notebook and is not a declared input of any pipeline rule, so an edit to it does not trigger a re-run.AFOLU|Directflux and the gap is a median across scenarios. Weber et al. use an observed bookkeeping-model mean for 2020 to 2023 and a mean across scenarios. The docs state both differences.