Python
Installation¶
While the Python package has not been released yet, you have to install it from GitHub source using:
# When using poetry.
poetry add git+https://github.com:PhilippVerpoort/scenario-vetting-criteria.git
# When using pip.
pip install git+https://github.com:PhilippVerpoort/scenario-vetting-criteria.git
Editions¶
The package contains definition files for the criteria for different editions. You can import the editions dict from the root of the package to see what editions are available.
from scenario_vetting_criteria import editions
print("\n".join(editions))
2026-02-01 2026-06-01
Load functions¶
Instead of loading the data from these files manually, it is recommended to use the built-in load functions from the package via load_criteria. For instance, the following will load the definition of the thresholds values.
from scenario_vetting_criteria import load_criteria
load_criteria("criteria-thresholds")
| criterion | variable | region | year | reference_data | unit | level_of_concern | lower | upper | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | Sustainability Concern|Food Availability | Food Availability [per capita] | World | NaN | NaN | kcal/cap/day | medium | 2100.0 | 5000.0 |
| 1 | Sustainability Concern|Biodiversity | Terrestrial Biodiversity|BII, Terrestrial Biod... | World | 2030 | NaN | %/yr | medium | NaN | 0.0 |
| 2 | Sustainability Concern|Deforestation | Forest Area Change|Deforestation | World | 2030 | NaN | million ha/yr | medium | NaN | 0.0 |
| 3 | Sustainability Concern|Deforestation | Forest Area Change|Deforestation|Primary | World | 2030 | NaN | million ha/yr | medium | NaN | 0.0 |
| 4 | Sustainability Concern|Unsustainable Bioenergy... | Primary Energy|Biomass | World | NaN | NaN | EJ/yr | medium | NaN | 100.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 127 | Feasibility Concern|Onshore Wind Capacity | Capacity|Electricity|Wind|Onshore | World | 2030 | NaN | GW | medium | 1719.0 | 2853.0 |
| 128 | Feasibility Concern|Onshore Wind Capacity | Capacity|Electricity|Wind|Onshore | World | 2030 | NaN | GW | strong | 1220.0 | 3655.0 |
| 129 | Feasibility Concern|Onshore Wind Capacity | Capacity|Electricity|Wind|Onshore | Europe (R10) | 2030 | NaN | GW | medium | 191.0 | 969.0 |
| 130 | Feasibility Concern|Onshore Wind Capacity | Capacity|Electricity|Wind|Onshore | China+ (R10) | 2030 | NaN | GW | medium | 349.0 | 2117.0 |
| 131 | Feasibility Concern|Onshore Wind Capacity | Capacity|Electricity|Wind|Onshore | India+ (R10) | 2030 | NaN | GW | medium | 33.0 | 154.0 |
132 rows × 9 columns
Multiple files can be loaded in one go.
criteria = load_criteria(["criteria-thresholds", "reference-data"])
display(criteria["reference-data"])
| variable | year | region | unit | value | reference_data | |
|---|---|---|---|---|---|---|
| 0 | Emissions|CO2|Energy and Industrial Processes | 2010 | World | Mt CO2/yr | 33460.0812 | CEDS-2025 |
| 1 | Emissions|CO2|Energy and Industrial Processes | 2015 | World | Mt CO2/yr | 35627.2810 | CEDS-2025 |
| 2 | Emissions|CO2|Energy and Industrial Processes | 2020 | World | Mt CO2/yr | 35387.0617 | CEDS-2025 |
| 3 | Emissions|CO2|Energy and Industrial Processes | 2020 | World | Mt CO2/yr | 36874.1129 | CEDS-2025-COVIDaveraged |
| 4 | Emissions|CO2|Energy and Industrial Processes | 2025 | World | Mt CO2/yr | 39383.4852 | CEDS-2025-extrapol25 |
| ... | ... | ... | ... | ... | ... | ... |
| 27886 | Population | 2025 | World | million | 8208.8956 | WDI-2025-extrapol25 |
| 27887 | Population | 2025 | YEM | million | 41.7266 | WDI-2025-extrapol25 |
| 27888 | Population | 2025 | ZAF | million | 64.8804 | WDI-2025-extrapol25 |
| 27889 | Population | 2025 | ZMB | million | 21.8662 | WDI-2025-extrapol25 |
| 27890 | Population | 2025 | ZWE | million | 16.8842 | WDI-2025-extrapol25 |
27891 rows × 6 columns
Formatting citations and sources¶
Loading the reference sources from the BibTeX file will return a pybtex object.
sources = load_criteria("sources")
The entries in this object can be formatted according to some predefined style.
from scenario_vetting_criteria.formatting import format_sources
sources_formatted = format_sources(sources)
display(sources_formatted["Creutzig-2014"])
{'cite_auth': 'Creutzig',
'cite_year': '2014',
'cite': 'Creutzig (2014)',
'citep': '(Creutzig, 2014)',
'bib': 'Felix Creutzig, N. H. Ravindranath, Göran Berndes, Simon Bolwig, Ryan Bright, Francesco Cherubini, Helena Chum, Esteve Corbera, Mark Delucchi, Andre Faaij, Joseph Fargione, Helmut Haberl, Garvin Heath, Oswaldo Lucon, Richard Plevin, Alexander Popp, Carmenza Robledo?Abad, Steven Rose, Pete Smith, Anders Stromman, Sangwon Suh, and Omar Masera. Bioenergy and climate change mitigation: an assessment. GCB Bioenergy, 7(5):916–944, July 2014.',
'doi': '10.1111/gcbb.12205',
'url_doi': 'https://doi.org/10.1111/gcbb.12205',
'url': 'https://doi.org/10.1111/gcbb.12205',
'pdf': 'https://onlinelibrary.wiley.com/doi/epdf/10.1111/gcbb.12205'}
The insert_citations function can be used to insert citations into text with citation patterns.
from scenario_vetting_criteria.formatting import insert_citations
text = load_criteria("criteria-descriptions")["Sustainability Concern|Unsustainable Bioenergy Use"]["justification_threshold"]
text_inserted = insert_citations(text, sources_formatted)
print(text[:50], "... → ", text_inserted[:43], "...")
{{cite:Creutzig-2014}} have derived an upper limit ... → Creutzig (2014) have derived an upper limit ...
Apply vetting criteria to scenarios¶
A tutorial on how to apply the vetting criteria to a list of scenarios based on the IAMC Nomenclature package will be made available later.