{ "cells": [ { "cell_type": "markdown", "id": "3d4298c9-a204-48a4-b408-90d0403d4950", "metadata": { "execution": {} }, "source": [ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/neuromatch/climate-course-content/blob/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial5.ipynb)   \"Open" ] }, { "cell_type": "markdown", "id": "c55c3b25-2613-4f34-8d4a-ccc417f24708", "metadata": { "execution": {} }, "source": [ "# Tutorial 5: Mapping the Narrative Space\n", "**Week 2, Day 2: The Socioeconomics of Climate Change**\n", "\n", "**Content creators:** Paul Heubel, Maximilian Puelma Touzel\n", "\n", "**Content reviewers:** Jenna Pearson, Ohad Zivan\n", "\n", "**Content editors:** Paul Heubel, Jenna Pearson, Ohad Zivan\n", "\n", "**Production editors:** Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", "\n", "**Our 2024 Sponsors:** CMIP, NFDI4Earth" ] }, { "cell_type": "markdown", "id": "5c8af3c8-42a4-45ba-a16f-be86198e23e8", "metadata": { "execution": {} }, "source": [ "# Tutorial objectives\n", "\n", "*Estimated timing of tutorial:* 25 minutes\n", "\n", "In this tutorial, you discuss the narratives of the SSP framework and step back to reflect on the framework's assumptions and their consequences for modeling socioeconomics and climate futures. It further emphasizes how equity aspects need to be thought of when solving the climate crisis.\n", "\n", "After working through this Tutorial you know how to \n", "\n", "* map Shared Socioeconomic Pathways in a feature space of equality and environmental health,\n", "* reflect on narratives when discussing future scenarios and their socioeconomic implications." ] }, { "cell_type": "code", "execution_count": null, "id": "1af3e766-b9c3-4bf8-815c-4087e7811925", "metadata": { "execution": {} }, "outputs": [], "source": [ "# import\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Install and import feedback gadget\n" ] }, { "cell_type": "code", "execution_count": null, "id": "bf05ea3d-be91-4007-b4dd-210179c2f6f1", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Install and import feedback gadget\n", "\n", "!pip3 install vibecheck datatops --quiet\n", "\n", "from vibecheck import DatatopsContentReviewContainer\n", "def content_review(notebook_section: str):\n", " return DatatopsContentReviewContainer(\n", " \"\", # No text prompt\n", " notebook_section,\n", " {\n", " \"url\": \"https://pmyvdlilci.execute-api.us-east-1.amazonaws.com/klab\",\n", " \"name\": \"comptools_4clim\",\n", " \"user_key\": \"l5jpxuee\",\n", " },\n", " ).render()\n", "\n", "\n", "feedback_prefix = \"W2D2_T5\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Figure settings\n" ] }, { "cell_type": "code", "execution_count": null, "id": "e7392de8-f946-453b-bedf-8a07c705ee7f", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Figure settings\n", "import ipywidgets as widgets # interactive display\n", "\n", "%config InlineBackend.figure_format = 'retina'\n", "plt.style.use(\n", " \"https://raw.githubusercontent.com/neuromatch/climate-course-content/main/cma.mplstyle\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Helper functions\n" ] }, { "cell_type": "code", "execution_count": null, "id": "6c10210c-a3d9-4996-a3d3-4bafa4b72637", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Helper functions\n", "\n", "def pooch_load(filelocation=None, filename=None, processor=None):\n", " shared_location = \"/home/jovyan/shared/Data/tutorials/W2D2_TheSocioeconomicsofClimateChange\" # this is different for each day\n", " user_temp_cache = tempfile.gettempdir()\n", "\n", " if os.path.exists(os.path.join(shared_location, filename)):\n", " file = os.path.join(shared_location, filename)\n", " else:\n", " file = pooch.retrieve(\n", " filelocation,\n", " known_hash=None,\n", " fname=os.path.join(user_temp_cache, filename),\n", " processor=processor,\n", " )\n", "\n", " return file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Video 1: Mapping the Narrative Space\n" ] }, { "cell_type": "code", "execution_count": null, "id": "80412217-b5a7-4fed-b29e-b8751eb8c847", "metadata": { "cellView": "form", "execution": {}, "tags": [ "remove-input" ] }, "outputs": [], "source": [ "# @title Video 1: Mapping the Narrative Space\n", "\n", "from ipywidgets import widgets\n", "from IPython.display import YouTubeVideo\n", "from IPython.display import IFrame\n", "from IPython.display import display\n", "\n", "\n", "class PlayVideo(IFrame):\n", " def __init__(self, id, source, page=1, width=400, height=300, **kwargs):\n", " self.id = id\n", " if source == 'Bilibili':\n", " src = f'https://player.bilibili.com/player.html?bvid={id}&page={page}'\n", " elif source == 'Osf':\n", " src = f'https://mfr.ca-1.osf.io/render?url=https://osf.io/download/{id}/?direct%26mode=render'\n", " super(PlayVideo, self).__init__(src, width, height, **kwargs)\n", "\n", "\n", "def display_videos(video_ids, W=400, H=300, fs=1):\n", " tab_contents = []\n", " for i, video_id in enumerate(video_ids):\n", " out = widgets.Output()\n", " with out:\n", " if video_ids[i][0] == 'Youtube':\n", " video = YouTubeVideo(id=video_ids[i][1], width=W,\n", " height=H, fs=fs, rel=0)\n", " print(f'Video available at https://youtube.com/watch?v={video.id}')\n", " else:\n", " video = PlayVideo(id=video_ids[i][1], source=video_ids[i][0], width=W,\n", " height=H, fs=fs, autoplay=False)\n", " if video_ids[i][0] == 'Bilibili':\n", " print(f'Video available at https://www.bilibili.com/video/{video.id}')\n", " elif video_ids[i][0] == 'Osf':\n", " print(f'Video available at https://osf.io/{video.id}')\n", " display(video)\n", " tab_contents.append(out)\n", " return tab_contents\n", "\n", "\n", "video_ids = [('Youtube', '_tUl_Kp8gFE'),\n", " ('Bilibili', 'BV1vPGDe4ERj')\n", " ]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", "for i in range(len(tab_contents)):\n", " tabs.set_title(i, video_ids[i][0])\n", "display(tabs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Submit your feedback\n" ] }, { "cell_type": "code", "execution_count": null, "id": "ddbb472a-a055-4f48-800b-ec9ac36cb3c6", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Submit your feedback\n", "content_review(f\"{feedback_prefix}_Mapping_the_narrative_space_Video\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "2dc2f6c1-637b-4506-a667-45750dd7fbe5", "metadata": { "cellView": "form", "execution": {}, "tags": [ "remove-input" ] }, "outputs": [], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", "from IPython.display import IFrame\n", "\n", "link_id = \"cyavb\"\n", "\n", "print(f\"If you want to download the slides: https://osf.io/download/{link_id}/\")\n", "IFrame(src=f\"https://mfr.ca-1.osf.io/render?url=https://osf.io/{link_id}/?direct%26mode=render%26action=download%26mode=render\", width=854, height=480)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Submit your feedback\n" ] }, { "cell_type": "code", "execution_count": null, "id": "693f9f9c-c8c0-4118-99cd-a9ccf1f55766", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Submit your feedback\n", "content_review(f\"{feedback_prefix}_Mapping_the_Narrative_Space_Slides\")" ] }, { "cell_type": "markdown", "id": "c7ce6e92-a46d-437a-9e03-c5b80eb63474", "metadata": { "execution": {} }, "source": [ "# Section 1: Background on IAM Economics\n", "\n", "The last tutorial gave us a glimpse of Integrated Assessment Models (IAMs), a class of models economists use to inform policy decisions. Recall that IAMs couple a climate model to an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. \n", "\n", "Let's begin with a brief recall of the IAM features:\n", "\n", "- IAMs resolve the economy spatially, in contrast, the toy model En-ROADS for example, which we applied in Tutorial 1 to 3, aggregates all variables and is non-spatial.\n", "- Like En-ROADS, the world models used in IAMs usually have *exogeneous* (externally set) times series for variables, in addition to fixed world system parameters. These exogenous variables are assumed to be under our society's control (e.g. mitigation). \n", "- IAMs come equipped with an objective function (a formula that calculates the quantity to be optimized). This function returns the value of a projected future obtained from running the world model under a given climate policy. This value is defined by the time series of these exogenous variables. In this sense, the objective function is what defines \"good\" in \"good climate policy\". \n", "- The computation in an IAM is then an optimization of this objective as a function of the time series of these exogenous variables over some fixed time window.\n", "\n", "Most IAMs are based on *Neo-classical economics* (also referred to as \"establishment economics\"). This is an approach to economics that makes particular assumptions. For example, it is assumed that production, consumption, and valuation of goods and services are driven solely by the supply and demand model. One fundamental concept is *utility* (i.e. economic value), which is not only central to economics but also to decision theory as a whole, which is a research field that mathematically formalizes the activity of *planning* (planning here means selecting strategies based on how they are expected to play out given a model that takes those strategies and projects forward into the future).\n", "\n", "Six of the most well-established IAMs have been chosen to represent a certain SSP narrative as discussed by Max in the video. Their simulations result in energy use and emissions characteristics for the respective SSP. These narratives try to describe broad socioeconomic trends that are plausible while reflecting worlds in which mitigation and adaptation challenges vary from low to very high.\n" ] }, { "cell_type": "markdown", "id": "fccdeb9d-f825-415f-a947-b51230e0c331", "metadata": { "execution": {} }, "source": [ "## Questions 1\n", "\n", "As a repetition and a follow-up of the tutorial video, try now to place all 5 SSP narratives in the three-dimensional feature space of ***Intra-nation equality***, ***Inter-nation equality***, and ***Environmental Health*** yourself. You can use the SSP narrative names as a hint.\n", "\n", "* SSP1: Sustainability\n", "* SSP2: Middle of the road\n", "* SSP3: Regional rivalry\n", "* SSP4: A road divided\n", "* SSP5: Fossil Fueled development\n", "\n", "As an additional hint, you might want to check out detailed SSP summaries in the 'SSP narratives' section in [this Carbon Brief article](https://www.carbonbrief.org/explainer-how-shared-socioeconomic-pathways-explore-future-climate-change/).\n", "\n", "Which were easy to place? Which were harder? What made them easy or hard to place? Discuss with your pod.\n" ] }, { "cell_type": "code", "execution_count": null, "id": "a7b00ec8-495f-4e07-ab13-989dd26b2c92", "metadata": { "execution": {} }, "outputs": [], "source": [ "# to_remove explanation\n", "'''\n", "The solution is already given in the slides, to further discuss these slides, please read the detailed SSP summaries in the 'SSP narratives' section from the carbon brief website under https://www.carbonbrief.org/explainer-how-shared-socioeconomic-pathways-explore-future-climate-change/\n", "'''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Submit your feedback\n" ] }, { "cell_type": "code", "execution_count": null, "id": "11591351-d85d-4737-835d-b1ca218f1354", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Submit your feedback\n", "content_review(f\"{feedback_prefix}_Questions_1\")" ] }, { "cell_type": "markdown", "id": "97a7001b-1122-4f8c-9ef9-b42b03823f21", "metadata": { "execution": {} }, "source": [ "This feature space is one way to dissect the narratives that underlie the SSPs. \n", "\n", "A consideration of the future socio-economic situation in the light of the resulting challenges is also fruitful. For example, low challenges to mitigation and adaptation due to rapid technological development, relative global equality of income and focus on environmental sustainability arise in SSP1. SSP4, on the other hand, features similarly low challenges to mitigation due to its rapid technological development, but high challenges to climate adaptation due to persistent inequality and poverty in many parts of the world (cf. [Carbon Brief Explainer, Hausfather, 2018](https://www.carbonbrief.org/explainer-how-shared-socioeconomic-pathways-explore-future-climate-change/)). \n", "Note that mitigation and adaptation responses are not implemented in the SSPs, such that other studies can assess the effects of policies and of impacts by comparing outcomes to those in the reference SSPs. Hence, a large number of studies investigate a variety of policies and projected risks (cf. [O'Neill et al., 2020](https://www.nature.com/articles/s41558-020-00952-0)).\n", "\n", "Let us finally summarize a few advantages and disadvantages of the SSP framework in general." ] }, { "cell_type": "markdown", "id": "35fa283c-f214-45a4-9b45-bf263d989f74", "metadata": { "execution": {} }, "source": [ "## Questions 2\n", "\n", "The SSP framework. Take a minute to list the strengths and weaknesses of the scenario approach to socio-economic climate projections you can think of. \n" ] }, { "cell_type": "code", "execution_count": null, "id": "c8f40968-8d7a-487f-aeb3-b901ebfe53fd", "metadata": { "execution": {} }, "outputs": [], "source": [ "# to_remove explanation\n", "\n", "'''\n", "Strengths: SSPs are an approach that nicely balances (biased) expert opinion with more objective (but perhaps inaccurate) models. The framework underlines the importance of baseline assumptions on resulting emissions and temperatures.\n", "There is now more than one baseline/business-as-usual scenario, however, these scenarios result in at least 3.1°C warming (and up to 5.1°C) by 2100.\n", "With the framework, one is easily able to model climate policies and compare them to the benchmark futures. It furthermore allows for climate change-related research globally across research communities and is extendable to other scales, sectors, and issue areas.\n", "Global narrative extensions can be produced and applied in key sectors to support quantitative projections from e.g. energy and land-use models, and projections from IAMs.\n", "\n", "...\n", "\n", "Weaknesses: An even larger set of assumptions/complexity leads to overconfidence while complexity and uncertainty are increased. It is not easy to apply SSPs regionally.\n", "Futures with non-neo-classical economics like no or limited growth in high-income countries or scenarios oriented around eco-communalism are not represented in the SSPs.\n", "There might also be plausible futures that are under-represented including those driven by disruptive events, whether technological, social, political, or environmental, e.g. implications of violent conflicts, the crossing of biophysical and social tipping points or unexpectedly rapid technological innovation; for example, in artificial intelligence or energy efficiency.\n", "...\n", "cf. e.g https://www.nature.com/articles/s41558-020-00952-0\n", "'''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Submit your feedback\n" ] }, { "cell_type": "code", "execution_count": null, "id": "041ce3f4-15b5-48e5-b810-3194f27f5766", "metadata": { "cellView": "form", "execution": {}, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# @title Submit your feedback\n", "content_review(f\"{feedback_prefix}_Questions_2\")" ] }, { "cell_type": "markdown", "id": "28c0a077-c9a0-42d9-ada6-e8b835668c3b", "metadata": { "execution": {} }, "source": [ "# Summary\n", "\n", "In this tutorial, you discussed the narratives of the SSP framework and stepped back to reflect on the framework's assumptions and their consequences for modeling socioeconomics and climate futures. It helps to prepare a thoughtful development of your own climate scenario via En-ROADS in the next tutorial. Equality aspects, prerequisites and socioeconomic necessities as well as other implications need to be thought of when solving the climate crisis." ] }, { "attachments": {}, "cell_type": "markdown", "id": "3469e417-cb2e-49a8-82bc-0b600337244c", "metadata": { "execution": {} }, "source": [ "# Resources\n", "\n", "- [Carbon Brief Explainer: How ‘Shared Socioeconomic Pathways’ explore future climate change, Hausfather, 2018](https://www.carbonbrief.org/explainer-how-shared-socioeconomic-pathways-explore-future-climate-change/)\n", "- [Hallegatte, S., Przyluski, V. & Vogt-Schilb, A. Building world narratives for climate change impact, adaptation and vulnerability analyses. Nature Clim Change 1, 151–155 (2011). doi.org/10.1038/nclimate1135](https://doi.org/10.1038/nclimate1135)\n", "- [The Shared Socioeconomic Pathways and their energy, land use, and greenhouse gas emissions implications: An overview, Riahi et al., Global Environmental Change 42, 169-180 (2017). doi.org/10.1016/j.gloenvcha.2015.01.004](https://doi.org/10.1016/j.gloenvcha.2015.01.004)\n", "- [O’Neill, B.C., Carter, T.R., Ebi, K. et al. Achievements and needs for the climate change scenario framework. Nat. Clim. Chang. 10, 1074–1084 (2020). doi.org/10.1038/s41558-020-00952-0](https://doi.org/10.1038/s41558-020-00952-0)\n", "- [En-ROADS documentation](https://docs.climateinteractive.org/projects/en-roads/en/latest/index.html)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "include_colab_link": true, "name": "W2D2_Tutorial5", "toc_visible": true }, "kernel": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.19" } }, "nbformat": 4, "nbformat_minor": 5 }