{ "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 }