0. Data preparation for scenario analysis
Licensed under the MIT License.
This notebook is part of a repository to generate figures and analysis for the manuscript
Keywan Riahi, Christoph Bertram, Daniel Huppmann, et al. Cost and attainability of meeting stringent climate targets without overshoot Nature Climate Change, 2021 doi: 10.1038/s41558-021-01215-2
The scenario data used in this analysis should be cited as
ENGAGE Global Scenarios (Version 2.0) doi: 10.5281/zenodo.5553976
The data can be accessed and downloaded via the ENGAGE Scenario Explorer at https://data.ece.iiasa.ac.at/engage. Please refer to thelicenseof the scenario ensemble before redistributing this data or adapted material.
The source code of this notebook is available on GitHub at https://github.com/iiasa/ENGAGE-netzero-analysis. A rendered version can be seen at https://data.ece.iiasa.ac.at/engage-netzero-analysis.
[1]:
from pathlib import Path
from pyam import IamDataFrame
Import the full scenario snapshot at the global and five-region resolution
[2]:
data_folder = Path("../data/")
source_folder = data_folder / "ENGAGE_2.0"
[3]:
all_data = IamDataFrame(source_folder / "ENGAGE_scenario_data_world_r2.0.csv")
pyam - INFO: Running in a notebook, setting up a basic logging at level INFO
pyam.core - INFO: Reading file ../data/ENGAGE_2.0/ENGAGE_scenario_data_world_r2.0.csv
[4]:
all_data.append(source_folder / "ENGAGE_scenario_data_r5_regions_r2.0.csv", inplace=True)
pyam.core - INFO: Reading file ../data/ENGAGE_2.0/ENGAGE_scenario_data_r5_regions_r2.0.csv
Downselect to the scenarios and variables relevant for this analysis
[5]:
df = all_data.filter(scenario=["*_COV*", "*_NDCp", "*_lowBECCS"], keep=False)
[6]:
df.filter(region="Other (R5)", keep=False, inplace=True)
[7]:
variable_list = [
"Price|Carbon",
"GDP|*",
"AR5 climate diagnostics|Temperature|Exceedance Probability|1.0 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Exceedance Probability|1.5 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Exceedance Probability|2.0 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Exceedance Probability|2.5 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Exceedance Probability|3.0 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Exceedance Probability|3.5 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Exceedance Probability|4.0 degC|MAGICC6",
"AR5 climate diagnostics|Temperature|Global Mean|MAGICC6|Expected value",
"AR5 climate diagnostics|Temperature|Global Mean|MAGICC6|MED",
"Emissions|Kyoto Gases",
"Emissions|CO2",
"Emissions|CO2|AFOLU",
"Emissions|CO2|Energy|Demand",
"Emissions|CO2|Energy|Demand|Industry",
"Emissions|CO2|Energy|Demand|Transportation",
"Emissions|CO2|Energy|Demand|Residential and Commercial",
"Emissions|CO2|Energy|Supply",
"Emissions|CO2|Industrial Processes",
"Carbon Sequestration|CCS",
"Carbon Sequestration|CCS|Biomass",
"Carbon Sequestration|CCS|Biomass|Energy|Demand|Industry",
"Carbon Sequestration|CCS|Fossil|Energy|Demand|Industry",
"Carbon Sequestration|CCS|Biomass|Energy|Supply",
"Carbon Sequestration|CCS|Fossil|Energy|Supply",
"Carbon Sequestration|CCS|Industrial Processes",
"Carbon Sequestration|Land Use",
"Carbon Sequestration|Direct Air Capture",
"Carbon Sequestration|Other",
"Primary Energy|Fossil|w/ CCS",
"Primary Energy|Non-Biomass Renewables",
"Primary Energy|Nuclear",
"Primary Energy|Biomass|Modern",
"Final Energy*",
"Secondary Energy*",
]
[8]:
df.filter(variable=variable_list, inplace=True)
Export down-selected data for further processing
[9]:
df.to_csv(data_folder / "ENGAGE_snapshot_selected.csv")
[ ]: