{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"# 0. Data preparation for scenario analysis\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"Licensed under the [MIT License](https://github.com/iiasa/ENGAGE-netzero-analysis/blob/main/LICENSE).\n",
"\n",
"This notebook is part of a repository to generate figures and analysis for the manuscript\n",
"\n",
"> Keywan Riahi, Christoph Bertram, Daniel Huppmann, et al.
\n",
"> Cost and attainability of meeting stringent climate targets without overshoot
\n",
"> **Nature Climate Change**, 2021
\n",
"> doi: [10.1038/s41558-021-01215-2](https://doi.org/10.1038/s41558-021-01215-2)\n",
"\n",
"The scenario data used in this analysis should be cited as\n",
"\n",
"> ENGAGE Global Scenarios (Version 2.0)
\n",
"> doi: [10.5281/zenodo.5553976](https://doi.org/10.5281/zenodo.5553976)\n",
"\n",
"The data can be accessed and downloaded via the **ENGAGE Scenario Explorer** at [https://data.ece.iiasa.ac.at/engage](https://data.ece.iiasa.ac.at/engage).
\n",
"*Please refer to the [license](https://data.ece.iiasa.ac.at/engage/#/license)\n",
"of the scenario ensemble before redistributing this data or adapted material.*\n",
"\n",
"The source code of this notebook is available on GitHub\n",
"at [https://github.com/iiasa/ENGAGE-netzero-analysis](https://github.com/iiasa/ENGAGE-netzero-analysis).
\n",
"A rendered version can be seen at [https://data.ece.iiasa.ac.at/engage-netzero-analysis](https://data.ece.iiasa.ac.at/engage-netzero-analysis)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"IPython.OutputArea.prototype._should_scroll = function(lines) { return false; }"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pathlib import Path\n",
"from pyam import IamDataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import the full scenario snapshot at the global and five-region resolution"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"data_folder = Path(\"../data/\")\n",
"source_folder = data_folder / \"ENGAGE_2.0\""
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"pyam - INFO: Running in a notebook, setting up a basic logging at level INFO\n",
"pyam.core - INFO: Reading file ../data/ENGAGE_2.0/ENGAGE_scenario_data_world_r2.0.csv\n"
]
}
],
"source": [
"all_data = IamDataFrame(source_folder / \"ENGAGE_scenario_data_world_r2.0.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"pyam.core - INFO: Reading file ../data/ENGAGE_2.0/ENGAGE_scenario_data_r5_regions_r2.0.csv\n"
]
}
],
"source": [
"all_data.append(source_folder / \"ENGAGE_scenario_data_r5_regions_r2.0.csv\", inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Downselect to the scenarios and variables relevant for this analysis"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"df = all_data.filter(scenario=[\"*_COV*\", \"*_NDCp\", \"*_lowBECCS\"], keep=False)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df.filter(region=\"Other (R5)\", keep=False, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"variable_list = [\n",
" \"Price|Carbon\",\n",
" \"GDP|*\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|1.0 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|1.5 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|2.0 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|2.5 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|3.0 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|3.5 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Exceedance Probability|4.0 degC|MAGICC6\",\n",
" \"AR5 climate diagnostics|Temperature|Global Mean|MAGICC6|Expected value\",\n",
" \"AR5 climate diagnostics|Temperature|Global Mean|MAGICC6|MED\",\n",
" \"Emissions|Kyoto Gases\",\n",
" \"Emissions|CO2\",\n",
" \"Emissions|CO2|AFOLU\",\n",
" \"Emissions|CO2|Energy|Demand\",\n",
" \"Emissions|CO2|Energy|Demand|Industry\",\n",
" \"Emissions|CO2|Energy|Demand|Transportation\",\n",
" \"Emissions|CO2|Energy|Demand|Residential and Commercial\",\n",
" \"Emissions|CO2|Energy|Supply\",\n",
" \"Emissions|CO2|Industrial Processes\",\n",
" \"Carbon Sequestration|CCS\",\n",
" \"Carbon Sequestration|CCS|Biomass\",\n",
" \"Carbon Sequestration|CCS|Biomass|Energy|Demand|Industry\",\n",
" \"Carbon Sequestration|CCS|Fossil|Energy|Demand|Industry\",\n",
" \"Carbon Sequestration|CCS|Biomass|Energy|Supply\",\n",
" \"Carbon Sequestration|CCS|Fossil|Energy|Supply\",\n",
" \"Carbon Sequestration|CCS|Industrial Processes\",\n",
" \"Carbon Sequestration|Land Use\",\n",
" \"Carbon Sequestration|Direct Air Capture\",\n",
" \"Carbon Sequestration|Other\",\n",
" \"Primary Energy|Fossil|w/ CCS\",\n",
" \"Primary Energy|Non-Biomass Renewables\",\n",
" \"Primary Energy|Nuclear\",\n",
" \"Primary Energy|Biomass|Modern\",\n",
" \"Final Energy*\",\n",
" \"Secondary Energy*\",\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"df.filter(variable=variable_list, inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Export down-selected data for further processing"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(data_folder / \"ENGAGE_snapshot_selected.csv\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}