diff --git a/projects/docs/continuing_your_project_after_the_course.md b/projects/docs/continuing_your_project_after_the_course.md index 2da661e4a..487aa7de1 100644 --- a/projects/docs/continuing_your_project_after_the_course.md +++ b/projects/docs/continuing_your_project_after_the_course.md @@ -1,8 +1,8 @@ # Climatematch Impact Scholars program -Scientific discovery takes time. Recognizing this, Neuromatch and Climatematch Academy, in collaboration with the [**Learning the Earth with Artificial Intelligence and Physics (LEAP)**](https://leap.columbia.edu/), a National Science Foundation (NSF)-funded Science & Technology Center based at Columbia University, offer the Climate Impact Scholars program. This program provides selected student groups with access to computing resources for 10 months after the courses end, allowing scholars to further develop projects initiated during the courses or to explore new projects provided by the academies or our partners. -Scholars will benefit from the mentorship of experienced researchers who will provide guidance, constructive feedback, and professional insights over the course of 10 months, from October to July, enhancing the quality and impact of their work. +Scientific discovery takes time. Recognizing this, Neuromatch and Climatematch Academy, in collaboration with the [**Learning the Earth with Artificial Intelligence and Physics (LEAP)**](https://leap.columbia.edu/), a National Science Foundation (NSF)-funded Science & Technology Center based at Columbia University, offer the Climate Impact Scholars program. This program provides selected student groups with access to computing resources for 6 months after the courses end, allowing scholars to further develop projects initiated during the courses or to explore new projects provided by the academies or our partners. +Scholars will benefit from the mentorship of experienced researchers who will provide guidance, constructive feedback, and professional insights over the course of 10 months, from October 2024 to March 2025, enhancing the quality and impact of their work. Additionally, scholars will have the chance to present their research to seasoned experts, gaining valuable feedback and engaging with a broader scientific community. This program also includes the opportunity to showcase their projects at the Academies Open Ceremony, inspiring future scholars and demonstrating the significance of their research. -Please refer to [this link](https://neuromatch.io/impact-scholars/) for a detailed outline and description of the Impact Scholars Program. +Please refer to [this link](https://impact-scholars.neuromatch.io/impact-scholars/intro.html) for a detailed outline and description of the Impact Scholars Program. diff --git a/projects/docs/past_projects_overview.md b/projects/docs/past_projects_overview.md index bc6adc7b2..b44d64a2b 100644 --- a/projects/docs/past_projects_overview.md +++ b/projects/docs/past_projects_overview.md @@ -3,12 +3,10 @@ We are proud to showcase the project presentations our students prepared in previous iterations of *Computational Tools for Climate Science*. You can browse their presentation slides by project topic: -- [Sea level rise](projects/past-projects/Sea_level_rise.ipynb) -- [Regional precipitation variability and extreme events](projects/past-projects/precipitation.ipynb) -- [Changes in land cover: Albedo and carbon sequestration](projects/past-projects/albedo.ipynb) -- [Monitoring and mapping wildfires using satellite data](projects/past-projects/wildfires.ipynb) -- [Ocean acidification](projects/past-projects/ocean_acidification.ipynb) -- [The impact of ENSO on precipitation and temperature](projects/past-projects/ENSO.ipynb) -- [Heatwaves: Assessing the dynamic interactions of the atmosphere and land](projects/past-projects/heatwaves.ipynb) - - +- [Sea level rise](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/sea_level_rise.ipynb) +- [Regional precipitation variability and extreme events](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/precipitation.ipynb) +- [Changes in land cover: Albedo and carbon sequestration](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/albedo.ipynb) +- [Monitoring and mapping wildfires using satellite data](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/wildfires.ipynb) +- [The impact of ENSO on precipitation and temperature](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/ENSO.ipynb) +- [Heatwaves: Assessing the dynamic interactions of the atmosphere and land](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/heatwaves.ipynb) +- [Ocean Acidification](https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/ocean_acidification.ipynb) \ No newline at end of file diff --git a/projects/docs/project_guidance.md b/projects/docs/project_guidance.md index b90d3ee67..1d188fe54 100644 --- a/projects/docs/project_guidance.md +++ b/projects/docs/project_guidance.md @@ -5,249 +5,260 @@ The project component of Climatematch Academy is designed to guide you through the entire research process, providing a comprehensive journey from project ideation to outcome presentation, all within a condensed time frame of just two weeks. Within a dedicated three-hour time slot each day, you will collaborate with a group of 4-6 fellow students from your pod to collectively develop a single research project. -On Day 1, you will learn about good research practices by working on a ‘mock’ project through the lens of equity. You will then spend eight days applying those skills to a scientific question and a geographical region that interests you and your teammates. To familiarize yourselves with the datasets at hand, you will examine the spatial and temporal distribution of one climate variable on global and local scales, as well as its social and economic impact. After performing a brief literature review, you will develop a sense of interesting open questions in the field and will devise a specific testable hypothesis accordingly. On Day 4, your group will submit a project proposal that you will swap with other groups to practice giving and receiving feedback through a peer review process. For the rest of the course, you will focus on acquiring evidence for or against your hypothesis. Throughout this time, you will be supported by your pod’s Teaching Assistant and a dedicated Project Teaching Assistant. Finally, on the last two days of the course, you will prepare a short presentation showcasing the story of your project and meet with other groups in your megapod to discuss your findings with them. +On Day 1, you will learn about good research practices by working on a ‘mock’ project through the lens of equity. You will then spend eight days applying those skills to a scientific question and a geographical region that interests you and your teammates. To familiarize yourselves with the datasets at hand, you will examine the spatial and temporal distribution of one climate variable on global and local scales. After performing a brief literature review, you will develop a sense of interesting open questions in the field and will devise a specific testable hypothesis accordingly. On Day 4, your group will submit a project proposal that you will swap with other groups to practice giving and receiving feedback through a peer review process. For the rest of the course, you will focus on acquiring evidence for or against your hypothesis. Throughout this time, you will be supported by your pod’s Teaching Assistant and a dedicated Project Teaching Assistant. Finally, in the last two sessions of the course, you will prepare a short presentation showcasing the story of your project and meet with other groups in your megapod to discuss your findings with them. ## Submission Links - Day 4: Proposal Submission **[here](https://airtable.com/shrQ5CLEla3dDkKbk)** -- Day 9: Project Submission **[here](https://airtable.com/shr7EAY3x39x8swZu)** +- Day 10: Project Submission **[here](https://airtable.com/shr7EAY3x39x8swZu)** ## Project materials -You have been assigned one of seven research projects based on the preferences listed in your application. Each project comes with an introductory video, a template, and a data loading jupyter notebook. +You have been assigned a project based on the preferences listed in your application. Each project comes with an introductory video, a project template and a data loading jupyter notebook. -Student groups will define their own research question. Project templates are maps of research ideas developed by the Climatematch Academy team. They are composed of **_GREEN_**, **_YELLOW_**, and **_RED_** questions in accordance with their difficulty. Each difficulty level is further divided into questions relating to a physical climate phenomenon (borderless) and those relating to socio-economic issues (dashed border). +Student groups will define their own research question. Project templates are maps of research ideas developed by the Climatematch Academy team. They are composed of ***GREEN***, ***YELLOW***, and ***RED*** questions in accordance with their difficulty. Each difficulty level is further divided into questions relating to a physical climate phenomenon (borderless) and those relating to socio-economic issues (dashed border). Student groups should use this template as a guide and ideally come up with their own research question. The templates should be used in several ways: -* All teams **must** work through the **_GREEN_** questions on Day 2. This will let you familiarize yourselves with the relevant datasets and appreciate the global variability of your selected climate phenomenon before defining your research question. -* All teams **must** work on a research question related to a physical climate phenomenon, such as those found in borderless-boxes. -* In addition, all teams are **highly encouraged** to consider the socio-economic impact of their climate phenomenon of interest (dashed border). We advise you to support your conclusions with data if it is possible to find open-source socio-economic data, reports, or case studies from a trustworthy source relevant to your country or continent of interest. -* If you are new to climate science or do not have a lot of research experience, we strongly recommend that you use the research questions provided in the template extensively. The templates have been designed to give you enough structure to get started and enough options to keep going if you stick with the template. Comprehensively answering just one **_YELLOW_** or **_RED_** question from the template would be an achievement! You can pick the question that interests you the most right away without following the flow suggested by the template. -* If you are an experienced climate researcher, you are more than welcome to branch out beyond the template and define your own research questions! However, we do ask you to stick to the climate datasets. +* All teams **must** work through the ***GREEN*** questions on Day 2. This will let you familiarize yourselves with the relevant datasets and appreciate the global variability of your selected climate phenomenon before defining your research question. +* All teams **must** work on a research question related to a physical climate phenomenon, such as those proposed in the yellow and red boxes. +* All teams are **encouraged** to consider the socio-economic impact of their climate phenomenon of interest (dashed border). We advise you to support your conclusions with data if it is possible. +* If you are new to climate science or do not have a lot of research experience, we strongly recommend that you use the research questions provided in the template extensively. The templates have been designed to give you enough structure to get started and enough options to keep going if you stick with the template. Comprehensively answering just one ***YELLOW*** or ***RED*** question from the template would be an achievement! You can pick the question that interests you the most right away without following the flow suggested by arrows on the template. +* If you are an experienced climate researcher, you are more than welcome to branch out beyond the template and define your own research questions! However, we do ask you to stick to the climate datasets provided to you. ## Project Teaching Assistants Project Teaching Assistants are your friendly project experts to consult with on all issues related to your project topics and datasets. They can help with brainstorming project ideas, literature searches, and coding. You will meet with them on a regular basis. -They will visit your group on Day 1 to make introductions and will subsequently meet with you, on average, for 45-60 minutes every day or 1.5-2 hours every other day. As projects progress, Project Teaching Assistants might need to prioritize junior groups, but they can also be summoned to senior groups for meetings when needed. Since they can arrive unannounced at any time (busy schedules!), please stop what you were doing to have the meeting, and then resume your work when the Project Teaching Assistant leaves. Please also post questions on discord in the project-specific channels. All project Teaching Assistants have time set aside specifically to answer discord questions and to provide additional meetings when necessary. +They will visit your group on Day 1 to make introductions and will subsequently meet with you, on average, for 45-60 minutes every day or 1.5-2 hours every other day. As projects progress, Project Teaching Assistants might need to prioritize junior groups, but they can also be summoned to senior groups for meetings when needed. Since they can arrive unannounced at any time (busy schedules!), please stop what you were doing to have the meeting, and then resume your work when the Project Teaching Assistant leaves. Please also post questions on discord in the #project-specific channels. All project Teaching Assistants have time set aside specifically to answer discord questions and to provide additional meetings when necessary. ## Project Time -You will have 2.5-3 hours each day to work on projects. The goal during the **first week** is to learn about the research process and develop a project idea. To simplify logistics, we have already broken you into project groups. Among other reasons, you were (climate)matched with your pod and research group, because you share an interest in similar climate phenomena. We understand that specific interests and motivations will vary even within project groups and becoming part of the Climatematch community is as much about finding your role in the team as it is about pursuing a specific personal research interest. During the **second week**, which includes the Project Day (W2D2), you will implement the analyses, interpret your findings, and present them to your megapod peers on the last day of Climatematch Academy. +You will have 2.5-3 hours each day to work on projects. The goal during the **first week** is to learn about the research process and develop a project idea. To simplify logistics, we have already broken you into project groups. Among other reasons, you were (climate)matched with your pod and research group, because you share an interest in similar climate phenomena. We understand that specific interests and motivations will vary even within project groups and becoming part of the Climatematch community is as much about finding your role in the team as it is about pursuing a specific personal research interest. During the **second week**, which includes the Project Day (W2D5), you will implement the analyses, interpret your findings, and present them to your megapod peers on the last day of Climatematch Academy. -Embedded in the project time will also be a set of **professional development activities**: a series of Impact Talks, meetings with mentors, and career panels. +Embedded in the project time will also be a set of **professional development activities**: two hour-long meetings with mentors as well as one-hour Impact Talk activity of your choice from the following list: 1) climate justice, 2) equity in climate science, 3) open climate science, and 4) climate science communication.. +--- ### POD INTRODUCTIONS W1D1 -_Monday, 17th July (PM) for everyone_ +*Monday, 15th July (PM) for everyone* On W1D1, you will meet your pod 30 minutes before the regular start of the tutorial time for introductory activities. Your pod’s Teaching Assistant will also tell you the project group you have been assigned to and its project topic. In some pods, the two groups will work on the same topic while others might be assigned two different topics depending on student interests. If you wish to work in the other group, discuss it with your Teaching Assistant. -During the pod introduction on W1D1, your Teaching Assistant will also inform you about your project group’s schedule for watching and discussing the Impact Talks. One group will do this activity during the first 30 minutes of a project block, while the other will dedicate to it the last 30 minutes of a project block. The discussions following the Impact Talks will be facilitated by you - the students. Each discussion should have one student leading from the front and one student leading from behind, with every student in your project group taking on one of these leadership roles at least once. Your Teaching Assistant will help you appoint yourselves to these roles during the pod introductions. You can read more about the associated responsibilities [here](https://comptools.climatematch.io/projects/professional_development/impact_talks.html#guidance-for-discussions). +During the pod introduction on W1D1, your Teaching Assistant will also inform you about your project group’s schedule for watching and discussing the Impact Talks in the second week (W2D1). One group will do this activity during the first hour of the project block, while the other will dedicate the last hour of the project block to it. The discussions following the Impact Talk will be facilitated by you - the students. Your Teaching Assistant will help you appoint yourselves to the leading roles during the pod introductions. You can read more about this activity [here](https://github.com/neuromatch/climate-course-content/blob/main/projects/professional_development/impact_talks.ipynb). --- ### SESSION 1 -_Monday, 17th July (PM) for groups in timezone slots 2 and 5_ -_Tuesday, 18th July (AM) for groups in timezone slots 1, 3, and 4_ +*Monday, 15th July (PM) for groups in timezone slots 2 and 5* +*Tuesday, 16th July (AM) for groups in timezone slots 1, 3, and 4* -Work through the [tutorial on good research practices](https://comptools.climatematch.io/tutorials/W2D2_GoodResearchPractices/student/W2D2_Tutorial1.html) in your project groups. Your Project Teaching Assistant will come by at some point during this period to introduce themselves and facilitate your progression through the tutorial for 30-45 minutes. +**The goal of the day is to learn about the process of research design**. To this end you will work through the tutorials on [good research practices](https://comptools.climatematch.io/tutorials/Projects_GoodResearchPractices/chapter_title.html) in your project groups. Your Project Teaching Assistant will come by at some point during this period to introduce themselves and facilitate your progression through the tutorial for 30-45 minutes. --- ### SESSION 2 -_Tuesday, 18th July (PM) for groups in timezone slots 2 and 5_ -_Wednesday, 19th July (AM) for groups in timezone slots 1, 3, and 4_ +*Tuesday, 16th July (PM) for groups in timezone slots 2 and 5* +*Wednesday, 19th July (AM) for groups in timezone slots 1, 3, and 4* + +**The goal of the day is to get familiar with the dataset that you will work on your project.** Each project team will choose one of the predefined templates according to their research interests. This project session is structured as follows: ->**Professional Development:** Watch the interview about [Climate Justice](https://comptools.climatematch.io/projects/professional_development/impact_talks.html#climate-justice) and use the provided prompts to discuss the topic within your project group for 15 minutes As agreed during introductions on W1D1, one project group in the pod should do this during the first 30 minutes of the project block, while the other should leave this for the last 30 minutes of the block. Also as decided on W1D1, two students should practice their leadership skills by leading the discussion from the front and from behind. +- **Time zones 2 & 5:** + **(1h) Professional Development - Mentor meeting I:** During the first hour, your project group will be visited by mentors. In these meetings, they will share their professional path in a climate-related field, offer personalized career advice, and provide a networking opportunity. Make sure to familiarize yourself with the suggested meeting structure and tips for getting the most out of these meetings [here](https://comptools.climatematch.io/projects/professional_development/mentors.html). -The remaining 2.5 hours are time to get your hands dirty! Explore one of the provided climate datasets by working through the **_GREEN_** questions of your project template. Use the **data loading notebook** to get started and try to understand what is being done and why. Parts of this code might be reusable or adaptable later. Be on the lookout for interesting hypotheses and remember to work as a team! Ask for help, assist others, and discuss your findings throughout the day. +- **Everyone**: + **(2h)** Explore one of the provided climate datasets from your chosen project template by working through the ***GREEN*** questions. Use the **data loading notebook** to get started and try to understand what is being done and why. Parts of this code might be reusable or adaptable later. Be on the lookout for interesting hypotheses and remember to work as a team! Ask for help, assist others, and discuss your findings throughout the day. + - Apply the data wrangling skills you have acquired in tutorials thus far to generate the global maps suggested in **Q1**. Examine your plots. Do you notice any interesting patterns across the globe or over time? + - Plot the global mean of the variable(s) over the time period suggested in **Q2**. Do you observe any trends? Does the result align with your expectations? Why? Why not? + - As a group, agree on a geographical region to focus on and answer **Q3**. Depending on the variable you explore, choosing a continent, subcontinent, or small region might be appropriate choices. How does the result compare with your answer to **Q2**? Does this result align with your expectations? Why? Why not? -* Apply the data wrangling skills you have acquired in tutorials thus far to generate the global maps suggested in **Q1**. Examine your plots. Do you notice any interesting patterns across the globe or over time? -* Plot the global mean of the variable(s) over the time period suggested in **Q2**. Do you observe any trends? Does the result align with your expectations? Why? Why not? -* As a group, agree on a geographical region to focus on and answer **Q3**. Depending on the variable you explore, choosing a continent, subcontinent, or country might be appropriate choices. How does the result compare with your answer to Q2? Does _this_ result align with your expectations? Why? Why not? -* Consider the socio-economic impact of your climate phenomenon by addressing **Q4**. Depending on your project topic, you may or may not have additional numerical data provided specifically for this question. Feel free to seek information from reliable sources online to support your arguments. +- **Time zones 1, 3 & 4:** + Use the remaining hour to brainstorm and start reviewing literature. + - **(15 min)** Start by discussing your initial project ideas! As a group, try to come up with one or a few questions of interest, either by yourselves or directly from the project template. Was there anything weird or intriguing you noticed in the data yesterday? Are there any questions in the template you find particularly exciting? + - **(30 min)** Start doing literature review using search engines like Google or Baidu. Look only at abstracts to select 2-3 promising ones. Revisit Step 2 of the tutorial on [good research practices](https://comptools.climatematch.io//tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial2.html) to review the literature more efficiently! + - **(15 min)** Report to the whole group what papers you found and pool them together. Assign one paper per person to read/skim. --- ### SESSION 3 -_Wednesday, 19th July (PM) for groups in timezone slots 2 and 5_ - -_Thursday, 20th July (AM) for groups in timezone slots 1, 3, and 4_ +*Wednesday, 17th July (PM) for groups in timezone slots 2 and 5* +*Thursday, 18th July (AM) for groups in timezone slots 1, 3, and 4* ->**Professional Development:** Watch the interview about, [Equity in Climate and Climate Science](https://comptools.climatematch.io/projects/professional_development/impact_talks.html#equity-in-climate-and-climate-science) and use the provided prompts to discuss the topic within your project group for 15 minutes. As agreed during introductions on W1D1, one project group in the pod should do this during the first 30 minutes of the project block, while the other should leave this for the last 30 minutes of the block. Also as decided on W1D1, two students should practice their leadership skills by leading the discussion from the front and from behind. +**The goal of the day is to complete the literature review and formulate the research questions**. The literature review aims to find out what is known or has been hypothesized about your climate phenomenon, determine what aspects are currently the most debated, and to help you define some keywords that you will use in your project proposal tomorrow. You do not need to come up with a completely original question! Do, however, situate your research within the relevant literature, and try to get hints/suggestions from other papers. ->**Professional Development:** On any two days between now and the end of the course, your project group will be visited by mentors. In 1-hour meetings, they will share their professional path in a climate-related field, offer personalized career advice, and provide a networking opportunity. Your pod’s Teaching Assistant can tell you the exact times of these meetings. Make sure to familiarize yourself with the suggested meeting structure and tips for getting the most out of these meetings [here](https://comptools.climatematch.io/projects/professional_development/mentors.html#suggested-meeting-structure-60-minutes). +- **Time zones 1, 3 & 4:** + **(1h)** Professional Development - Mentor meeting I: During the first hour, your project group will be visited by mentors. In these meetings, they will share their professional path in a climate-related field, offer personalized career advice, and provide a networking opportunity. Make sure to familiarize yourself with the suggested meeting structure and tips for getting the most out of these meetings [here](https://comptools.climatematch.io/professional_development/mentors.html). +- **Time zones 2 & 5:** + Use the first hour to brainstorm and start reviewing literature. + - **(15 min)** Start by discussing your initial project ideas! As a group, try to come up with one or a few questions of interest, either by yourselves or directly from the project template. Was there anything weird or intriguing you noticed in the data yesterday? Are there any questions in the template you find particularly exciting? + - **(30 min)** Start doing literature review using search engines like Google or Baidu. Look only at abstracts to select 2-3 promising ones. Revisit Step 2 of the tutorial on [good research practices](https://comptools.climatematch.io//tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial2.html) to review the literature more efficiently! + - **(15 min)** Report to the whole group what papers you found and pool them together. Assign one paper per person to read/skim. -The remaining time will be dedicated to brainstorming and reviewing the literature! The goal of this literature review is to find out what is known or has been hypothesized about your climate phenomenon, to determine what aspects are currently the most debated, and to help you define some keywords that you will use in your project proposal tomorrow. You do not need to come up with a completely original question! Do, however, situate your research within the relevant literature, and try to get hints/suggestions from other papers. Revisit Step 2 of the [tutorial on good research practices](https://comptools.climatematch.io/tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial2.html) to review the literature more efficiently! +- **Everyone:** + The remaining 2 hours will be used to conclude the literature review and define the research questions: + - **(1h)** On your own, read the paper that was assigned to you. Make notes in a common google doc shared with your group, and especially write down important keywords or concepts which you might use in your project proposal. If you are interested in a closed-access paper and are not connected to an .edu domain or a VPN, try to find full versions of papers on preprint servers like arXiv or bioRxiv. You could also ask your Teaching Assistants to get it for you (and they might in turn ask someone who has access to a university VPN). There might be other options too… + - **(30 min)** Report back to the group. In ~5 minutes, try to tell them as much as you understand about the paper. Get into details, but do not just read whole sections from the paper out loud. Ask the other students questions about the papers they are presenting to understand them better. + - **(30 min)** Discuss and synthesize information from the papers presented. Identify overlapping themes, concepts, or gaps in the research you have encountered. Based on these discussions, refine the initial questions the group came up with. Aim to narrow down to a primary research question that is specific, measurable, and relevant to the data and interests of the group. + - **(30 min)** Formulate the research question and devise a hypothesis. Discuss as a group what they expect to discover or what predictions they can make based on their literature review and understanding of the data. This hypothesis should guide your project's direction and the methods you will need to employ. +We encourage you to consider not only the physical science aspects of a climate phenomenon, but also its socio-economic impact. We understand that specific interests and motivations will vary even within project groups and becoming part of the Climatematch community is as much about finding your role in the team as it is about pursuing a specific personal research interest. Please consider your teammates interests and ideas with as much respect as your own. -* (**15 min**) Start by discussing your initial project ideas! As a group, try to come up with one or a few questions of interest, either by yourselves or directly from the project template. Was there anything weird or intriguing you noticed in the data yesterday? Are there any questions in the template you find particularly exciting? -* (**30 min**) On your own, start doing a literature review using search engines like Google or Baidu. Look only at abstracts to select 2-3 promising ones. -* (**15 min**) Report to the whole group what papers you found and pool them together. Assign one paper per person to read/skim in the next 1h. -* (**1 h**) On your own, read the paper that was assigned to you. Make notes in a common google doc shared with your group, and especially write down important keywords or concepts which you might use in your project proposal. If you are interested in a closed-access paper and are not connected to an .edu domain or a VPN, try to find full versions of papers on preprint servers like arXiv or bioRxiv. You could also ask your Teaching Assistants to get it for you (and they might in turn ask someone who has access to a university VPN). There might be other options too… -* (**30 min**) Report back to the group. In ~5 minutes, try to tell them as much as you understand about the paper. Get into details, but do not just read whole sections from the paper out loud. Ask the other students questions about the papers they are presenting to understand them better. - --- ### SESSION 4 -_Thursday, 20th July (PM) for groups in timezone slots 2 and 5_ - -_Friday, 21st July (AM) for groups in timezone slots 1, 3, and 4_ - -By the end of this project session, you should submit your project proposal via **[Airtable link](https://airtable.com/shrQ5CLEla3dDkKbk)**. -(**30 min**) Based on your observations on Day 2 and the literature review yesterday, try to converge on a research question and devise a hypothesis. Try to come up with one or a few questions of interest, either by yourselves or directly from the project template. We encourage you to consider not only the physical science aspects of a climate phenomenon, but also its socio-economic impact. Use the question boxes with dashed outlines for inspiration. We understand that specific interests and motivations will vary even within project groups and becoming part of the Climatematch community is as much about finding your role in the team as it is about pursuing a specific personal research interest. Please consider your teammates interests and ideas with as much respect as your own. +*Thursday, 18th July (PM) for groups in timezone slots 2 and 5* +*Friday, 19st July (AM) for groups in timezone slots 1, 3, and 4* -(**30 min**) By yourself, read the [Ten simple rules for structuring papers](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005619). Pay close attention to figure 1, and how it specifies the same overall structure for the abstract, for each paragraph in the paper, and for the paper as a whole. +**The goal of the day is to submit your project proposal via** **[Airtable link](https://airtable.com/shrQ5CLEla3dDkKbk)**. -(**1 h**) As a group, try to write a proposal for this project based on the way you understand it now, following the C-C-C scheme described in the _Ten simple rules_ paper. - - -* **Context**: scientific background and the knowledge gap your project will aim to fill. Include keywords and concepts that you identified in your literature review. -* **Content**: your hypothesis and a description of the analyses and the results (positive or negative) you would need to answer your question. -* **Conclusion**: the potential significance and societal impact of the work. - -The proposal can be a list of bullet points or a coherent paragraph; don’t worry about the structure too much. The goal is to structure your thoughts and ideas so that a person unfamiliar with the topic can understand the importance of your research question and approach.. - -(**30 min**) It is always revealing to present your research to someone who has never heard about it. Share your proposal with the other team in your pod and receive their proposal in return. In your group, read and discuss the other team’s abstract and write down some feedback. What do you understand about their project? What do you _not_ understand about it? When giving your feedback, keep in mind that the other research group has put a lot of effort into generating the proposal and may not have had time to polish the language or presentation of their ideas. We always aim to be direct and specific, but also polite, respectful, and kind in our communication with each other. - -(**30 min**) Work to address the feedback received from the other team. When done, submit the project proposal **[here](https://airtable.com/shrQ5CLEla3dDkKbk)**. Your proposal will not be graded, but its submission is required to receive a project badge on your Climatematch Academy certificate. +- **Everyone** + - **(30 min)** By yourself, read the Ten simple rules for structuring papers. Pay close attention to figure 1, and how it specifies the same overall structure for the abstract, for each paragraph in the paper, and for the paper as a whole. + - **(1.5 h)** As a group, try to write a proposal for this project based on the way you understand it now, following the C-C-C scheme described in the Ten simple rules paper. + - **Context:** scientific background and the knowledge gap your project will aim to fill. Include keywords and concepts that you identified in your literature review. + - **Content:** your hypothesis and a description of the analyses and the results (positive or negative) you would need to answer your question. + - **Conclusion:** the potential significance and societal impact of the work. +The proposal can be a list of bullet points or a coherent paragraph; do not worry about the structure too much. The goal is to structure your thoughts and ideas so that a person unfamiliar with the topic can understand the importance of your research question and approach. + - **(30 min)** It is always revealing to present your research to someone who has never heard about it. Share your proposal with the other team in your pod and receive their proposal in return. In your group, read and discuss the other team’s abstract and write down some feedback. What do you understand about their project? What do you not understand about it? When giving your feedback, keep in mind that the other research group has put a lot of effort into generating the proposal and may not have had time to polish the language or presentation of their ideas. We always aim to be direct and specific, but also polite, respectful, and kind in our communication with each other. + - **(30 min)** Work to address the feedback received from the other team. When done, submit the project proposal [here](https://airtable.com/shrQ5CLEla3dDkKbk). Your proposal will not be graded, but its submission is required to receive a project badge on your Climatematch Academy certificate. --- ### SESSION 5 -_Friday, 21st July (PM) for groups in timezone slots 2 and 5_ - -_Monday, 24th July (AM) for groups in timezone slots 1, 3, and 4_ -You should now have a sense of the data, and you have probably refined your hypothesis a little. Writing a proposal will have helped you get a rough idea of what tools you might use to tackle your research question, and what the answer could look like. You will use the remaining project time to implement the analyses you have planned and make progress towards an answer. Your group might not be able to complete their research plan, but don’t get discouraged: answering a research question usually takes months if not years of work and you should consider making meaningful progress towards that goal a great success! +*Friday, 19st July (PM) for groups in timezone slots 2 and 5* +*Monday, 22th July (AM) for groups in timezone slots 1, 3, and 4* -A few pieces of general advice: +**The goal of the day is to draft the analysis framework and allocate tasks**. You should now have a sense of the data, and you have probably refined your hypothesis a little. Writing a proposal will have helped you get a rough idea of what tools you might use to tackle your research question, and what the answer could look like. You will use the remaining project time to implement the analyses you have planned and make progress towards an answer. To this end, you should organize your time and plan accordingly. Keep in mind that your group might not be able to complete their research plan, but don’t get discouraged: answering a research question usually takes months if not years of work and you should consider making meaningful progress towards that goal a great success! +- **Time zones 1, 3 & 4:** + - **(1h)** **Professional Development - Impact Talk**: As agreed during introductions on W1D1, one project group in the pod should do this during the first hour of the project block, while the other should leave this for the last hour of the block. The talks cover topics such as 1) climate justice, 2) equity in climate science, 3) open climate science, and 4) communication in climate science. Each pod will select one topic to begin with, which will be followed by facilitated group discussions. Should there be additional time, students may opt to explore another topic. + +- **Everyone:** + - **(40 min)** Draft the analysis plan. Discuss the main methods and techniques to be used for analyzing the data. Consider different analytical approaches that could be applied and select the most appropriate ones for their specific data and questions. TAs are here to help you, if you know what analysis you need, but don’t know how to do it. They can point you to useful toolkits that may be difficult to find otherwise. + - **(20 min)** Divide the group into smaller teams or have them work individually based on their skills or areas of interest. Assign specific parts of the data analysis to each student or team, ensuring that everyone has a clear task that contributes to the overall project. Finally, create a timeline that includes specific dates for progress checks and integration points. Set specific goals for the remaining session. + - **(1h)** Start working on your project! A few pieces of general advice: + - Leverage existing tools: Try not to implement complicated analyses from scratch. Use existing toolkits, and learn how to use them well. This kind of knowledge is very helpful long-term. + - Focus on clear objectives: Keep your project goals clear and your activities aligned with achieving these goals. This helps in maintaining a direct path towards successful project outcomes. + - Maintain simplicity: Start with simple analyses and build complexity as needed. This approach helps in early detection of potential data issues and allows for easier troubleshooting. -* See if you can allocate tasks efficiently within the team! -* TAs are here to help you, if you know what analysis you need, but don’t know how to do it. They can point you to useful toolkits that may be difficult to find otherwise. -* Try not to implement complicated analyses from scratch. Use existing toolkits, and learn how to use them well. This kind of knowledge is very helpful long-term. - ---- -### SESSION 6 -_Monday, 24th July (PM) for groups in timezone slots 2 and 5_ - -_Tuesday, 25th July (AM) for groups in timezone slots 1, 3, and 4_ - ->**Professional Development:** Watch the interview about [Open Climate Science](https://comptools.climatematch.io/projects/professional_development/impact_talks.html#open-climate-science) and use the provided prompts to discuss the topic within your project group for 15 minutes. As agreed during introductions on W1D1, one project group in the pod should do this during the first 30 minutes of the project block, while the other should leave this for the last 30 minutes of the block. Also as decided on W1D1, two students should practice their leadership skills by leading the discussion from the front and from behind. - - -Continue working on your project! - - +- **Time zones 2 & 5:** + - **(1h)** Continuing working on your project. -* If you find a negative answer to your question, that is absolutely ok! Please do report that. Then go back and think about how this affects your initial hypothesis. Does it rule it out, or could there be limitations in this particular data that lead to the negative result? What other data could you seek out that would be more well-suited for answering this question? Try to design a new experiment in specific details and tell us about it. Who knows, somebody might run that experiment someday! -* If you find a positive result (i.e. the data matches your hypothesis), you should spend the rest of your time validating it to make absolutely sure it is a real effect. For example, if you created a proxy-based paleoclimate reconstruction of precipitation hydrogen isotopes (δD) to assess past changes in rainfall amount, there are a few factors you could consider to ensure that the climate signal in your data is real and reliable. Are the δD values in the part of your record closest to present similar to modern measurements of rainfall δD at your study site? Are there other factors in addition to your variable of interest (rainfall amount) that may be contributing to the δD signal in your data? Can you remove the effect of these other factors so that the dominant signal in your δD record is recording changes in rainfall amount? --- -### PROJECT DAY (W2D2) -_Tuesday, 25th July (AM) for groups in timezone slots 2 and 5_ - -_Tuesday, 25th July (PM) for groups in timezone slots 1, 3, and 4_ - -Watch the keynote talk _“Futures from the Frontiers of Climate Science”_ by Dr Paul Behrens. - - +### SESSION 6 -Continue working on your project for the rest of the day! Your pod’s Teaching Assistant will be around during the tutorial time block and your Project Teaching Assistant will be available during the project time block as usual. +*Monday, 23th July (PM) for groups in timezone slots 2 and 5* +*Tuesday, 24th July (AM) for groups in timezone slots 1, 3, and 4* -During the last hour of the tutorial block, there will be a **live** [career panel](https://comptools.climatematch.io/projects/professional_development/career_panels.html) with an opportunity to ask questions to the panelists: +**You set the goal of the day!** +- **Time zones 2 & 5:** + - **(1h)** **Professional Development - Impact Talk**: As agreed during introductions on W1D1, one project group in the pod should do this during the first hour of the project block, while the other should leave this for the last hour of the block. The talks cover topics such as 1) climate justice, 2) equity in climate science, 3) open climate science, and 4) communication in climate science. Each pod will select one topic to begin with, which will be followed by facilitated group discussions. Should there be additional time, students may opt to explore another topic. +- **Everyone:** +Continue working on your project! -* 8:00 - 9:00 UTC for groups in timezone slots 1 and 2 -* 14:30 - 15:30 UTC for groups in timezone slot 3 -* 20:30 - 21:30 UTC for groups in timezone slots 4 and 5 + - If you find a negative answer to your question, that is absolutely ok! Please do report that. Then go back and think about how this affects your initial hypothesis. Does it rule it out, or could there be limitations in this particular data that lead to the negative result? What other data could you seek out that would be more well-suited for answering this question? Try to design a new experiment in specific details and tell us about it. Who knows, somebody might run that experiment someday! + - If you find a positive result (i.e. the data matches your hypothesis), you should spend the rest of your time validating it to make absolutely sure it is a real effect. For example, if you created a proxy-based paleoclimate reconstruction of precipitation hydrogen isotopes (δD) to assess past changes in rainfall amount, there are a few factors you could consider to ensure that the climate signal in your data is real and reliable. Are the δD values in the part of your record closest to present similar to modern measurements of rainfall δD at your study site? Are there other factors in addition to your variable of interest (rainfall amount) that may be contributing to the δD signal in your data? Can you remove the effect of these other factors so that the dominant signal in your δD record is recording changes in rainfall amount? --- ### SESSION 7 -_Tuesday, 25th July (PM) for groups in timezone slots 2 and 5_ -_Wednesday, 26th July (AM) for groups in timezone slots 1, 3, and 4_ +*Tuesday, 23th July (PM) for groups in timezone slots 2 and 5* +*Wednesday, 24th July (AM) for groups in timezone slots 1, 3, and 4* + +**What is your goal for the day?** -Continue working on your project! Make sure to reconvene with your teammates every 1-1.5 hours to discuss your progress. If you are struggling with something, ask others for help right away! Use your Project Teaching Assistant and your pod’s Teaching Assistant as a resource when your group gets stuck. +- **Time zones 1, 3 & 4:** + - **(1h)** **Professional Development - Mentor meeting II:** During the first hour, your project group will be visited by mentors. In these meetings, they will share their professional path in a climate-related field, offer personalized career advice, and provide a networking opportunity. Make sure to familiarize yourself with the suggested meeting structure and tips for getting the most out of these meetings [here](https://comptools.climatematch.io/projects/professional_development/mentors.html). -On Day 7, the curriculum of the course will start shifting from topics surrounding physical climate phenomena to issues of socio-economic impact as well as mitigation and adaptation strategies. This is a good point to start thinking about the impact the research topic you are studying as part of your project has on ecosystems and communities. +- **Everyone:** + Continue working on your project! A couple of extra pieces of general advice: + - Collaborate effectively: Make sure to reconvene with your teammates every 1-1.5 hours to discuss your progress. If you are struggling with something, ask others for help right away! Use your Project Teaching Assistant and your pod’s Teaching Assistant as a resource when your group gets stuck. + - Document everything: Keep detailed records of your data analysis processes, decisions, and modifications. This practice is invaluable for revisiting your work and providing clear explanations during your project presentation. + - Think about the impact: On Day 7, the curriculum of the course will start shifting from topics surrounding physical climate phenomena to issues of socio-economic impact as well as mitigation and adaptation strategies. This is a good point to start thinking about the impact the research topic you are studying as part of your project has on ecosystems and communities. --- ### SESSION 8 -_Wednesday, 26th July (PM) for groups in timezone slots 2 and 5_ -_Thursday, 27th July (AM) for groups in timezone slots 1, 3, and 4_ +*Wednesday, 24th July (PM) for groups in timezone slots 2 and 5* +*Thursday, 25th July (AM) for groups in timezone slots 1, 3, and 4* + +**What is your goal for the day?** ->**Professional Development:** Watch the interview about [Psychology of the climate crisis and climate science communication](https://comptools.climatematch.io/projects/professional_development/impact_talks.html#psychology-of-the-climate-crisis-and-climate-science-communication) and use the provided prompts to discuss the topic within your project group for 15 minutes. As agreed during introductions on W1D1, one project group in the pod should do this during the first 30 minutes of the project block, while the other should leave this for the last 30 minutes of the block. Also as decided on W1D1, two students should practice their leadership skills by leading the discussion from the front and from behind. +- **Time zones 2 & 5:** + - **(1h)** **Professional Development - Mentor meeting II:** During the first hour, your project group will be visited by mentors. In these meetings, they will share their professional path in a climate-related field, offer personalized career advice, and provide a networking opportunity. Make sure to familiarize yourself with the suggested meeting structure and tips for getting the most out of these meetings [here](https://comptools.climatematch.io/projects/professional_development/mentors.html). -Continue working on your project and start thinking about your conclusions. +- **Everyone:** + Continue working on your project and start thinking about what are your main findings. It is okay to feel short of time but do not feel discouraged. Below, some final advice for the last part of your project implementation: + - Prioritize key tasks: Focus on the **essential** elements of your project that directly contribute to answering your research questions. + - Prepare for contingencies: If something isn’t working as planned due to time constraints, focus on alternatives that can achieve similar outcomes within the available time. -The project submission form you will complete tomorrow also includes a question about your interest in potentially **continuing your project after the course** as a Climatematch Impact Scholar. Please take a moment to [read about this opportunity](https://comptools.climatematch.io/projects/docs/continuing_your_project_after_the_course.html) and discuss it with your teammates and Teaching Assistants. + The project submission form you will complete tomorrow also includes a question about your interest in potentially **continuing your project after the course** as a Climatematch Impact Scholar. Please take a moment to [read about this opportunity](https://comptools.climatematch.io/projects/docs/continuing_your_project_after_the_course.html) and discuss it with your teammates and Teaching Assistants. --- ### SESSION 9 -_Thursday, 27th July (PM) for groups in timezone slots 2 and 5_ - -_Friday, 28th July (AM) for groups in timezone slots 1, 3, and 4_ - -Tie up loose ends and prepare a short slideshow about your project! - -At the end of this project block, you should submit your slides via **[this Airtable link](https://airtable.com/shr7EAY3x39x8swZu)**. - -Keep in mind that you will be giving a live presentation of your project to your megapod peers after the final tutorial block on 28th July. - -Use [this presentation template](https://docs.google.com/presentation/d/13sSzoXhTq7R5YKznbPXH2Fo7IboMDaFKEhWQOOchT14/edit?usp=sharing). Make a copy for your team to edit! - -You can add your group name and project title to the bottom panel of non-title slides through **Slide** -> **Edit theme**. +*Thursday, 25th July (PM) for groups in timezone slots 2 and 5* +*Friday, 26th July (AM) for groups in timezone slots 1, 3, and 4* -#### **Content** +**The goal of the day is to interpret your results and identify conclusions.** -The 1 minute - 1 slide rule might seem like an impossible limit. However, it is one of the most useful formats you can learn, often referred to as a “one minute elevator pitch”. If you can become an expert at giving short pitches about your work, it will help you get the interest of a lot of people, for example when presenting posters at scientific conferences or when advocating for policy changes with your local government. Or when you accidentally find yourself in an elevator with a potential investor: this could be your chance to secure a million dollars in research funds! +Use this session to wrap up your main findings: +- You can list these in bullet points and emphasize how they address the research questions or contribute to understanding the underlying problem. In case of any unexpected results, discuss with your pod and theorize why they might have occurred. All results are valid! +- Link your results to literature. Compare your findings with your reviewed literature. How do your results support, contradict or expand the current knowledge? +- Based on the findings and their implications, draft your conclusions. -The key to a good presentation is to practice it by yourself many times. It is no different from other performing arts (acting, playing a musical instrument etc), where rehearsals are crucial to a good performance. +--- +### W2D5: Project day and final presentations -If something in your presentation does not sound good or does not make sense, you WILL get annoyed by it when you say it the tenth time, and that will make you want to change it. (Secret: this how professors prepare all of their presentations and it is why they always sound like they know what they are talking about) +*Friday, 26th July (AM) for groups in timezone slots 2 and 5* +*Friday, 26th July (PM) for groups in timezone slots 1, 3, and 4* -Always have an introduction slide and a conclusion slide. If your group is relatively large (>=5 people), then someone should be assigned to each of the intro and conclusion slides. If your group is small, then the same person can present the intro + next slide, or conclusion slide + previous slide. +**The goal of the day is to communicate your results in the final presentation.** +Tie up loose ends and prepare a short slideshow about your project! Your pod’s Teaching Assistant will be around during the tutorial time block and your Project Teaching Assistant will be available during the project time block as usual +“Project day” will be dedicated to preparing your presentation and rehearsing. In this block you will have 4 hours: -Short anecdotes can work like magic for engaging your audience. As a rule, most listeners are passive, bored, not paying attention. You can grab their attention with that smart elevator pitch, or with a short anecdote about something that happened to your group while working on projects. +- **(1h)** Finalize visuals: Complete any graphs, charts, or visual aids that will be used in your presentation. +- **(2h)** Use this [presentation template](https://docs.google.com/presentation/d/1OuL12zI0_hEfS_C_t_Lhc4n7vFVnLp7omtWZoTWLqWg/edit#slide=id.p). Make a copy for your team to edit! You can add your group name and project title to the bottom panel of non-title slides through **Slide -> Edit theme**. + Consider these suggestions: + - Content : The 1 minute - 1 slide rule might seem like an impossible limit. However, it is one of the most useful formats you can learn, often referred to as a “one minute elevator pitch”. + - Always have an introduction slide and a conclusion slide. If your group is relatively large (>=5 people), then someone should be assigned to each of the intro and conclusion slides. If your group is small, then the same person can present the intro + next slide, or conclusion slide + previous slide. + - It's completely normal if your group doesn't achieve expected results. If this is true for your group, the main goal will be to explain the logic behind your project proposal. For instance, if you designed a project to compare climate datasets to analyze the impact of El Niño Southern Oscillation (ENSO) on global temperatures, but couldn't find the appropriate data to get answers, this is still valuable. In the case of this example, the takeaways from your project could potentially highlight the need for more temperature data from specific regions or time periods in order to assess ENSO variability. What got you excited about this particular project? What could your project evolve into if given more time and resources? + Once your slides are finished, you should submit the file via [this Airtable link](https://airtable.com/shr7EAY3x39x8swZu). +- **(1h)** The key to a good presentation is to practice it by yourself many times. It is no different from other performing arts (acting, playing a musical instrument etc), where rehearsals are crucial to a good performance. -Most groups will not have a result and this is absolutely normal. If this is true for your group, the main goal will be to communicate the logic of your project proposal. For example, did you design an innovative comparison of climate datasets to assess the impact of El Niño Southern Oscillation (ENSO) on global temperature, but then did not find the appropriate data to get answers (e.g., the spatial and temporal resolution of the data available was not sufficient to answer your question)? That can also be very interesting for others to hear about! Furthermore it will make it clear that research never stops. It continues as a series of questions and answers, not just within your own project, but at the level of the entire research field. In the case of this example, the takeaways from your project could potentially highlight the need for more temperature data from specific regions or time periods in order to assess ENSO variability. Tell us what got you excited about this particular project, and try to dream big. What could your project evolve into if given more time and resources? --- -### W2D5: FINAL PRESENTATIONS -_Friday, 28th July (PM) for everyone!_ - -This is the day you present your project to other groups in your megapod. You can invite your Project Teaching Assistant too, but they might not make it if they are busy. Groups will take turns to share their screens. You can use figures and other graphics to highlight specific aspects of your research, but your presentation is meant to be told as a story, and everyone from your group should take their turn in telling a part of that story. Tell us about the different hypotheses you have had at different points and how you refined them using some of the tools you learned during the course. - +### Final Presentations -#### **Schedule** +This is the time you present your project to other groups in your megapod. You can invite your Project Teaching Assistant too, but they might not make it if they are busy. Groups will take turns to share their screens. Keep in mind that your presentation is meant to be told as a story, and everyone from your group should take their turn in telling a part of that story. Tell us about the different hypotheses you have had at different points and how you refined them using some of the tools you learned during the course. -* **10 minutes of meet & greet**. Do a round of introductions (one Teaching Assistant calls out names from the zoom list). Everyone says their name, pod name, position, institution or other area of work, and subject of study, as well as one interesting fact about themselves. “Hi, I’m Jonny from the wiggly caterpillars and I am a PhD student at University of Notre Dame in Paris. I study the relationship between moisture and storms, and in my free time I like to go on long bike rides”. -* **30-40 minutes of presentations**, including questions. Each group should speak for approximately 5 minutes (depending on group size), and then take questions for 1-2 minutes. The Lead Teaching Assistant of your megapod will determine the order of presentations. -* **10-20 minutes of general discussion**. Use the following questions to guide the group discussion. Spend a few minutes on each question. It’s ok not to use all these questions, especially if you have your own questions to ask! - * What was missing in the dataset that you would have really liked to have? - * Does anyone plan to continue working on this project in the future? Climatematch Academy will be able to support selected groups with the computing resources required to take projects to the next level. Read more about the opportunity to become a Climatematch Impact Scholar [here](https://comptools.climatematch.io/projects/docs/continuing_your_project_after_the_course.html). - * Which one of the 8 steps of good research practices was hardest and why? - * Based on your experience with the project, what project would you most like to do next? Make up your own, or pick from the other projects available in the course. - * What surprised you the most about the process of working on a project? In what way was this project most different from other projects you have worked on in the past? - * What technique did you learn in the course that you think you can immediately apply to your own project (if you are currently doing research)? - - -#### **Logistics** +--- +#### Schedule +- **10 minutes of meet & greet.** Do a round of introductions (one Teaching Assistant calls out names from the zoom list). Everyone says their name, pod name, position, institution or other area of work, and subject of study, as well as one interesting fact about themselves. “Hi, I’m Jonny from the wiggly caterpillars and I am a PhD student at University of Notre Dame in Paris. I study the relationship between moisture and storms, and in my free time I like to go on long bike rides''. + +- **30-40 minutes of presentations, including questions.** Each group should speak for approximately 5 minutes (depending on group size), and then take questions for 1-2 minutes. The Lead Teaching Assistant of your megapod will determine the order of presentations. + +- **10-20 minutes of general discussion.** Use the following questions to guide the group discussion. Spend a few minutes on each question. It’s ok not to use all these questions, especially if you have your own questions to ask! + - What was missing in the dataset that you would have really liked to have? + - Does anyone plan to continue working on this project in the future? Climatematch Academy will be able to support selected groups with the computing resources required to take projects to the next level. Read more about the opportunity to become a Climatematch Impact Scholar [here](https://comptools.climatematch.io/projects/docs/continuing_your_project_after_the_course.html ). + - Which one of the 8 steps of good research practices was hardest and why? + - Based on your experience with the project, what project would you most like to do next? Make up your own, or pick from the other projects available in the course. + - What surprised you the most about the process of working on a project? In what way was this project most different from other projects you have worked on in the past? + - What technique did you learn in the course that you think you can immediately apply to your own project (if you are currently doing research)? + +--- +#### Logistics -Presentations will take place 1.5 hours after the end of your W2D5 tutorials. **For groups in timezone slots 1, 3, 4, this will fall outside of their regular course hours.** +Presentations will take place right after the block of the preparation on W2D5 (AM for Time Zones 2 & 5, PM for Time zones 1, 3 & 4). You will present to other groups (3-5 groups per room). An email will be sent with the zoom room of one of the pods and all groups will meet there for one hour. There is a hard cutoff at the one hour mark, and it will be the Teaching Assistants’ responsibility to ensure everyone gets a turn to present. @@ -257,11 +268,12 @@ Do not introduce yourselves again, just present the material directly. When you are done presenting, leave the last slide up (with conclusions), and open the floor for questions. - -#### **Questions** +--- +#### Questions If your presentation was short enough, there is time for questions from the audience. These are a great way to get feedback on your project! Before you ask a question, consider whether others might be interested in that topic too. This usually means asking big picture questions, as opposed to detailed, technical questions, but there are exceptions. If you are answering the question, try to be short and concise. Your audience will notice if you start rambling, and it can seem as if you are avoiding the question. Answering concisely is another very useful skill in “real life”. It also means that you can take more questions given our time constraints. + diff --git a/projects/past-projects/ENSO.ipynb b/projects/past-projects/ENSO.ipynb index 8c31d62cf..d0b4634eb 100644 --- a/projects/past-projects/ENSO.ipynb +++ b/projects/past-projects/ENSO.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# The impact of ENSO on precipitation and temperature\n", "## 2023\n", @@ -16,8 +18,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "179b4fa22e42487e8a8f7a8bcbf4754d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -25,10 +45,9 @@ "\n", "filename = \"2023ENSO_Effects_of_ENSO_related_precipitation_on_East_Africa\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -38,7 +57,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Environmental impacts of ENSO flavours along the California Current system\n", "**Authors**: Po Cheng Chen, Joseph C. Smith, Paulina Cetina-Heredia\n", @@ -50,8 +71,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ae6332b700884dce97744f88d01fc814", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -59,10 +98,9 @@ "\n", "filename = \"2023ENSO_Environmental_impacts_of_ENSO_flavours_along_the_California_Current_system\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -72,7 +110,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### ENSO impacts on the precipitation at the US East coast\n", "**Authors**: Adeyemi Fagbade, Nicolás Peñaranda, Romeo Saldívar-Lucio\n", @@ -83,8 +123,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "482f9ccb3582434c9fd4ee4f8ed2e366", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -92,10 +150,9 @@ "\n", "filename = \"2023ENSO_ENSO_impacts_on_the_precipitation_at_the_US_East_coast\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -105,7 +162,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of SST variations due to ENSO in rainfall index and possible social impacts in Southern Brazil\n", "**Authors**: Ana Belén Arroyo, Camile Chiodini, Flavio Provitina, Gabriel Soares, Lívia Sancho, Natália Rossi, Travessia Leal\n", @@ -117,8 +176,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e7ba823ae7374269817d8d80aaccf1f0", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -126,10 +203,9 @@ "\n", "filename = \"2023ENSO_Impact_of_SST_variations_due_to_ENSO_in_rainfall_index_and_possible_social_impacts_in_Southern_Brazil\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -139,7 +215,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of El Niño events on rainfall, temperature, and vegetation in Indonesia\n", "**Authors**: Steven Jerjian, Christian Riveros Lizana, Laurel DiSera, Elisa Passos, Ninibeth Sarmiento, Lakhvinder Kaur, Santiago Munevar\n", @@ -150,8 +228,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "97fe5a9ccb414bd9867f7392096f2628", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -159,10 +255,9 @@ "\n", "filename = \"2023ENSO_Impact_of_El_Nino_events_on_rainfall_temperature_and_vegetation_in_Indonesia\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -172,7 +267,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Coastal El Niño Index impact on air temperature and precipitation anomalies and future projections\n", "**Authors**: Daphne Arenas, Selyn Acuña\n", @@ -183,8 +280,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3d3391ebc789440c986375dc328017a1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -192,10 +307,9 @@ "\n", "filename = \"2023ENSO_Coastal_El_Nino_index_impact_on_air_temperature_and_precipitation_anomalies_and_future_projections\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -205,7 +319,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### The impact of different phases of El Niño-Southern Oscillation (ENSO) on the precipitation intensity in West Africa\n", "**Authors**: Daria Proklova, Emmanuel Mashonjowa, Joana Dopp, Ludovica Vissat, Obiageri Mbah\n", @@ -216,8 +332,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e0db7413f81c4363a33bdf03cfc82a91", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -225,10 +359,9 @@ "\n", "filename = \"2023ENSO_The_impact_of_different_phases_of_ENSO_on_the_precipitation_intensity_in_West_Africa\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -238,7 +371,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Extraordinary ENSO El Niño (1997-98) on East Africa\n", "**Authors**: Ximena Miranda, Sergei Nabatov, Abdus Samad, Jesús Pozo T., Alethia Kielbasa\n", @@ -249,8 +384,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cd43b6d731634ee9bac08e774fa5c55d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -258,10 +411,9 @@ "\n", "filename = \"2023ENSO_Extraordinary_ENSO_El_Nino_1997_98_on_East_Africa\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -271,7 +423,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### The impact of ENSO on coastal ocean productivity\n", "**Authors**: Elizaveta Baranova-Parfenova, Andrea A. Cabrera, Vanni Consumi, Diana Guzmán, Sthitapragya Ray\n", @@ -283,8 +437,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "62ef0ea275b2423b8b3b45ecbec68a91", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -292,10 +464,9 @@ "\n", "filename = \"2023ENSO_The_impact_of_ENSO_on_coastal_ocean_productivity\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -305,7 +476,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Effects of ENSO on sugarcane production in Brazil\n", "**Authors**: Tomas Alegre, Katherine Wood, Maria Perez, María Fernanda De Los Ríos\n", @@ -316,8 +489,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8b0e32c7f0b64cbd9fd06cde3f243371", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -325,10 +516,9 @@ "\n", "filename = \"2023ENSO_Effects_of_ENSO_on_sugarcane_production_in_Brazil\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -338,7 +528,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### The Impact of ENSO on precipitation in the Philippines\n", "**Authors**: Neil Marc Sordilla, Kirtana Phatnani, Kimia Marvi, Anjana Shree\n", @@ -349,8 +541,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ab1d171b0aa04c7f8274922a22f76666", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -358,10 +568,9 @@ "\n", "filename = \"2023ENSO_The_impact_of_ENSO_on_precipitation_in_the_Philippines\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -371,7 +580,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of ENSO on Monsoon onset and the total precipitation in the Maritime Continent during wet seasons\n", "**Authors**: Zhixian Yang, Rosmery Lidez Condori Huanca, Tejaswini Machhindra Pawase, Naomi Nafisa Rahman, Md. Aminul Haque Laskor\n", @@ -382,8 +593,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1c71a65f63ce483eaea044839c772021", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -391,10 +620,9 @@ "\n", "filename = \"2023ENSO_Impact_of_ENSO_on_Monsoon_onset_and_the_total_precipitation_in_the_Maritime_Continent_during_wet_seasons\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -404,11 +632,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "ENSO", + "toc_visible": true }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/projects/past-projects/albedo.ipynb b/projects/past-projects/albedo.ipynb index ba2c1204b..19b5bf018 100644 --- a/projects/past-projects/albedo.ipynb +++ b/projects/past-projects/albedo.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# Changes in land cover: Albedo and carbon sequestration\n", "## 2023\n", @@ -16,8 +18,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "30e816a1b0364d9c8e67c9688e973365", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -25,10 +45,9 @@ "\n", "filename = \"2023ALB_Albedo_and_deforestation_in_protected_areas_in_Myanmar\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -38,7 +57,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Changes in land cover: Albedo and carbon sequestration\n", "**Authors**: Seyed Farhad Saberali, Sattiki Ganguly, Lobat Kosari Moghaddam, Sandeep Gawdiya\n", @@ -49,8 +70,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7376693829e24fbd9ba2b5543086652b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -58,10 +97,9 @@ "\n", "filename = \"2023ALB_Changes_in_land_cover_Albedo_and_carbon_sequestration\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -71,7 +109,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Changes in land cover: Albedo and temperature in Mato Grosso\n", "**Authors**: Manojna Polisetty, Andres Fernando Figueroa Curo, Carla Balcazar, Astrid Yusara, Daniela Velásquez Gushiken, Magnolia Song, Min Yee Chin\n", @@ -82,8 +122,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "21b475d84fbe4c7f84317ca2e4203519", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -91,10 +149,9 @@ "\n", "filename = \"2023ALB_Changes_in_land_cover_Albedo_and_temperature_in_Mato_Grosso\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -104,7 +161,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Effects of land use change on albedo in Lake Chad Basin\n", "**Authors**: Gregori de Arruda Moreira, Kamil Vlcek, Amadou Toure, Djidjoho Renaud Roméo Koukoui, Tatiana Shevel, Marek Miltner, Rebekka Steene\n", @@ -115,8 +174,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ec0edd037b2c4fa38655c5c4dfb19454", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -124,10 +201,9 @@ "\n", "filename = \"2023ALB_Effects_of_land_use_change_on_albedo_in_Lake_Chad_Basin\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -137,7 +213,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of albedo changes due to tropical deforestation in Bolivia on regional meteorological variables and building a model to estimate GPP\n", "**Authors**: Svetlana Travova, Carlos Cárdenas, Abdelrahman Saleh, Sébastien Saelens, Constantin Drabo, Daniel T. Quaye\n", @@ -148,8 +226,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "36c17e0599ee499db5372f89027e4c87", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -157,10 +253,9 @@ "\n", "filename = \"2023ALB_Impact_of_albedo_changes_due_to_tropical_deforestation_in_Bolivia_on_regional_meteorological_variables_and_building_a_model_to_estimate_GPP\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -170,7 +265,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Mangrove land use changes and its impact on climate variables in Indonesia\n", "**Authors**: Lucas Bretschneider, Ivonne Roa, Ali Barmaki, Samar Nikfarjad\n", @@ -181,8 +278,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4677f9908ab6455d8c1a3de735280ab3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -190,10 +305,9 @@ "\n", "filename = \"2023ALB_Mangrove_land_use_changes_and_its_impact_on_climate_variables_in_Indonesia\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -203,7 +317,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Modeling albedo variation in Mozambique due to the 2010 wildfire event\n", "**Authors**: Sofia Corradi, Marcela Olguin, Jack Smith, Amin Azimi, Solomon Osheidu\n", @@ -214,8 +330,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bfcac4e12056477eb7fa42904e78d943", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -223,10 +357,9 @@ "\n", "filename = \"2023ALB_Modeling_albedo_variation_in_Mozambique_due_to_the_2010_wildfire_event\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -236,11 +369,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "albedo", + "toc_visible": true + }, + "kernel": { + "display_name": "Python 3", + "language": "python", + "name": "python3" }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/projects/past-projects/heatwaves.ipynb b/projects/past-projects/heatwaves.ipynb index 9cb621204..5c96cfba5 100644 --- a/projects/past-projects/heatwaves.ipynb +++ b/projects/past-projects/heatwaves.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# Heatwaves: Assessing the dynamic interactions of the atmosphere and land\n", "\n", @@ -17,8 +19,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7e6186d38db84fe4aa1853a66c34b8f2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -26,10 +46,10 @@ "\n", "filename = \"2023HW_Automated_heatwave_detection_using_historical_stimulations_from_CMIP6\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -39,7 +59,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### The occurrence of heat waves in connection to global warming in the Mediterranean region\n", "**Authors**: Alba Monistrol, Farukcan Sağlam, Lana Flanjak, Natalia Gabdrakhmanova \n", @@ -50,8 +72,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "56352b9840584a0ebb0419016589c514", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -59,10 +99,10 @@ "\n", "filename = \"2023HW_The_occurrence_of_heatwaves_in_connection_to_global_warming_in_the_Mediterranean_region\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -72,7 +112,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Heatwaves and land surface albedo / urbanization in China\n", "**Authors**: Abolfazl Ghadimi, Manuela Vanegas Ferro, Matteo Alleman, Rebecca Roycroft\n", @@ -83,8 +125,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4fc4ef99bae148e99081c7e120ff0ac0", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -92,10 +152,10 @@ "\n", "filename = \"2023HW_Heatwaves_and_land_surface_albedo_urbanization_in_China\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -105,7 +165,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Heatwave scenario in Asia region\n", "**Authors**: Ahmad Rashiq, Seyed Mehdi Mirbazel, Arihant Jain, Ruchir Patidar\n", @@ -116,8 +178,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8127d3b986b0417b943b22f0400b81e8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -125,10 +205,10 @@ "\n", "filename = \"2023HW_Heatwave_scenario_in_Asia_region\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -138,7 +218,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Heatwave Characterization in Humid Prone Areas: India\n", "**Authors**: Zeus Gracia Tabuenca, Weiling Shao, Saema Miftah, Zoe Harrington\n", @@ -149,8 +231,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d6077972dd8245fc8c540b3d6d5f4cf1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -158,10 +258,10 @@ "\n", "filename = \"2023HW_Heatwave_characterization_in_humid_prone_areas_India\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -171,7 +271,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Temporal variations in Heatwave in West Africa during 1950-2014\n", "**Authors**: Ara Lee, Saidat Rasaq-Balogun, Idrees Muhammad, Kelvin Fiati\n", @@ -182,8 +284,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f67ca90e26454dfda847ec9892adcce2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -191,10 +311,10 @@ "\n", "filename = \"2023HW_Temporal_variations_in_heatwave_in_West_Africa_during_1950_2014\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -204,11 +324,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "heatwaves", + "toc_visible": true }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/projects/past-projects/ocean_acidification.ipynb b/projects/past-projects/ocean_acidification.ipynb index e72190472..8f4dab8c1 100644 --- a/projects/past-projects/ocean_acidification.ipynb +++ b/projects/past-projects/ocean_acidification.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# Ocean acidification\n", "## 2023\n", @@ -16,8 +18,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d271d43ec66b4475bac9919e6a33739a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -25,8 +45,8 @@ "\n", "filename = \"2023OA_The_relationship_between_sea_surface_temperature_and_ocean_acidification_in_Shanghai_during_1990_and_2010\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", "# @markdown\n", "out = widgets.Output()\n", @@ -38,7 +58,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### The effect of ocean acidification on marine species population and coastal industry/community health\n", "**Authors**: Prani Nalluri, Ali Haydaroglu, Trilce Loayza, Archana Panway, Mohamed Elhadary\n", @@ -49,8 +71,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e086bbc9dae14594b906b5b163f5988e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -58,8 +98,8 @@ "\n", "filename = \"2023OA_The_effect_of_ocean_acidification_on_marine_species_population_and_coastal_industry_community_health\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", "\n", "# @markdown\n", "out = widgets.Output()\n", @@ -71,11 +111,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "ocean_acidification", + "toc_visible": true + }, + "kernel": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/projects/past-projects/precipitation.ipynb b/projects/past-projects/precipitation.ipynb index 99a843b43..f08084752 100644 --- a/projects/past-projects/precipitation.ipynb +++ b/projects/past-projects/precipitation.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# Regional precipitation variability and extreme events\n", "## 2023\n", @@ -16,8 +18,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d0e418de3c654fcf820fb8bc357a6b63", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -25,10 +45,10 @@ "\n", "filename = \"2023RPV_Assessing_spatiotemporal_precipitation_variability_and_extreme_events_in_India\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -38,7 +58,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### A spatiotemporal assessment of the high-resolution CHIRPS rainfall dataset over the vegetation in Nepal and Sri Lanka Region\n", "**Authors**: Akanksha Soni, Zhujun Shao, Swarnadeep Mukherjee, Terezia Klasova​, Aanchal Goel\n", @@ -49,8 +71,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "715053c0b8734475b5b3fd016aeae4b5", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -58,10 +98,10 @@ "\n", "filename = \"2023RPV_A_spatiotemporal_assessment_of_the_high_resolution_CHIRPS_rainfall_dataset_over_the_vegetation_in_Nepal_and_Sri_Lanka_Region\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -71,7 +111,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Using global climate model and remote sensing data to identify extreme precipitation, climatological, and NDVI trends in the Deccan region of India\n", "**Authors**: Ila Gupta, Ghadi El Hasbani, Lynn Maalouf\n", @@ -82,8 +124,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "148e5b1203e348cea4dc90756a143d2f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -91,10 +151,10 @@ "\n", "filename = \"2023RPV_Using_global_climate_model_and_remote_sensing_data_to_identify_extreme_precipitation_climatological_and_NDVI_trends_in_the_Deccan_region_of_India\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -104,7 +164,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### ENSO's impact on Amazon Basin: Assessing the relationship between climate anomalies and regional precipitation variability\n", "**Authors**: Luciana Rojas, Ricardo Rengifo, Franco Barrionuevo, Cristian Farfán\n", @@ -115,8 +177,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a6646b71da264c578b0b9e9ff339eb58", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -124,10 +204,10 @@ "\n", "filename = \"2023RPV_ENSO_impact_on_Amazon_basin_Assessing_the_relationship_between_climate_anomalies_and_regional_precipitation_variability\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -137,7 +217,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### How extreme precipitation influence vegetation greenness in the center region of Cameroon between 2001 and 2020?\n", "**Authors**: Sarth Dubey, Himanshu Ahuja, Aboudi MANA SUZANNE CHRISTINE, Juan Barrios, Bijay Bagale, Foulna Carmel TCHEOBE\n", @@ -148,8 +230,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d55cbf88b29c4bf08ad00458f38d00bb", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -157,10 +257,10 @@ "\n", "filename = \"2023RPV_How_extreme_precipitation_influences_vegetation_greenness_in_the_center_region_of_Cameroon_between_2001_and_2020\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -170,7 +270,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Assessment of the extreme precipitation events frequency and its impact on the Yucatan Peninsula vegetation coverage\n", "**Authors**: Elisa Ortiz Melchor, Ricardo Adolfo Hidalgo Rodriguez, Jean-Claude Jim Kevin Schwarzens, María Elena Velázquez Ferrera\n", @@ -181,8 +283,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "00d9c0f556da4a15b54f017d7aab2278", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -190,10 +310,10 @@ "\n", "filename = \"2023RPV_Assessment_of_the_extreme_precipitation_event_frequency_and_its_impact_on_the_Yucatan_Peninsula_vegetation_coverage\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -203,7 +323,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of extreme precipitation on vegetation cover in Indonesia\n", "**Authors**: Livinia Saputra, Jazmín Moreno, Moon Limb\n", @@ -214,8 +336,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fc34236025df49b49cd4bc33a77fdcad", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -223,10 +363,10 @@ "\n", "filename = \"2023RPV_Impact_of_extreme_precipitation_on_vegetation_cover_in_Indonesia\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -236,7 +376,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of La Niña on vegetation and precipitation in the Greater Horn of Africa\n", "**Authors**: Adewale Olabintan, Arnaz Khan, Hailun Xie, Franklin Njaiwo Ngalim, Kenechi Omeke, Olabanji Aladejana, João Martins, Mame Balla Ndiaye\n", @@ -247,8 +389,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "88546fd7885143f985ca6c35e6450ead", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -256,10 +416,10 @@ "\n", "filename = \"2023RPV_Impact_of_La_Nina_on_vegetation_and_precipitation_in_the_Greater_Horn_of_Africa\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -269,7 +429,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of deforestation and ENSO on precipitation patterns and cereal production in Congo River Basin\n", "**Authors**: Pratik Bhandari, Lorenzo Pierini, Magda Altman, James Hartzell, Pelin Cansu Çavuş Gürcan, Masoumeh Bahri, Rajiv Srivastava, Eriola ADENIDJI\n", @@ -280,8 +442,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "990e17b7ddb3487f981165dfd01e07b2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -289,10 +469,10 @@ "\n", "filename = \"2023RPV_Impact_of_deforestation_and_ENSO_on_precipitation_patterns_and_cereal_production_in_Congo_River_Basin\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -302,7 +482,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Relationship between extreme precipitation events and vegetation cover in the Amazon basin\n", "**Authors**: Botetano Bastidas, Gianella Campos Sanchéz, Kevin Cardona Barrero, Salvador Diez, Francisco Peña, Manuel Romero Arrieta, Sebastián Sanchez, Juan Manuel \n", @@ -313,8 +495,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b4b430db341f42d3ad55347e1facab7d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -322,10 +522,10 @@ "\n", "filename = \"2023RPV_Relationship_between_extreme_precipitation_events_and_vegetation_cover_in_the_Amazon_basin\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -335,7 +535,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Relationship between precipitation extremes and cereal productivity in West Africa over 30years\n", "**Authors**: Joshua Fafanyo, Emmanuel Agbo, Kayode Florence, Janet Osie, Taiwo Ewulo, Ismailia Elimane, Amadou Ndiaye\n", @@ -346,8 +548,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0a8521e50387439ab334ef2fc41bc16b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -355,10 +575,10 @@ "\n", "filename = \"2023RPV_Relationship_between_precipitation_extremes_and_cereal_productivity_in_West_Africa_over_30_years\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -368,7 +588,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Effects of precipitation extreme events on maize yield in Maracaju (Brazil)\n", "**Authors**: Lucia Chamlian Munari, Eduardo Gelcer, Hamanda Cavalheri, Chioma Aliku, ANNADASANKAR ROY, Astrid Helena Huechacona Ruiz, Lindsay Barbieri, Arash Nabizadeh Haghighi, Attai Aabubakar, Weld Lucas Cunha, Domenico BOVIENZO\n", @@ -379,8 +601,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3595c83e0e954bd49d172f5321e57ce0", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -388,10 +628,10 @@ "\n", "filename = \"2023RPV_Effects_of_precipitation_extreme_events_on_maize_yield_in_Maracaju_Brazil\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -401,7 +641,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Assessment of rainfall variability on cereal yield and food security in Australia.\n", "**Authors**: Felicia Dogbey, Krishna Kanhaiya Tiwari, Femi Akinduyite, Harold Cotacallapa Mamani\n", @@ -412,8 +654,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "571060d08368441f8db109bdd672e3b0", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -421,10 +681,10 @@ "\n", "filename = \"2023RPV_Assessment_of_rainfall_variability_on_cereal_yield_and_food_security_in_Australia\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -434,7 +694,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Impact of drought conditions on food security in the Sahelian region of West Africa\n", "**Authors**: Abimbola Sekinat Abimbola, Adam Muhhamed Adam, Ingrid Ubeda Trujillo, Opeyemi Hammed Rasaq, Khushi Dani\n", @@ -445,8 +707,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "add7dc0fcd3a4e6db5fc62508a12b9eb", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -454,10 +734,10 @@ "\n", "filename = \"2023RPV_Impact_of_drought_conditions_on_food_security_in_the_Sahelian_region_of_West_Africa\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -467,11 +747,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "precipitation", + "toc_visible": true }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/projects/past-projects/sea_level_rise.ipynb b/projects/past-projects/sea_level_rise.ipynb index 257dca74a..720c554ea 100644 --- a/projects/past-projects/sea_level_rise.ipynb +++ b/projects/past-projects/sea_level_rise.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# Sea level rise\n", "## 2023\n", @@ -16,8 +18,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8f37aaa103f74bb98c7a65b43d3021c8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -25,10 +45,10 @@ "\n", "filename = \"2023SLR_Investigating_the_relationship_between_sea_level_rise_and_extreme_events_in_Indonesia\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -38,7 +58,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Rapa Nui: A world heritage site threatened by sea level rise\n", "**Authors**: Julieta Millan, Emma Poirier, Mitzy Quinto-Cortes, Carlos Vivar Rios, Yang Zhang\n", @@ -49,8 +71,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4543460d683340499051059ee8344ce5", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -58,10 +98,10 @@ "\n", "filename = \"2023SLR_Rapa_Nui_A_world_heritage_site_threatened_by_sea_level_rise\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -71,7 +111,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### After (during and before) the storm: Comparing SSH data systems\n", "**Authors**: James Milward, Ruben Espeleta Bolivar, Abdul Aizat Nazmi Bin A Azmi, Faith Hunja, Ayman Said, Hannah Krohn, Franck Porteous\n", @@ -82,8 +124,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "90d8275cba784b98af2cce67ad814793", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -91,10 +151,10 @@ "\n", "filename = \"2023SLR_After_during_and_before_the_storm_Comparing_SSH_data_systems\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -104,7 +164,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Sea level rise and seagrass distribution\n", "**Authors**: Sanket Riswadkar, Vanessa Nakonecnij, Donia Waffa, FERDINARD OBENG-FORSON, Erik Zhivkoplias, Dkawlma Tora\n", @@ -115,8 +177,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bbb6fda443da4b4b828a7de035b95a5c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -124,10 +204,10 @@ "\n", "filename = \"2023SLR_Sea_level_rise_and_seagrass_distribution\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -137,7 +217,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Sea level rise: model variability and community impact\n", "**Authors**: Carlo Peiffer, Gaia Buccino, Elena Corona, Arpit Ayang Doley, Ben Arnon\n", @@ -148,8 +230,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "49886ad1579a4a838e7300834f9bf6fb", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -157,10 +257,10 @@ "\n", "filename = \"2023SLR_Sea_level_rise_model_variability_and_community_impact\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -170,11 +270,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "sea_level_rise", + "toc_visible": true + }, + "kernel": { + "display_name": "Python 3", + "language": "python", + "name": "python3" }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/projects/past-projects/wildfires.ipynb b/projects/past-projects/wildfires.ipynb index 7a79ca74f..4d06eaa8d 100644 --- a/projects/past-projects/wildfires.ipynb +++ b/projects/past-projects/wildfires.ipynb @@ -2,7 +2,9 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "# Monitoring and mapping wildfires Using satellite data\n", "## 2023\n", @@ -16,8 +18,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2483f5c97bf3467f8dbc4b005ee4b8df", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -25,10 +45,10 @@ "\n", "filename = \"2023WF_Assessing_wildfire_impact_and_ecological_recovery_in_Mozambique_through_remote_sensing_analysis\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -38,7 +58,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Effect of ENSO on wildfire frequency and burnt area\n", "**Authors**: Pallaw Mishra, Lida Khosrosereshki, Krishna katyal, Mary Nathalie Dela Cruz, Saroj Kandel, Janvi Chhabra, Alfiya Orazkhanova, Anthony Jeanpier Fow Esteves\n", @@ -50,8 +72,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2dd7693cf5b74e3989d67b7439d02da4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -59,10 +99,10 @@ "\n", "filename = \"2023WF_Effect_of_ENSO_on_wildfire_frequency_and_burnt_area\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -72,7 +112,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Trends in fire regimes in South America\n", "**Authors**: Anahita Abravan, Lydia Farnham, Gülara Uysal, Farhan Saleem, Zhanna Osipova \n", @@ -83,8 +125,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "df255e445e464ef0a3ae8f787e2983c1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -92,10 +152,10 @@ "\n", "filename = \"2023WF_Trends_in_fire_regimes_in_South_America\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -105,7 +165,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Wildfires in Angola: Burn areas and vegetation index \n", "**Authors**: Agnessa Karapetian, Sedem Buabassah, Gilad Shreibshtein, Alkis Kalisoras, Jan Bendyk, Ana Carolina Filipe\n", @@ -116,8 +178,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "566d98b69cb24583a02660a0b3d82c9c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -125,10 +205,10 @@ "\n", "filename = \"2023WF_Wildfires_in_Angola_Burn_areas_and_vegetation_index\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -138,7 +218,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "execution": {} + }, "source": [ "### Wildfires in Asia\n", "**Authors**: Zahra Heidaifar, Tanishq Prasad, Sayyed Mohammad Reza Mousavi, Mahdieh Goli\n", @@ -149,8 +231,26 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, - "outputs": [], + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "12b5de61a6c24222941b452d66bd4260", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# @markdown\n", "from ipywidgets import widgets\n", @@ -158,10 +258,10 @@ "\n", "filename = \"2023WF_Wildfires_in_Asia\"\n", "\n", - "download_link = f\"https://github.com/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", - "render_link = f\"https://nbviewer.org/github/ClimateMatchAcademy/course-content/blob/main/projects/past-projects/{filename}.pdf\"\n", + "download_link = f\"https://github.com/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "render_link = f\"https://nbviewer.org/github/neuromatch/climate-course-content/blob/main/projects/past-projects/project-presentations/{filename}.pdf\"\n", + "\n", "\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download the slides: {download_link}\")\n", @@ -171,11 +271,35 @@ } ], "metadata": { - "language_info": { - "name": "python" + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "wildfires", + "toc_visible": true + }, + "kernel": { + "display_name": "Python 3", + "language": "python", + "name": "python3" }, - "orig_nbformat": 4 + "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": 2 + "nbformat_minor": 4 } diff --git a/tutorials/Projects_GoodResearchPractices/Projects_Tutorial8.ipynb b/tutorials/Projects_GoodResearchPractices/Projects_Tutorial8.ipynb index d7e974053..c751055bd 100644 --- a/tutorials/Projects_GoodResearchPractices/Projects_Tutorial8.ipynb +++ b/tutorials/Projects_GoodResearchPractices/Projects_Tutorial8.ipynb @@ -99,7 +99,7 @@ " return tab_contents\n", "\n", "\n", - "video_ids = [('Youtube', 'HEsrjlyza5o'), ('Bilibili', 'BV1494y1B7qs')]\n", + "video_ids = [('Youtube', 'HEsrjlyza5o'), ('Bilibili', 'BV1NtbyeeEqA')]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", diff --git a/tutorials/Projects_GoodResearchPractices/instructor/Projects_Tutorial8.ipynb b/tutorials/Projects_GoodResearchPractices/instructor/Projects_Tutorial8.ipynb index d7e974053..c751055bd 100644 --- a/tutorials/Projects_GoodResearchPractices/instructor/Projects_Tutorial8.ipynb +++ b/tutorials/Projects_GoodResearchPractices/instructor/Projects_Tutorial8.ipynb @@ -99,7 +99,7 @@ " return tab_contents\n", "\n", "\n", - "video_ids = [('Youtube', 'HEsrjlyza5o'), ('Bilibili', 'BV1494y1B7qs')]\n", + "video_ids = [('Youtube', 'HEsrjlyza5o'), ('Bilibili', 'BV1NtbyeeEqA')]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", diff --git a/tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial8.ipynb b/tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial8.ipynb index d7e974053..c751055bd 100644 --- a/tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial8.ipynb +++ b/tutorials/Projects_GoodResearchPractices/student/Projects_Tutorial8.ipynb @@ -99,7 +99,7 @@ " return tab_contents\n", "\n", "\n", - "video_ids = [('Youtube', 'HEsrjlyza5o'), ('Bilibili', 'BV1494y1B7qs')]\n", + "video_ids = [('Youtube', 'HEsrjlyza5o'), ('Bilibili', 'BV1NtbyeeEqA')]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", diff --git a/tutorials/W1D1_ClimateSystemOverview/W1D1_Tutorial5.ipynb b/tutorials/W1D1_ClimateSystemOverview/W1D1_Tutorial5.ipynb index 500f42b8d..facc1531c 100644 --- a/tutorials/W1D1_ClimateSystemOverview/W1D1_Tutorial5.ipynb +++ b/tutorials/W1D1_ClimateSystemOverview/W1D1_Tutorial5.ipynb @@ -216,7 +216,7 @@ " return tab_contents\n", "\n", "\n", - "video_ids = [('Youtube', 'SyvFyT3jVM8'), ('Bilibili', 'BV1ho4y1C7Eo')]\n", + "video_ids = [('Youtube', 'SyvFyT3jVM8'), ('Bilibili', 'BV1PhbyeaEMk')]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", diff --git a/tutorials/W1D1_ClimateSystemOverview/instructor/W1D1_Tutorial5.ipynb b/tutorials/W1D1_ClimateSystemOverview/instructor/W1D1_Tutorial5.ipynb index 500f42b8d..facc1531c 100644 --- a/tutorials/W1D1_ClimateSystemOverview/instructor/W1D1_Tutorial5.ipynb +++ b/tutorials/W1D1_ClimateSystemOverview/instructor/W1D1_Tutorial5.ipynb @@ -216,7 +216,7 @@ " return tab_contents\n", "\n", "\n", - "video_ids = [('Youtube', 'SyvFyT3jVM8'), ('Bilibili', 'BV1ho4y1C7Eo')]\n", + "video_ids = [('Youtube', 'SyvFyT3jVM8'), ('Bilibili', 'BV1PhbyeaEMk')]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", diff --git a/tutorials/W1D1_ClimateSystemOverview/student/W1D1_Tutorial5.ipynb b/tutorials/W1D1_ClimateSystemOverview/student/W1D1_Tutorial5.ipynb index c20f35f26..bca51f436 100644 --- a/tutorials/W1D1_ClimateSystemOverview/student/W1D1_Tutorial5.ipynb +++ b/tutorials/W1D1_ClimateSystemOverview/student/W1D1_Tutorial5.ipynb @@ -216,7 +216,7 @@ " return tab_contents\n", "\n", "\n", - "video_ids = [('Youtube', 'SyvFyT3jVM8'), ('Bilibili', 'BV1ho4y1C7Eo')]\n", + "video_ids = [('Youtube', 'SyvFyT3jVM8'), ('Bilibili', 'BV1PhbyeaEMk')]\n", "tab_contents = display_videos(video_ids, W=730, H=410)\n", "tabs = widgets.Tab()\n", "tabs.children = tab_contents\n", diff --git a/tutorials/W1D4_Paleoclimate/W1D4_Tutorial2.ipynb b/tutorials/W1D4_Paleoclimate/W1D4_Tutorial2.ipynb index 72200afc1..e09623e48 100644 --- a/tutorials/W1D4_Paleoclimate/W1D4_Tutorial2.ipynb +++ b/tutorials/W1D4_Paleoclimate/W1D4_Tutorial2.ipynb @@ -51,7 +51,7 @@ "\n", "### An Overview of Isotopes in Paleoclimate\n", "\n", - "In this tutorial, and many of the remaining tutorials on this day, you will be looking at data of hydrogen and oxygen isotopes (δD and δ18O). As you learned in the video, isotopes are forms of the same element that contain the same numbers of protons but different numbers of neutrons. The two oxygen isotopes that are most commonly used in paleoclimate are oxygen 16 (16O), which is the which is the **\"lighter\"** oxygen isotope, and oxygen 18 (16O), which is the **\"heavier\"** oxygen isotope. The two hydrogen isotopes that are most commonly used in paleoclimate are hydrogen (H), which is the **\"lighter\"** oxygen isotope, and deuterium (D), which is the **\"heavier\"** oxygen isotope. \n", + "In this tutorial, and many of the remaining tutorials on this day, you will be looking at data of hydrogen and oxygen isotopes (δD and δ18O). As you learned in the video, isotopes are forms of the same element that contain the same numbers of protons but different numbers of neutrons. The two oxygen isotopes that are most commonly used in paleoclimate are oxygen 16 (16O), which is the which is the **\"lighter\"** oxygen isotope, and oxygen 18 (18O), which is the **\"heavier\"** oxygen isotope. The two hydrogen isotopes that are most commonly used in paleoclimate are hydrogen (H), which is the **\"lighter\"** oxygen isotope, and deuterium (D), which is the **\"heavier\"** oxygen isotope. \n", "\n", "![image-1.png](https://github.com/neuromatch/climate-course-content/blob/main/tutorials/W1D4_Paleoclimate/images/t2_image1.png?raw=true)\n", "\n", diff --git a/tutorials/W1D4_Paleoclimate/instructor/W1D4_Tutorial2.ipynb b/tutorials/W1D4_Paleoclimate/instructor/W1D4_Tutorial2.ipynb index b2d8fb751..cb59f9473 100644 --- a/tutorials/W1D4_Paleoclimate/instructor/W1D4_Tutorial2.ipynb +++ b/tutorials/W1D4_Paleoclimate/instructor/W1D4_Tutorial2.ipynb @@ -51,7 +51,7 @@ "\n", "### An Overview of Isotopes in Paleoclimate\n", "\n", - "In this tutorial, and many of the remaining tutorials on this day, you will be looking at data of hydrogen and oxygen isotopes (δD and δ18O). As you learned in the video, isotopes are forms of the same element that contain the same numbers of protons but different numbers of neutrons. The two oxygen isotopes that are most commonly used in paleoclimate are oxygen 16 (16O), which is the which is the **\"lighter\"** oxygen isotope, and oxygen 18 (16O), which is the **\"heavier\"** oxygen isotope. The two hydrogen isotopes that are most commonly used in paleoclimate are hydrogen (H), which is the **\"lighter\"** oxygen isotope, and deuterium (D), which is the **\"heavier\"** oxygen isotope. \n", + "In this tutorial, and many of the remaining tutorials on this day, you will be looking at data of hydrogen and oxygen isotopes (δD and δ18O). As you learned in the video, isotopes are forms of the same element that contain the same numbers of protons but different numbers of neutrons. The two oxygen isotopes that are most commonly used in paleoclimate are oxygen 16 (16O), which is the which is the **\"lighter\"** oxygen isotope, and oxygen 18 (18O), which is the **\"heavier\"** oxygen isotope. The two hydrogen isotopes that are most commonly used in paleoclimate are hydrogen (H), which is the **\"lighter\"** oxygen isotope, and deuterium (D), which is the **\"heavier\"** oxygen isotope. \n", "\n", "![image-1.png](https://github.com/neuromatch/climate-course-content/blob/main/tutorials/W1D4_Paleoclimate/images/t2_image1.png?raw=true)\n", "\n", diff --git a/tutorials/W1D4_Paleoclimate/student/W1D4_Tutorial2.ipynb b/tutorials/W1D4_Paleoclimate/student/W1D4_Tutorial2.ipynb index 52cbf420c..7c465f050 100644 --- a/tutorials/W1D4_Paleoclimate/student/W1D4_Tutorial2.ipynb +++ b/tutorials/W1D4_Paleoclimate/student/W1D4_Tutorial2.ipynb @@ -51,7 +51,7 @@ "\n", "### An Overview of Isotopes in Paleoclimate\n", "\n", - "In this tutorial, and many of the remaining tutorials on this day, you will be looking at data of hydrogen and oxygen isotopes (δD and δ18O). As you learned in the video, isotopes are forms of the same element that contain the same numbers of protons but different numbers of neutrons. The two oxygen isotopes that are most commonly used in paleoclimate are oxygen 16 (16O), which is the which is the **\"lighter\"** oxygen isotope, and oxygen 18 (16O), which is the **\"heavier\"** oxygen isotope. The two hydrogen isotopes that are most commonly used in paleoclimate are hydrogen (H), which is the **\"lighter\"** oxygen isotope, and deuterium (D), which is the **\"heavier\"** oxygen isotope. \n", + "In this tutorial, and many of the remaining tutorials on this day, you will be looking at data of hydrogen and oxygen isotopes (δD and δ18O). As you learned in the video, isotopes are forms of the same element that contain the same numbers of protons but different numbers of neutrons. The two oxygen isotopes that are most commonly used in paleoclimate are oxygen 16 (16O), which is the which is the **\"lighter\"** oxygen isotope, and oxygen 18 (18O), which is the **\"heavier\"** oxygen isotope. The two hydrogen isotopes that are most commonly used in paleoclimate are hydrogen (H), which is the **\"lighter\"** oxygen isotope, and deuterium (D), which is the **\"heavier\"** oxygen isotope. \n", "\n", "![image-1.png](https://github.com/neuromatch/climate-course-content/blob/main/tutorials/W1D4_Paleoclimate/images/t2_image1.png?raw=true)\n", "\n", diff --git a/tutorials/W2D1_AnEnsembleofFutures/instructor/W2D1_Tutorial5.ipynb b/tutorials/W2D1_AnEnsembleofFutures/instructor/W2D1_Tutorial5.ipynb deleted file mode 100644 index 774e4a28d..000000000 --- a/tutorials/W2D1_AnEnsembleofFutures/instructor/W2D1_Tutorial5.ipynb +++ /dev/null @@ -1,716 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "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/W2D1_FutureClimate-IPCCIPhysicalBasis/W2D1_Tutorial5.ipynb)   \"Open\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial 5: Internal Climate Variability\n", - "\n", - "**Week 2, Day 1, Future Climate: The Physical Basis**\n", - "\n", - "**Content creators:** Brodie Pearson, Julius Busecke, Tom Nicholas\n", - "\n", - "**Content reviewers:** Younkap Nina Duplex, Zahra Khodakaramimaghsoud, Sloane Garelick, Peter Ohue, Jenna Pearson, Derick Temfack, Peizhen Yang, Cheng Zhang, Chi Zhang, Ohad Zivan\n", - "\n", - "**Content editors:** Jenna Pearson, Ohad Zivan, Chi Zhang\n", - "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Chi Zhang, Ohad Zivan\n", - "\n", - "**Our 2023 Sponsors:** NASA TOPS, Google DeepMind, and CMIP\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial Objectives\n", - "\n", - "In this tutorial, we will learn about the concept of internal climate variability, how it influences the predictability of climate phenomena and how it contributes to uncertainty in CMIP6 models. We will work with a _single-model ensemble_, which utilizes the _MPI-ESM1-2-LR_ model from CMIP6, to isolate and quantify internal climate variability.\n", - "\n", - "By the end of this tutorial, you would be able to:\n", - "\n", - "- Understand the importance of internal climate variability and its role in climate prediction and model uncertainty.\n", - "- Create and evaluate a single-model ensemble using IPCC uncertainty bands, providing a visual representation of model uncertainty.\n", - "- Contrast the uncertainty due to internal variability against the uncertainty within a multi-model ensemble (which includes internal variability _and_ the impacts of human/coding choices).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Setup\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 93464, - "status": "ok", - "timestamp": 1683413540687, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [ - "colab" - ] - }, - "outputs": [], - "source": [ - "# installations ( uncomment and run this cell ONLY when using google colab or kaggle )\n", - "\n", - "# !pip install condacolab &> /dev/null\n", - "# import condacolab\n", - "# condacolab.install()\n", - "\n", - "# # Install all packages in one call (+ use mamba instead of conda), this must in one line or code will fail\n", - "# !mamba install xarray-datatree intake-esm gcsfs xmip aiohttp nc-time-axis cf_xarray xarrayutils &> /dev/null" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# imports\n", - "import time\n", - "\n", - "tic = time.time()\n", - "\n", - "import intake\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import xarray as xr\n", - "\n", - "from xmip.preprocessing import combined_preprocessing\n", - "from xarrayutils.plotting import shaded_line_plot\n", - "\n", - "from datatree import DataTree\n", - "from xmip.postprocessing import _parse_metric" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Figure settings\n", - "import ipywidgets as widgets # interactive display\n", - "\n", - "plt.style.use(\n", - " \"https://raw.githubusercontent.com/ClimateMatchAcademy/course-content/main/cma.mplstyle\"\n", - ")\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Helper functions\n", - "\n", - "\n", - "def global_mean(ds: xr.Dataset) -> xr.Dataset:\n", - " \"\"\"Global average, weighted by the cell area\"\"\"\n", - " return ds.weighted(ds.areacello.fillna(0)).mean([\"x\", \"y\"], keep_attrs=True)\n", - "\n", - "\n", - "# Calculate anomaly to reference period\n", - "def datatree_anomaly(dt):\n", - " dt_out = DataTree()\n", - " for model, subtree in dt.items():\n", - " # for the coding exercise, ellipses will go after sel on the following line\n", - " ref = dt[model][\"historical\"].ds.sel(time=slice(\"1950\", \"1980\")).mean()\n", - " dt_out[model] = subtree - ref\n", - " return dt_out\n", - "\n", - "\n", - "def plot_historical_ssp126_combined(dt):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.tos)\n", - "\n", - " da_combined = xr.concat(datasets, dim=\"time\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Video 1: Internal Climate Variability\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(\n", - " id=video_ids[i][1], width=W, height=H, fs=fs, rel=0\n", - " )\n", - " print(\n", - " f\"Video available at https://youtube.com/watch?v={video.id}\")\n", - " else:\n", - " video = PlayVideo(\n", - " id=video_ids[i][1],\n", - " source=video_ids[i][0],\n", - " width=W,\n", - " height=H,\n", - " fs=fs,\n", - " autoplay=False,\n", - " )\n", - " if video_ids[i][0] == \"Bilibili\":\n", - " print(\n", - " f\"Video available at https://www.bilibili.com/video/{video.id}\"\n", - " )\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\", \"YcIAaljLRh4\"), (\"Bilibili\", \"BV1HF41197qn\")]\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": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "pycharm": { - "name": "#%%\n" - }, - "tags": [ - "remove-input" - ] - }, - "outputs": [], - "source": [ - "# @markdown\n", - "from ipywidgets import widgets\n", - "from IPython.display import IFrame\n", - "\n", - "link_id = \"cy5bh\"\n", - "\n", - "download_link = f\"https://osf.io/download/{link_id}/\"\n", - "render_link = f\"https://mfr.ca-1.osf.io/render?url=https://osf.io/{link_id}/?direct%26mode=render%26action=download%26mode=render\"\n", - "# @markdown\n", - "out = widgets.Output()\n", - "with out:\n", - " print(f\"If you want to download the slides: {download_link}\")\n", - " display(IFrame(src=f\"{render_link}\", width=730, height=410))\n", - "display(out)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Section 1: Internal Climate Variability & Single-model Ensembles\n", - "\n", - "One of the CMIP6 models we are using in today's tutorials, _MPI-ESM1-2-LR_, is part of single-model ensemble, where its modelling centre carried out multiple simulations of the model for many of the CMIP6 experiments. To create a single-model ensemble, the modelling centre will run a model using the same forcing data, but with small changes in the initial conditions. Due to the chaotic nature of the climate system, these small changes in initial conditions lead to differences in the modelled climate as time progresses. These differences are often referred to as internal variability. By running this single-model ensemble and comparing the results to simulations using different forcing datasets, it allows us to separate the internal variability from the externally-forced variability. If you are interested in learning more about large ensemble climate models, you can [read this paper](https://esd.copernicus.org/articles/12/401/2021/).\n", - "\n", - "Let's take advantage of this single-model ensemble to quantify the internal variability of this model's simulated climate, and contrast this against the multi-model uncertainty we diagnosed in the previous tutorial.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "## Coding Exercise 1.1\n", - "\n", - "Complete the following code to:\n", - "\n", - "1. Load 5 different _realizations_ of the _MPI-ESM1-2-LR_ experiments (_r1i1p1f1_ through _r5i1p1f1_). This numbering convention means they were each initialized using a different time-snapshot of the base/spin-up simulation.\n", - "2. Plot the _historical_ and _SSP1-2.6_ experiment data for each realization, using a distinct color for each realization, but keeping that color the same across both the historical period and future period for a given realization.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {}, - "executionInfo": { - "elapsed": 420, - "status": "error", - "timestamp": 1683413710306, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [] - }, - "source": [ - "```python\n", - "col = intake.open_esm_datastore(\n", - " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n", - ") # open an intake catalog containing the Pangeo CMIP cloud data\n", - "\n", - "cat_ensemble = col.search(\n", - " source_id=\"MPI-ESM1-2-LR\",\n", - " variable_id=\"tos\",\n", - " table_id=\"Omon\",\n", - " # select the 5 ensemble members described above\n", - " member_id=[\"r1i1p1f1\", \"r2i1p1f1\", \"r3i1p1f1\", \"r4i1p1f1\", \"r5i1p1f1\"],\n", - " grid_label=\"gn\",\n", - " experiment_id=[\"historical\", \"ssp126\", \"ssp585\"],\n", - " require_all_on=[\"source_id\", \"member_id\"],\n", - ")\n", - "\n", - "# convert the sub-catalog into a datatree object, by opening each dataset into an xarray.Dataset (without loading the data)\n", - "kwargs = dict(\n", - " preprocess=combined_preprocessing, # apply xMIP fixes to each dataset\n", - " xarray_open_kwargs=dict(\n", - " use_cftime=True\n", - " ), # ensure all datasets use the same time index\n", - " storage_options={\n", - " \"token\": \"anon\"\n", - " }, # anonymous/public authentication to google cloud storage\n", - ")\n", - "# hopefully we can implement https://github.com/intake/intake-esm/issues/562 before the\n", - "# actual tutorial, so this would be a lot cleaner\n", - "cat_ensemble.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_ensemble = cat_ensemble.to_datatree(**kwargs)\n", - "\n", - "cat_area = col.search(\n", - " source_id=[\"MPI-ESM1-2-LR\"],\n", - " # for the coding exercise, ellipses will go after the equals on this line\n", - " variable_id=\"areacello\",\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Ofx\", # for the coding exercise, ellipses will go after the equals on this line\n", - " grid_label=\"gn\",\n", - " experiment_id=[\n", - " \"historical\"\n", - " ], # for the coding exercise, ellipses will go after the equals on this line\n", - " require_all_on=[\"source_id\"],\n", - ")\n", - "# hopefully we can implement https://github.com/intake/intake-esm/issues/562 before the\n", - "# actual tutorial, so this would be a lot cleaner\n", - "cat_area.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_area = cat_area.to_datatree(**kwargs)\n", - "\n", - "# add the area (we can reuse the area from before, since for a given model the horizontal are does not vary between members)\n", - "dt_ensemble_with_area = DataTree()\n", - "for model, subtree in dt_ensemble.items():\n", - " metric = dt_area[\"MPI-ESM1-2-LR\"][\"historical\"].ds[\"areacello\"].squeeze()\n", - " dt_ensemble_with_area[model] = subtree.map_over_subtree(_parse_metric, metric)\n", - "\n", - "# global average\n", - "# average every dataset in the tree globally\n", - "dt_ensemble_gm = dt_ensemble_with_area.map_over_subtree(global_mean)\n", - "\n", - "# calculate anomaly\n", - "dt_ensemble_gm_anomaly = datatree_anomaly(dt_ensemble_gm)\n", - "\n", - "\n", - "def plot_historical_ssp126_ensemble_combined(dt, ax):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.coarsen(time=12).mean().tos)\n", - "\n", - " # concatenate the historical and ssp126 timeseries for each ensemble member\n", - " da_combined = ...\n", - " # plot annual averages\n", - " da_combined.plot(hue=\"member_id\", ax=ax)\n", - "\n", - "\n", - "fig, ax = plt.subplots()\n", - "# Uncomment below after filling in above ellipses\n", - "# plot_historical_ssp126_ensemble_combined(dt_ensemble_gm_anomaly, ax)\n", - "\n", - "ax.set_title(\n", - " \"Global Mean SST Anomaly in SSP1-2.6 from a 5-member single-model ensemble\"\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST Anomaly [$^\\circ$C]\")\n", - "ax.set_xlabel(\"Year\")\n", - "\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 183867, - "status": "ok", - "timestamp": 1683413898135, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# to_remove solution\n", - "col = intake.open_esm_datastore(\n", - " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n", - ") # open an intake catalog containing the Pangeo CMIP cloud data\n", - "\n", - "cat_ensemble = col.search(\n", - " source_id=\"MPI-ESM1-2-LR\",\n", - " variable_id=\"tos\",\n", - " table_id=\"Omon\",\n", - " # select the 5 ensemble members described above\n", - " member_id=[\"r1i1p1f1\", \"r2i1p1f1\", \"r3i1p1f1\", \"r4i1p1f1\", \"r5i1p1f1\"],\n", - " grid_label=\"gn\",\n", - " experiment_id=[\"historical\", \"ssp126\", \"ssp585\"],\n", - " require_all_on=[\"source_id\", \"member_id\"],\n", - ")\n", - "\n", - "# convert the sub-catalog into a datatree object, by opening each dataset into an xarray.Dataset (without loading the data)\n", - "kwargs = dict(\n", - " preprocess=combined_preprocessing, # apply xMIP fixes to each dataset\n", - " xarray_open_kwargs=dict(\n", - " use_cftime=True\n", - " ), # ensure all datasets use the same time index\n", - " storage_options={\n", - " \"token\": \"anon\"\n", - " }, # anonymous/public authentication to google cloud storage\n", - ")\n", - "# hopefully we can implement https://github.com/intake/intake-esm/issues/562 before the\n", - "# actual tutorial, so this would be a lot cleaner\n", - "cat_ensemble.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_ensemble = cat_ensemble.to_datatree(**kwargs)\n", - "\n", - "cat_area = col.search(\n", - " source_id=[\"MPI-ESM1-2-LR\"],\n", - " # for the coding exercise, ellipses will go after the equals on this line\n", - " variable_id=\"areacello\",\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Ofx\", # for the coding exercise, ellipses will go after the equals on this line\n", - " grid_label=\"gn\",\n", - " experiment_id=[\n", - " \"historical\"\n", - " ], # for the coding exercise, ellipses will go after the equals on this line\n", - " require_all_on=[\"source_id\"],\n", - ")\n", - "# hopefully we can implement https://github.com/intake/intake-esm/issues/562 before the\n", - "# actual tutorial, so this would be a lot cleaner\n", - "cat_area.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_area = cat_area.to_datatree(**kwargs)\n", - "\n", - "# add the area (we can reuse the area from before, since for a given model the horizontal are does not vary between members)\n", - "dt_ensemble_with_area = DataTree()\n", - "for model, subtree in dt_ensemble.items():\n", - " metric = dt_area[\"MPI-ESM1-2-LR\"][\"historical\"].ds[\"areacello\"].squeeze()\n", - " dt_ensemble_with_area[model] = subtree.map_over_subtree(_parse_metric, metric)\n", - "\n", - "# global average\n", - "# average every dataset in the tree globally\n", - "dt_ensemble_gm = dt_ensemble_with_area.map_over_subtree(global_mean)\n", - "\n", - "# calculate anomaly\n", - "dt_ensemble_gm_anomaly = datatree_anomaly(dt_ensemble_gm)\n", - "\n", - "\n", - "def plot_historical_ssp126_ensemble_combined(dt, ax):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.coarsen(time=12).mean().tos)\n", - "\n", - " # concatenate the historical and ssp126 timeseries for each ensemble member\n", - " da_combined = xr.concat(datasets, dim=\"time\")\n", - " # plot annual averages\n", - " da_combined.plot(hue=\"member_id\", ax=ax)\n", - "\n", - "\n", - "fig, ax = plt.subplots()\n", - "# Uncomment below after filling in above ellipses\n", - "# plot_historical_ssp126_ensemble_combined(dt_ensemble_gm_anomaly, ax)\n", - "plot_historical_ssp126_ensemble_combined(dt_ensemble_gm_anomaly, ax)\n", - "\n", - "ax.set_title(\n", - " \"Global Mean SST Anomaly in SSP1-2.6 from a 5-member single-model ensemble\"\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST Anomaly [$^\\circ$C]\")\n", - "ax.set_xlabel(\"Year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "### **Coding Exercise 1.2**\n", - "\n", - "Complete the following code to:\n", - "\n", - "1. Repeat the final figure of the last tutorial, except now display means and uncertainty bands of the single-model ensemble that you just loaded, rather than the multi-model ensemble analyzed in the previous tutorial.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {}, - "executionInfo": { - "elapsed": 313, - "status": "error", - "timestamp": 1682795255008, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - } - }, - "source": [ - "```python\n", - "fig, ax = plt.subplots()\n", - "for experiment, color in zip([\"historical\", \"ssp126\", \"ssp585\"], [\"C0\", \"C1\", \"C2\"]):\n", - " da = (\n", - " dt_ensemble_gm_anomaly[\"MPI-ESM1-2-LR\"][experiment]\n", - " .ds.tos.coarsen(time=12)\n", - " .mean()\n", - " .load()\n", - " )\n", - " # calculate the mean across ensemble members\n", - " da.mean(\"member_id\").plot(color=color, label=experiment, ax=ax)\n", - "\n", - " # shading representing spread between members\n", - " x = da.time.data\n", - " # diagnose the lower range of the likely bounds\n", - " da_lower = ...\n", - " # diagnose the upper range of the likely bounds\n", - " da_upper = ...\n", - " # Uncomment below after filling in above ellipses\n", - " # ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - "\n", - "ax.set_title(\n", - " \"Global Mean SST Anomaly in SSP1-2.6 from a 5-member single-model ensemble\"\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST Anomaly [$^\\circ$C]\")\n", - "ax.set_xlabel(\"Year\")\n", - "ax.legend()\n", - "\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 206089, - "status": "ok", - "timestamp": 1683414257178, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# to_remove solution\n", - "fig, ax = plt.subplots()\n", - "for experiment, color in zip([\"historical\", \"ssp126\", \"ssp585\"], [\"C0\", \"C1\", \"C2\"]):\n", - " da = (\n", - " dt_ensemble_gm_anomaly[\"MPI-ESM1-2-LR\"][experiment]\n", - " .ds.tos.coarsen(time=12)\n", - " .mean()\n", - " .load()\n", - " )\n", - " # calculate the mean across ensemble members\n", - " da.mean(\"member_id\").plot(color=color, label=experiment, ax=ax)\n", - "\n", - " # shading representing spread between members\n", - " x = da.time.data\n", - " # diagnose the lower range of the likely bounds\n", - " da_lower = da.squeeze().quantile(0.17, dim=\"member_id\")\n", - " # diagnose the upper range of the likely bounds\n", - " da_upper = da.squeeze().quantile(0.83, dim=\"member_id\")\n", - " # Uncomment below after filling in above ellipses\n", - " # ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - " ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - "\n", - "ax.set_title(\n", - " \"Global Mean SST Anomaly in SSP1-2.6 from a 5-member single-model ensemble\"\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST Anomaly [$^\\circ$C]\")\n", - "ax.set_xlabel(\"Year\")\n", - "ax.legend()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "### **Question 1.2: Climate Connection**\n", - "\n", - "1. How does this figure compare to the multi-model ensemble figure from the previous tutorial (included below)? Can you interpret differences using the science we have discussed today?\n", - "\n", - "![tutorial 4 solution](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/img/W2D1_Tutorial_5_Insert_Figure.png?raw=true)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {} - }, - "outputs": [], - "source": [ - "# to_remove explanation\n", - "\n", - "\"\"\"\n", - "1. The uncertainty of the single-model ensemble is much smaller than the uncertainty of the multi-model ensemble. The single-model ensemble variations are driven only by internal climate variability, whereas the multi-model ensemble includes inter-model differences (numerics, physics, discretization) in addition to internal climate variability. Comparing the two plots suggests that most of our uncertainty in future projections of global mean SST come from inter-model differences. Internal climate variability is a relatively small contributor to this uncertainty.\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Summary\n", - "\n", - "In this tutorial, we explored the internal climate variability and its implications for climate modeling and prediction. We discussed the utility of single-model ensembles for isolating the effects of internal variability by contrasting simulations with identical physics, numerics, and discretization. We quantified the internal variability of _MPI-ESM1-2-LR_ model's simulated climate and compared it to the uncertainty introduced by multi-model ensembles. Through this tutorial, we better understand the boundaries of climate prediction and the different sources of uncertainty in CMIP6 models.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Resources\n", - "\n", - "This tutorial uses data from the simulations conducted as part of the [CMIP6](https://wcrp-cmip.org/) multi-model ensemble.\n", - "\n", - "For examples on how to access and analyze data, please visit the [Pangeo Cloud CMIP6 Gallery](https://gallery.pangeo.io/repos/pangeo-gallery/cmip6/index.html)\n", - "\n", - "For more information on what CMIP is and how to access the data, please see this [page](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/CMIP/CMIP_resource_bank.md).\n", - "\n", - "For more information about large ensemble climate modelling [see this paper](https://esd.copernicus.org/articles/12/401/2021/).\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "machine_shape": "hm", - "name": "W2D1_Tutorial5", - "provenance": [ - { - "file_id": "1WfT8oN22xywtecNriLptqi1SuGUSoIlc", - "timestamp": 1680298239014 - } - ], - "toc_visible": true - }, - "gpuClass": "standard", - "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.18" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/W2D1_AnEnsembleofFutures/instructor/W2D1_Tutorial6.ipynb b/tutorials/W2D1_AnEnsembleofFutures/instructor/W2D1_Tutorial6.ipynb deleted file mode 100644 index b6eafb78f..000000000 --- a/tutorials/W2D1_AnEnsembleofFutures/instructor/W2D1_Tutorial6.ipynb +++ /dev/null @@ -1,635 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "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/W2D1_FutureClimate-IPCCIPhysicalBasis/W2D1_Tutorial6.ipynb)   \"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial 6: Synthesising & Interpreting Diverse Data Sources\n", - "\n", - "**Week 2, Day 1, Future Climate: The Physical Basis**\n", - "\n", - "**Content creators:** Brodie Pearson, Julius Busecke, Tom Nicholas\n", - "\n", - "**Content reviewers:** Younkap Nina Duplex, Zahra Khodakaramimaghsoud, Sloane Garelick, Peter Ohue, Jenna Pearson, Derick Temfack, Peizhen Yang, Cheng Zhang, Chi Zhang, Ohad Zivan\n", - "\n", - "**Content editors:** Jenna Pearson, Ohad Zivan, Chi Zhang\n", - "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Chi Zhang, Ohad Zivan\n", - "\n", - "**Our 2023 Sponsors:** NASA TOPS, Google DeepMind, and CMIP" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial Objectives\n", - "In this tutorial, we will synthesize scientific knowledge from various sources and use this diverse information to validate and contextualize CMIP6 simulations. By the end of this tutorial, you will be able to \n", - "- Create a time series of global mean sea surface temperature from observations, models, and proxy data;\n", - "- Use this data to validate & contextualize climate models, and to provide a holistic picture of Earth's past and future climate evolution." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Setup\n", - "\n", - " \n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 97497, - "status": "ok", - "timestamp": 1684265107976, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - }, - "tags": [ - "colab" - ] - }, - "outputs": [], - "source": [ - "# installations ( uncomment and run this cell ONLY when using google colab or kaggle )\n", - "\n", - "# !pip install condacolab &> /dev/null\n", - "# import condacolab\n", - "# condacolab.install()\n", - "\n", - "# # Install all packages in one call (+ use mamba instead of conda), this must in one line or code will fail\n", - "# !mamba install xarray-datatree intake-esm gcsfs xmip aiohttp nc-time-axis cf_xarray xarrayutils &> /dev/null" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# imports\n", - "import time\n", - "\n", - "tic = time.time()\n", - "\n", - "import intake\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import xarray as xr\n", - "\n", - "from xmip.preprocessing import combined_preprocessing\n", - "from xarrayutils.plotting import shaded_line_plot\n", - "\n", - "from datatree import DataTree\n", - "from xmip.postprocessing import _parse_metric" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Figure settings\n", - "import ipywidgets as widgets # interactive display\n", - "\n", - "plt.style.use(\n", - " \"https://raw.githubusercontent.com/ClimateMatchAcademy/course-content/main/cma.mplstyle\"\n", - ")\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Helper functions\n", - "\n", - "# If any helper functions you want to hide for clarity (that has been seen before\n", - "# or is simple/uniformative), add here\n", - "# If helper code depends on libraries that aren't used elsewhere,\n", - "# import those libaries here, rather than in the main import cell\n", - "\n", - "\n", - "def global_mean(ds: xr.Dataset) -> xr.Dataset:\n", - " \"\"\"Global average, weighted by the cell area\"\"\"\n", - " return ds.weighted(ds.areacello.fillna(0)).mean([\"x\", \"y\"], keep_attrs=True)\n", - "\n", - "\n", - "# calculate anomaly to reference period\n", - "def datatree_anomaly(dt):\n", - " dt_out = DataTree()\n", - " for model, subtree in dt.items():\n", - " # for the coding exercise, ellipses will go after sel on the following line\n", - " ref = dt[model][\"historical\"].ds.sel(time=slice(\"1950\", \"1980\")).mean()\n", - " dt_out[model] = subtree - ref\n", - " return dt_out\n", - "\n", - "\n", - "def plot_historical_ssp126_combined(dt):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.tos)\n", - "\n", - " da_combined = xr.concat(datasets, dim=\"time\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Video 1: Historical Context for Future Projections\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', 'lodJMDN6lbg'), ('Bilibili', 'BV1Bu41157mn')]\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": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "pycharm": { - "name": "#%%\n" - }, - "tags": [ - "remove-input" - ] - }, - "outputs": [], - "source": [ - "# @markdown\n", - "from ipywidgets import widgets\n", - "from IPython.display import IFrame\n", - "\n", - "link_id = \"b4fsp\"\n", - "\n", - "download_link = f\"https://osf.io/download/{link_id}/\"\n", - "render_link = f\"https://mfr.ca-1.osf.io/render?url=https://osf.io/{link_id}/?direct%26mode=render%26action=download%26mode=render\"\n", - "# @markdown\n", - "out = widgets.Output()\n", - "with out:\n", - " print(f\"If you want to download the slides: {download_link}\")\n", - " display(IFrame(src=f\"{render_link}\", width=730, height=410))\n", - "display(out)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Section 1: Reproduce Global SST for Historical and Future Scenario Experiments\n", - "\n", - "We are now going to reproduce the plot you created in Tutorial 4, which showed the likely range of CMIP6 simulated global mean sea surface temperature for historical and future scenario (*SSP1-2.6* and *SSP5-8.5*) experiments from a *multi-model ensemble*. However, now we will add some an additional dataset called *HadISST* which is an observational dataset spanning back to the 1870. Later in the tutorial, we will also include the paleo data you saw in the previous mini-lecture.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "## Section 1.1: Load CMIP6 SST Data from Several Models using `xarray`\n", - "\n", - "Let's load the five different CMIP6 models again for the three CMIP6 experiments.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "col = intake.open_esm_datastore(\n", - " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n", - ") # open an intake catalog containing the Pangeo CMIP cloud data\n", - "\n", - "# pick our five example models\n", - "# there are many more to test out! Try executing `col.df['source_id'].unique()` to get a list of all available models\n", - "source_ids = [\"IPSL-CM6A-LR\", \"GFDL-ESM4\", \"ACCESS-CM2\", \"MPI-ESM1-2-LR\", \"TaiESM1\"]\n", - "experiment_ids = [\"historical\", \"ssp126\", \"ssp585\"]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 17912, - "status": "ok", - "timestamp": 1684265194265, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# from the full `col` object, create a subset using facet search\n", - "cat = col.search(\n", - " source_id=source_ids,\n", - " variable_id=\"tos\",\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Omon\",\n", - " grid_label=\"gn\",\n", - " experiment_id=experiment_ids,\n", - " require_all_on=[\n", - " \"source_id\"\n", - " ], # make sure that we only get models which have all of the above experiments\n", - ")\n", - "\n", - "# convert the sub-catalog into a datatree object, by opening each dataset into an xarray.Dataset (without loading the data)\n", - "kwargs = dict(\n", - " preprocess=combined_preprocessing, # apply xMIP fixes to each dataset\n", - " xarray_open_kwargs=dict(\n", - " use_cftime=True\n", - " ), # ensure all datasets use the same time index\n", - " storage_options={\n", - " \"token\": \"anon\"\n", - " }, # anonymous/public authentication to google cloud storage\n", - ")\n", - "\n", - "cat.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt = cat.to_datatree(**kwargs)\n", - "\n", - "cat_area = col.search(\n", - " source_id=source_ids,\n", - " variable_id=\"areacello\", # for the coding exercise, ellipses will go after the equals on this line\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Ofx\", # for the coding exercise, ellipses will go after the equals on this line\n", - " grid_label=\"gn\",\n", - " experiment_id=[\n", - " \"historical\"\n", - " ], # for the coding exercise, ellipses will go after the equals on this line\n", - " require_all_on=[\"source_id\"],\n", - ")\n", - "\n", - "cat_area.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_area = cat_area.to_datatree(**kwargs)\n", - "\n", - "dt_with_area = DataTree()\n", - "\n", - "for model, subtree in dt.items():\n", - " metric = dt_area[model][\"historical\"].ds[\"areacello\"]\n", - " dt_with_area[model] = subtree.map_over_subtree(_parse_metric, metric)\n", - "\n", - "# average every dataset in the tree globally\n", - "dt_gm = dt_with_area.map_over_subtree(global_mean)\n", - "\n", - "dt_gm_anomaly = datatree_anomaly(dt_gm)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "\n", - "### Coding Exercise 1.1\n", - "\n", - "Complete the following code to:\n", - "\n", - "\n", - "1. Calculate a time series of the global mean sea surface temperature (GMSST) from the HadISST dataset\n", - "2. Subtract a base period from the HadISST GMSST time series. Use the same base period as the CMIP6 timeseries you are comparing against. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {}, - "executionInfo": { - "elapsed": 114, - "status": "error", - "timestamp": 1684265198522, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - } - }, - "source": [ - "```python\n", - "fig, ax = plt.subplots()\n", - "for experiment, color in zip([\"historical\", \"ssp126\", \"ssp585\"], [\"C0\", \"C1\", \"C2\"]):\n", - " datasets = []\n", - " for model in dt_gm_anomaly.keys():\n", - " annual_sst = (\n", - " dt_gm_anomaly[model][experiment]\n", - " .ds.tos.coarsen(time=12)\n", - " .mean()\n", - " .assign_coords(source_id=model)\n", - " .load()\n", - " )\n", - " datasets.append(\n", - " annual_sst.sel(time=slice(None, \"2100\")).load()\n", - " ) # the french model has a long running member for ssp 126 (we could change the model to keep this clean)\n", - " da = xr.concat(datasets, dim=\"source_id\", join=\"override\").squeeze()\n", - " da.mean(\"source_id\").plot(color=color, label=experiment, ax=ax)\n", - " x = da.time.data\n", - " da_lower = da.squeeze().quantile(0.17, dim=\"source_id\")\n", - " da_upper = da.squeeze().quantile(0.83, dim=\"source_id\")\n", - " ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - "\n", - "# but now add observations (https://pangeo-forge.org/dashboard/feedstock/43)\n", - "store = \"https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/HadISST-feedstock/hadisst.zarr\"\n", - "ds_obs = xr.open_dataset(store, engine=\"zarr\", chunks={}).convert_calendar(\n", - " \"standard\", use_cftime=True\n", - ")\n", - "# mask missing values\n", - "ds_obs = ds_obs.where(ds_obs > -1000)\n", - "weights = np.cos(\n", - " np.deg2rad(ds_obs.latitude)\n", - ") # In a regular lon/lat grid, area is ~cos(latitude)\n", - "# calculate weighted global mean for observations\n", - "sst_obs_gm = ...\n", - "# calculate anomaly for observations\n", - "sst_obs_gm_anomaly = ...\n", - "\n", - "# plot observations\n", - "# Uncomment below once you fill in the above ellipses\n", - "# sst_obs_gm_anomaly.coarsen(time=12, boundary=\"trim\").mean().plot(\n", - "# color=\"0.3\", label=\"Observations\", ax=ax\n", - "# )\n", - "ax.set_ylabel(\"Global Mean SST with respect to 1950-1980\")\n", - "ax.set_xlabel(\"Year\")\n", - "ax.legend()\n", - "\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 66611, - "status": "ok", - "timestamp": 1684265266986, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# to_remove solution\n", - "fig, ax = plt.subplots()\n", - "for experiment, color in zip([\"historical\", \"ssp126\", \"ssp585\"], [\"C0\", \"C1\", \"C2\"]):\n", - " datasets = []\n", - " for model in dt_gm_anomaly.keys():\n", - " annual_sst = (\n", - " dt_gm_anomaly[model][experiment]\n", - " .ds.tos.coarsen(time=12)\n", - " .mean()\n", - " .assign_coords(source_id=model)\n", - " .load()\n", - " )\n", - " datasets.append(\n", - " annual_sst.sel(time=slice(None, \"2100\")).load()\n", - " ) # the french model has a long running member for ssp 126 (we could change the model to keep this clean)\n", - " da = xr.concat(datasets, dim=\"source_id\", join=\"override\").squeeze()\n", - " da.mean(\"source_id\").plot(color=color, label=experiment, ax=ax)\n", - " x = da.time.data\n", - " da_lower = da.squeeze().quantile(0.17, dim=\"source_id\")\n", - " da_upper = da.squeeze().quantile(0.83, dim=\"source_id\")\n", - " ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - "\n", - "\n", - "# but now add observations (https://pangeo-forge.org/dashboard/feedstock/43)\n", - "store = \"https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/HadISST-feedstock/hadisst.zarr\"\n", - "ds_obs = xr.open_dataset(store, engine=\"zarr\", chunks={}).convert_calendar(\n", - " \"standard\", use_cftime=True\n", - ")\n", - "# mask missing values\n", - "ds_obs = ds_obs.where(ds_obs > -1000)\n", - "weights = np.cos(\n", - " np.deg2rad(ds_obs.latitude)\n", - ") # In a regular lon/lat grid, area is ~cos(latitude)\n", - "# calculate weighted global mean for observations\n", - "sst_obs_gm = ds_obs.sst.weighted(weights).mean([\"longitude\", \"latitude\"])\n", - "# calculate anomaly for observations\n", - "sst_obs_gm_anomaly = sst_obs_gm - sst_obs_gm.sel(time=slice(\"1950\", \"1980\")).mean()\n", - "\n", - "# plot observations\n", - "# Uncomment below once you fill in the above ellipses\n", - "# sst_obs_gm_anomaly.coarsen(time=12, boundary=\"trim\").mean().plot(\n", - "# color=\"0.3\", label=\"Observations\", ax=ax\n", - "# )\n", - "sst_obs_gm_anomaly.coarsen(time=12, boundary=\"trim\").mean().plot(\n", - " color=\"0.3\", label=\"Observations\", ax=ax\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST with respect to 1950-1980\")\n", - "ax.set_xlabel(\"Year\")\n", - "ax.legend()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "### Questions 1.1 Climate Connection\n", - "\n", - "Now that you have a modern and projected time series containing models and observations,\n", - "1. What context and/or validation of the simulations does this information provide?\n", - "2. What additional context/validation can you glean by also considering the paleo proxy information in the figure below? (This figure was shown in the last video)\n", - "\n", - "Note the paleo periods on this figure represent the Mid-Pleiocene Warm Period (MPWP), the Last Inter-glacial (LIG) ad the Last Glacial Maximum (LGM)\n", - "\n", - "![](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/img/W2D1_Tutorial_6_Insert_Figure.png?raw=true)\n", - "\n", - "This image shows part of panel a) from Figure 9.3 from the IPCC AR6 WG1 report. This figure has the following caption: **Figure 9.3** | Sea surface temperature (SST) and its changes with time. (a) Time series of global mean SST anomaly relative to 1950–1980 climatology. Shown are paleoclimate reconstructions and PMIP models, observational reanalyses (HadISST) and multi-model means from the Coupled Model Intercomparison Project (CMIP) historical simulations, CMIP projections, and HighResMIP experiment. (b) Map of observed SST (1995–2014 climatology HadISST). (c) Historical SST changes from observations. (d) CMIP 2005–2100 SST change rate. (e) Bias of CMIP. (f) CMIP change rate. (g) 2005–2050 change rate for SSP5-8.5 for the CMIP ensemble. (h) Bias of HighResMIP (bottom left) over 1995–2014. (i) HighResMIP change rate for 1950–2014. (j) 2005–2050 change rate for SSP5-8.5 for the HighResMIP ensemble. No overlay indicates regions with high model agreement, where ≥80% of models agree on sign of change. Diagonal lines indicate regions with low model agreement, where <80% of models agree on sign of change (see Cross-Chapter Box Atlas.1 for more information). Further details on data sources and processing are available in the chapter data table (Table 9.SM.9)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {} - }, - "outputs": [], - "source": [ - "# to_remove explanation\n", - "\n", - "\"\"\"\n", - "1. I will let you decide what you take away from synthesizing these figures and data!\n", - "\"\"\";" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Summary\n", - "\n", - "In the final tutorial of the day, we learned about the importance of synthesizing CMIP6 model data (future projections and historical simulations), alongside modern climate and palroclimate observations. This synthesis provides validation of CMIP6 simulation data, and it provides historical context for recent and projected rapid changes in Earth's climate, as many of these changes are unprecedented in human-recored history.\n", - "\n", - "In the upcoming tutorials, we will shift our focus towards the socio-economic aspects of future climate change. This exploration will take various forms, including the design of the Shared Socioeconomic Pathways (SSPs) we began using today. We'll contemplate the realism of different socio-economic future scenarios and examine their potential impacts on future climate forcings. Moreover, we'll delve into how a changing climate might affect society. As we proceed with the next tutorials, keep in mind the intricate connection between physical and socio-economic changes." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Resources\n", - "\n", - "This tutorial uses data from the simulations conducted as part of the [CMIP6](https://wcrp-cmip.org/) multi-model ensemble. \n", - "\n", - "For examples on how to access and analyze data, please visit the [Pangeo Cloud CMIP6 Gallery](https://gallery.pangeo.io/repos/pangeo-gallery/cmip6/index.html) \n", - "\n", - "For more information on what CMIP is and how to access the data, please see this [page](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/CMIP/CMIP_resource_bank.md)." - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "machine_shape": "hm", - "name": "W2D1_Tutorial6", - "provenance": [ - { - "file_id": "1WfT8oN22xywtecNriLptqi1SuGUSoIlc", - "timestamp": 1680298239014 - } - ], - "toc_visible": true - }, - "gpuClass": "standard", - "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.18" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/W2D1_AnEnsembleofFutures/student/W2D1_Tutorial5.ipynb b/tutorials/W2D1_AnEnsembleofFutures/student/W2D1_Tutorial5.ipynb deleted file mode 100644 index 344b3a796..000000000 --- a/tutorials/W2D1_AnEnsembleofFutures/student/W2D1_Tutorial5.ipynb +++ /dev/null @@ -1,606 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "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/W2D1_FutureClimate-IPCCIPhysicalBasis/W2D1_Tutorial5.ipynb)   \"Open\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial 5: Internal Climate Variability\n", - "\n", - "**Week 2, Day 1, Future Climate: The Physical Basis**\n", - "\n", - "**Content creators:** Brodie Pearson, Julius Busecke, Tom Nicholas\n", - "\n", - "**Content reviewers:** Younkap Nina Duplex, Zahra Khodakaramimaghsoud, Sloane Garelick, Peter Ohue, Jenna Pearson, Derick Temfack, Peizhen Yang, Cheng Zhang, Chi Zhang, Ohad Zivan\n", - "\n", - "**Content editors:** Jenna Pearson, Ohad Zivan, Chi Zhang\n", - "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Chi Zhang, Ohad Zivan\n", - "\n", - "**Our 2023 Sponsors:** NASA TOPS, Google DeepMind, and CMIP\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial Objectives\n", - "\n", - "In this tutorial, we will learn about the concept of internal climate variability, how it influences the predictability of climate phenomena and how it contributes to uncertainty in CMIP6 models. We will work with a _single-model ensemble_, which utilizes the _MPI-ESM1-2-LR_ model from CMIP6, to isolate and quantify internal climate variability.\n", - "\n", - "By the end of this tutorial, you would be able to:\n", - "\n", - "- Understand the importance of internal climate variability and its role in climate prediction and model uncertainty.\n", - "- Create and evaluate a single-model ensemble using IPCC uncertainty bands, providing a visual representation of model uncertainty.\n", - "- Contrast the uncertainty due to internal variability against the uncertainty within a multi-model ensemble (which includes internal variability _and_ the impacts of human/coding choices).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Setup\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 93464, - "status": "ok", - "timestamp": 1683413540687, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [ - "colab" - ] - }, - "outputs": [], - "source": [ - "# installations ( uncomment and run this cell ONLY when using google colab or kaggle )\n", - "\n", - "# !pip install condacolab &> /dev/null\n", - "# import condacolab\n", - "# condacolab.install()\n", - "\n", - "# # Install all packages in one call (+ use mamba instead of conda), this must in one line or code will fail\n", - "# !mamba install xarray-datatree intake-esm gcsfs xmip aiohttp nc-time-axis cf_xarray xarrayutils &> /dev/null" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# imports\n", - "import time\n", - "\n", - "tic = time.time()\n", - "\n", - "import intake\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import xarray as xr\n", - "\n", - "from xmip.preprocessing import combined_preprocessing\n", - "from xarrayutils.plotting import shaded_line_plot\n", - "\n", - "from datatree import DataTree\n", - "from xmip.postprocessing import _parse_metric" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Figure settings\n", - "import ipywidgets as widgets # interactive display\n", - "\n", - "plt.style.use(\n", - " \"https://raw.githubusercontent.com/ClimateMatchAcademy/course-content/main/cma.mplstyle\"\n", - ")\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Helper functions\n", - "\n", - "\n", - "def global_mean(ds: xr.Dataset) -> xr.Dataset:\n", - " \"\"\"Global average, weighted by the cell area\"\"\"\n", - " return ds.weighted(ds.areacello.fillna(0)).mean([\"x\", \"y\"], keep_attrs=True)\n", - "\n", - "\n", - "# Calculate anomaly to reference period\n", - "def datatree_anomaly(dt):\n", - " dt_out = DataTree()\n", - " for model, subtree in dt.items():\n", - " # for the coding exercise, ellipses will go after sel on the following line\n", - " ref = dt[model][\"historical\"].ds.sel(time=slice(\"1950\", \"1980\")).mean()\n", - " dt_out[model] = subtree - ref\n", - " return dt_out\n", - "\n", - "\n", - "def plot_historical_ssp126_combined(dt):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.tos)\n", - "\n", - " da_combined = xr.concat(datasets, dim=\"time\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Video 1: Internal Climate Variability\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(\n", - " id=video_ids[i][1], width=W, height=H, fs=fs, rel=0\n", - " )\n", - " print(\n", - " f\"Video available at https://youtube.com/watch?v={video.id}\")\n", - " else:\n", - " video = PlayVideo(\n", - " id=video_ids[i][1],\n", - " source=video_ids[i][0],\n", - " width=W,\n", - " height=H,\n", - " fs=fs,\n", - " autoplay=False,\n", - " )\n", - " if video_ids[i][0] == \"Bilibili\":\n", - " print(\n", - " f\"Video available at https://www.bilibili.com/video/{video.id}\"\n", - " )\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\", \"YcIAaljLRh4\"), (\"Bilibili\", \"BV1HF41197qn\")]\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": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "pycharm": { - "name": "#%%\n" - }, - "tags": [ - "remove-input" - ] - }, - "outputs": [], - "source": [ - "# @markdown\n", - "from ipywidgets import widgets\n", - "from IPython.display import IFrame\n", - "\n", - "link_id = \"cy5bh\"\n", - "\n", - "download_link = f\"https://osf.io/download/{link_id}/\"\n", - "render_link = f\"https://mfr.ca-1.osf.io/render?url=https://osf.io/{link_id}/?direct%26mode=render%26action=download%26mode=render\"\n", - "# @markdown\n", - "out = widgets.Output()\n", - "with out:\n", - " print(f\"If you want to download the slides: {download_link}\")\n", - " display(IFrame(src=f\"{render_link}\", width=730, height=410))\n", - "display(out)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Section 1: Internal Climate Variability & Single-model Ensembles\n", - "\n", - "One of the CMIP6 models we are using in today's tutorials, _MPI-ESM1-2-LR_, is part of single-model ensemble, where its modelling centre carried out multiple simulations of the model for many of the CMIP6 experiments. To create a single-model ensemble, the modelling centre will run a model using the same forcing data, but with small changes in the initial conditions. Due to the chaotic nature of the climate system, these small changes in initial conditions lead to differences in the modelled climate as time progresses. These differences are often referred to as internal variability. By running this single-model ensemble and comparing the results to simulations using different forcing datasets, it allows us to separate the internal variability from the externally-forced variability. If you are interested in learning more about large ensemble climate models, you can [read this paper](https://esd.copernicus.org/articles/12/401/2021/).\n", - "\n", - "Let's take advantage of this single-model ensemble to quantify the internal variability of this model's simulated climate, and contrast this against the multi-model uncertainty we diagnosed in the previous tutorial.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "## Coding Exercise 1.1\n", - "\n", - "Complete the following code to:\n", - "\n", - "1. Load 5 different _realizations_ of the _MPI-ESM1-2-LR_ experiments (_r1i1p1f1_ through _r5i1p1f1_). This numbering convention means they were each initialized using a different time-snapshot of the base/spin-up simulation.\n", - "2. Plot the _historical_ and _SSP1-2.6_ experiment data for each realization, using a distinct color for each realization, but keeping that color the same across both the historical period and future period for a given realization.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 420, - "status": "error", - "timestamp": 1683413710306, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [] - }, - "outputs": [], - "source": [ - "col = intake.open_esm_datastore(\n", - " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n", - ") # open an intake catalog containing the Pangeo CMIP cloud data\n", - "\n", - "cat_ensemble = col.search(\n", - " source_id=\"MPI-ESM1-2-LR\",\n", - " variable_id=\"tos\",\n", - " table_id=\"Omon\",\n", - " # select the 5 ensemble members described above\n", - " member_id=[\"r1i1p1f1\", \"r2i1p1f1\", \"r3i1p1f1\", \"r4i1p1f1\", \"r5i1p1f1\"],\n", - " grid_label=\"gn\",\n", - " experiment_id=[\"historical\", \"ssp126\", \"ssp585\"],\n", - " require_all_on=[\"source_id\", \"member_id\"],\n", - ")\n", - "\n", - "# convert the sub-catalog into a datatree object, by opening each dataset into an xarray.Dataset (without loading the data)\n", - "kwargs = dict(\n", - " preprocess=combined_preprocessing, # apply xMIP fixes to each dataset\n", - " xarray_open_kwargs=dict(\n", - " use_cftime=True\n", - " ), # ensure all datasets use the same time index\n", - " storage_options={\n", - " \"token\": \"anon\"\n", - " }, # anonymous/public authentication to google cloud storage\n", - ")\n", - "# hopefully we can implement https://github.com/intake/intake-esm/issues/562 before the\n", - "# actual tutorial, so this would be a lot cleaner\n", - "cat_ensemble.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_ensemble = cat_ensemble.to_datatree(**kwargs)\n", - "\n", - "cat_area = col.search(\n", - " source_id=[\"MPI-ESM1-2-LR\"],\n", - " # for the coding exercise, ellipses will go after the equals on this line\n", - " variable_id=\"areacello\",\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Ofx\", # for the coding exercise, ellipses will go after the equals on this line\n", - " grid_label=\"gn\",\n", - " experiment_id=[\n", - " \"historical\"\n", - " ], # for the coding exercise, ellipses will go after the equals on this line\n", - " require_all_on=[\"source_id\"],\n", - ")\n", - "# hopefully we can implement https://github.com/intake/intake-esm/issues/562 before the\n", - "# actual tutorial, so this would be a lot cleaner\n", - "cat_area.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_area = cat_area.to_datatree(**kwargs)\n", - "\n", - "# add the area (we can reuse the area from before, since for a given model the horizontal are does not vary between members)\n", - "dt_ensemble_with_area = DataTree()\n", - "for model, subtree in dt_ensemble.items():\n", - " metric = dt_area[\"MPI-ESM1-2-LR\"][\"historical\"].ds[\"areacello\"].squeeze()\n", - " dt_ensemble_with_area[model] = subtree.map_over_subtree(_parse_metric, metric)\n", - "\n", - "# global average\n", - "# average every dataset in the tree globally\n", - "dt_ensemble_gm = dt_ensemble_with_area.map_over_subtree(global_mean)\n", - "\n", - "# calculate anomaly\n", - "dt_ensemble_gm_anomaly = datatree_anomaly(dt_ensemble_gm)\n", - "\n", - "\n", - "def plot_historical_ssp126_ensemble_combined(dt, ax):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.coarsen(time=12).mean().tos)\n", - "\n", - " # concatenate the historical and ssp126 timeseries for each ensemble member\n", - " da_combined = ...\n", - " # plot annual averages\n", - " da_combined.plot(hue=\"member_id\", ax=ax)\n", - "\n", - "\n", - "fig, ax = plt.subplots()\n", - "# Uncomment below after filling in above ellipses\n", - "# plot_historical_ssp126_ensemble_combined(dt_ensemble_gm_anomaly, ax)\n", - "\n", - "ax.set_title(\n", - " \"Global Mean SST Anomaly in SSP1-2.6 from a 5-member single-model ensemble\"\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST Anomaly [$^\\circ$C]\")\n", - "ax.set_xlabel(\"Year\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {}, - "executionInfo": { - "elapsed": 183867, - "status": "ok", - "timestamp": 1683413898135, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [] - }, - "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/solutions/W2D1_Tutorial5_Solution_df9b548d.py)\n", - "\n", - "*Example output:*\n", - "\n", - "Solution hint\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "### **Coding Exercise 1.2**\n", - "\n", - "Complete the following code to:\n", - "\n", - "1. Repeat the final figure of the last tutorial, except now display means and uncertainty bands of the single-model ensemble that you just loaded, rather than the multi-model ensemble analyzed in the previous tutorial.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 313, - "status": "error", - "timestamp": 1682795255008, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - } - }, - "outputs": [], - "source": [ - "fig, ax = plt.subplots()\n", - "for experiment, color in zip([\"historical\", \"ssp126\", \"ssp585\"], [\"C0\", \"C1\", \"C2\"]):\n", - " da = (\n", - " dt_ensemble_gm_anomaly[\"MPI-ESM1-2-LR\"][experiment]\n", - " .ds.tos.coarsen(time=12)\n", - " .mean()\n", - " .load()\n", - " )\n", - " # calculate the mean across ensemble members\n", - " da.mean(\"member_id\").plot(color=color, label=experiment, ax=ax)\n", - "\n", - " # shading representing spread between members\n", - " x = da.time.data\n", - " # diagnose the lower range of the likely bounds\n", - " da_lower = ...\n", - " # diagnose the upper range of the likely bounds\n", - " da_upper = ...\n", - " # Uncomment below after filling in above ellipses\n", - " # ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - "\n", - "ax.set_title(\n", - " \"Global Mean SST Anomaly in SSP1-2.6 from a 5-member single-model ensemble\"\n", - ")\n", - "ax.set_ylabel(\"Global Mean SST Anomaly [$^\\circ$C]\")\n", - "ax.set_xlabel(\"Year\")\n", - "ax.legend()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {}, - "executionInfo": { - "elapsed": 206089, - "status": "ok", - "timestamp": 1683414257178, - "user": { - "displayName": "Sloane Garelick", - "userId": "04706287370408131987" - }, - "user_tz": 240 - }, - "tags": [] - }, - "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/solutions/W2D1_Tutorial5_Solution_4f341bd8.py)\n", - "\n", - "*Example output:*\n", - "\n", - "Solution hint\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "### **Question 1.2: Climate Connection**\n", - "\n", - "1. How does this figure compare to the multi-model ensemble figure from the previous tutorial (included below)? Can you interpret differences using the science we have discussed today?\n", - "\n", - "![tutorial 4 solution](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/img/W2D1_Tutorial_5_Insert_Figure.png?raw=true)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {} - }, - "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/solutions/W2D1_Tutorial5_Solution_872e9265.py)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Summary\n", - "\n", - "In this tutorial, we explored the internal climate variability and its implications for climate modeling and prediction. We discussed the utility of single-model ensembles for isolating the effects of internal variability by contrasting simulations with identical physics, numerics, and discretization. We quantified the internal variability of _MPI-ESM1-2-LR_ model's simulated climate and compared it to the uncertainty introduced by multi-model ensembles. Through this tutorial, we better understand the boundaries of climate prediction and the different sources of uncertainty in CMIP6 models.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Resources\n", - "\n", - "This tutorial uses data from the simulations conducted as part of the [CMIP6](https://wcrp-cmip.org/) multi-model ensemble.\n", - "\n", - "For examples on how to access and analyze data, please visit the [Pangeo Cloud CMIP6 Gallery](https://gallery.pangeo.io/repos/pangeo-gallery/cmip6/index.html)\n", - "\n", - "For more information on what CMIP is and how to access the data, please see this [page](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/CMIP/CMIP_resource_bank.md).\n", - "\n", - "For more information about large ensemble climate modelling [see this paper](https://esd.copernicus.org/articles/12/401/2021/).\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "machine_shape": "hm", - "name": "W2D1_Tutorial5", - "provenance": [ - { - "file_id": "1WfT8oN22xywtecNriLptqi1SuGUSoIlc", - "timestamp": 1680298239014 - } - ], - "toc_visible": true - }, - "gpuClass": "standard", - "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.18" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/W2D1_AnEnsembleofFutures/student/W2D1_Tutorial6.ipynb b/tutorials/W2D1_AnEnsembleofFutures/student/W2D1_Tutorial6.ipynb deleted file mode 100644 index 60ef8c4b4..000000000 --- a/tutorials/W2D1_AnEnsembleofFutures/student/W2D1_Tutorial6.ipynb +++ /dev/null @@ -1,585 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "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/W2D1_FutureClimate-IPCCIPhysicalBasis/W2D1_Tutorial6.ipynb)   \"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial 6: Synthesising & Interpreting Diverse Data Sources\n", - "\n", - "**Week 2, Day 1, Future Climate: The Physical Basis**\n", - "\n", - "**Content creators:** Brodie Pearson, Julius Busecke, Tom Nicholas\n", - "\n", - "**Content reviewers:** Younkap Nina Duplex, Zahra Khodakaramimaghsoud, Sloane Garelick, Peter Ohue, Jenna Pearson, Derick Temfack, Peizhen Yang, Cheng Zhang, Chi Zhang, Ohad Zivan\n", - "\n", - "**Content editors:** Jenna Pearson, Ohad Zivan, Chi Zhang\n", - "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Chi Zhang, Ohad Zivan\n", - "\n", - "**Our 2023 Sponsors:** NASA TOPS, Google DeepMind, and CMIP" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Tutorial Objectives\n", - "In this tutorial, we will synthesize scientific knowledge from various sources and use this diverse information to validate and contextualize CMIP6 simulations. By the end of this tutorial, you will be able to \n", - "- Create a time series of global mean sea surface temperature from observations, models, and proxy data;\n", - "- Use this data to validate & contextualize climate models, and to provide a holistic picture of Earth's past and future climate evolution." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Setup\n", - "\n", - " \n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 97497, - "status": "ok", - "timestamp": 1684265107976, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - }, - "tags": [ - "colab" - ] - }, - "outputs": [], - "source": [ - "# installations ( uncomment and run this cell ONLY when using google colab or kaggle )\n", - "\n", - "# !pip install condacolab &> /dev/null\n", - "# import condacolab\n", - "# condacolab.install()\n", - "\n", - "# # Install all packages in one call (+ use mamba instead of conda), this must in one line or code will fail\n", - "# !mamba install xarray-datatree intake-esm gcsfs xmip aiohttp nc-time-axis cf_xarray xarrayutils &> /dev/null" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# imports\n", - "import time\n", - "\n", - "tic = time.time()\n", - "\n", - "import intake\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import xarray as xr\n", - "\n", - "from xmip.preprocessing import combined_preprocessing\n", - "from xarrayutils.plotting import shaded_line_plot\n", - "\n", - "from datatree import DataTree\n", - "from xmip.postprocessing import _parse_metric" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Figure settings\n", - "import ipywidgets as widgets # interactive display\n", - "\n", - "plt.style.use(\n", - " \"https://raw.githubusercontent.com/ClimateMatchAcademy/course-content/main/cma.mplstyle\"\n", - ")\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Helper functions\n", - "\n", - "# If any helper functions you want to hide for clarity (that has been seen before\n", - "# or is simple/uniformative), add here\n", - "# If helper code depends on libraries that aren't used elsewhere,\n", - "# import those libaries here, rather than in the main import cell\n", - "\n", - "\n", - "def global_mean(ds: xr.Dataset) -> xr.Dataset:\n", - " \"\"\"Global average, weighted by the cell area\"\"\"\n", - " return ds.weighted(ds.areacello.fillna(0)).mean([\"x\", \"y\"], keep_attrs=True)\n", - "\n", - "\n", - "# calculate anomaly to reference period\n", - "def datatree_anomaly(dt):\n", - " dt_out = DataTree()\n", - " for model, subtree in dt.items():\n", - " # for the coding exercise, ellipses will go after sel on the following line\n", - " ref = dt[model][\"historical\"].ds.sel(time=slice(\"1950\", \"1980\")).mean()\n", - " dt_out[model] = subtree - ref\n", - " return dt_out\n", - "\n", - "\n", - "def plot_historical_ssp126_combined(dt):\n", - " for model in dt.keys():\n", - " datasets = []\n", - " for experiment in [\"historical\", \"ssp126\"]:\n", - " datasets.append(dt[model][experiment].ds.tos)\n", - "\n", - " da_combined = xr.concat(datasets, dim=\"time\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "# @title Video 1: Historical Context for Future Projections\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', 'lodJMDN6lbg'), ('Bilibili', 'BV1Bu41157mn')]\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": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "execution": {}, - "pycharm": { - "name": "#%%\n" - }, - "tags": [ - "remove-input" - ] - }, - "outputs": [], - "source": [ - "# @markdown\n", - "from ipywidgets import widgets\n", - "from IPython.display import IFrame\n", - "\n", - "link_id = \"b4fsp\"\n", - "\n", - "download_link = f\"https://osf.io/download/{link_id}/\"\n", - "render_link = f\"https://mfr.ca-1.osf.io/render?url=https://osf.io/{link_id}/?direct%26mode=render%26action=download%26mode=render\"\n", - "# @markdown\n", - "out = widgets.Output()\n", - "with out:\n", - " print(f\"If you want to download the slides: {download_link}\")\n", - " display(IFrame(src=f\"{render_link}\", width=730, height=410))\n", - "display(out)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Section 1: Reproduce Global SST for Historical and Future Scenario Experiments\n", - "\n", - "We are now going to reproduce the plot you created in Tutorial 4, which showed the likely range of CMIP6 simulated global mean sea surface temperature for historical and future scenario (*SSP1-2.6* and *SSP5-8.5*) experiments from a *multi-model ensemble*. However, now we will add some an additional dataset called *HadISST* which is an observational dataset spanning back to the 1870. Later in the tutorial, we will also include the paleo data you saw in the previous mini-lecture.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "## Section 1.1: Load CMIP6 SST Data from Several Models using `xarray`\n", - "\n", - "Let's load the five different CMIP6 models again for the three CMIP6 experiments.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "tags": [] - }, - "outputs": [], - "source": [ - "col = intake.open_esm_datastore(\n", - " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n", - ") # open an intake catalog containing the Pangeo CMIP cloud data\n", - "\n", - "# pick our five example models\n", - "# there are many more to test out! Try executing `col.df['source_id'].unique()` to get a list of all available models\n", - "source_ids = [\"IPSL-CM6A-LR\", \"GFDL-ESM4\", \"ACCESS-CM2\", \"MPI-ESM1-2-LR\", \"TaiESM1\"]\n", - "experiment_ids = [\"historical\", \"ssp126\", \"ssp585\"]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 17912, - "status": "ok", - "timestamp": 1684265194265, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# from the full `col` object, create a subset using facet search\n", - "cat = col.search(\n", - " source_id=source_ids,\n", - " variable_id=\"tos\",\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Omon\",\n", - " grid_label=\"gn\",\n", - " experiment_id=experiment_ids,\n", - " require_all_on=[\n", - " \"source_id\"\n", - " ], # make sure that we only get models which have all of the above experiments\n", - ")\n", - "\n", - "# convert the sub-catalog into a datatree object, by opening each dataset into an xarray.Dataset (without loading the data)\n", - "kwargs = dict(\n", - " preprocess=combined_preprocessing, # apply xMIP fixes to each dataset\n", - " xarray_open_kwargs=dict(\n", - " use_cftime=True\n", - " ), # ensure all datasets use the same time index\n", - " storage_options={\n", - " \"token\": \"anon\"\n", - " }, # anonymous/public authentication to google cloud storage\n", - ")\n", - "\n", - "cat.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt = cat.to_datatree(**kwargs)\n", - "\n", - "cat_area = col.search(\n", - " source_id=source_ids,\n", - " variable_id=\"areacello\", # for the coding exercise, ellipses will go after the equals on this line\n", - " member_id=\"r1i1p1f1\",\n", - " table_id=\"Ofx\", # for the coding exercise, ellipses will go after the equals on this line\n", - " grid_label=\"gn\",\n", - " experiment_id=[\n", - " \"historical\"\n", - " ], # for the coding exercise, ellipses will go after the equals on this line\n", - " require_all_on=[\"source_id\"],\n", - ")\n", - "\n", - "cat_area.esmcat.aggregation_control.groupby_attrs = [\"source_id\", \"experiment_id\"]\n", - "dt_area = cat_area.to_datatree(**kwargs)\n", - "\n", - "dt_with_area = DataTree()\n", - "\n", - "for model, subtree in dt.items():\n", - " metric = dt_area[model][\"historical\"].ds[\"areacello\"]\n", - " dt_with_area[model] = subtree.map_over_subtree(_parse_metric, metric)\n", - "\n", - "# average every dataset in the tree globally\n", - "dt_gm = dt_with_area.map_over_subtree(global_mean)\n", - "\n", - "dt_gm_anomaly = datatree_anomaly(dt_gm)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "\n", - "### Coding Exercise 1.1\n", - "\n", - "Complete the following code to:\n", - "\n", - "\n", - "1. Calculate a time series of the global mean sea surface temperature (GMSST) from the HadISST dataset\n", - "2. Subtract a base period from the HadISST GMSST time series. Use the same base period as the CMIP6 timeseries you are comparing against. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": {}, - "executionInfo": { - "elapsed": 114, - "status": "error", - "timestamp": 1684265198522, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - } - }, - "outputs": [], - "source": [ - "fig, ax = plt.subplots()\n", - "for experiment, color in zip([\"historical\", \"ssp126\", \"ssp585\"], [\"C0\", \"C1\", \"C2\"]):\n", - " datasets = []\n", - " for model in dt_gm_anomaly.keys():\n", - " annual_sst = (\n", - " dt_gm_anomaly[model][experiment]\n", - " .ds.tos.coarsen(time=12)\n", - " .mean()\n", - " .assign_coords(source_id=model)\n", - " .load()\n", - " )\n", - " datasets.append(\n", - " annual_sst.sel(time=slice(None, \"2100\")).load()\n", - " ) # the french model has a long running member for ssp 126 (we could change the model to keep this clean)\n", - " da = xr.concat(datasets, dim=\"source_id\", join=\"override\").squeeze()\n", - " da.mean(\"source_id\").plot(color=color, label=experiment, ax=ax)\n", - " x = da.time.data\n", - " da_lower = da.squeeze().quantile(0.17, dim=\"source_id\")\n", - " da_upper = da.squeeze().quantile(0.83, dim=\"source_id\")\n", - " ax.fill_between(x, da_lower, da_upper, alpha=0.5, color=color)\n", - "\n", - "# but now add observations (https://pangeo-forge.org/dashboard/feedstock/43)\n", - "store = \"https://ncsa.osn.xsede.org/Pangeo/pangeo-forge/HadISST-feedstock/hadisst.zarr\"\n", - "ds_obs = xr.open_dataset(store, engine=\"zarr\", chunks={}).convert_calendar(\n", - " \"standard\", use_cftime=True\n", - ")\n", - "# mask missing values\n", - "ds_obs = ds_obs.where(ds_obs > -1000)\n", - "weights = np.cos(\n", - " np.deg2rad(ds_obs.latitude)\n", - ") # In a regular lon/lat grid, area is ~cos(latitude)\n", - "# calculate weighted global mean for observations\n", - "sst_obs_gm = ...\n", - "# calculate anomaly for observations\n", - "sst_obs_gm_anomaly = ...\n", - "\n", - "# plot observations\n", - "# Uncomment below once you fill in the above ellipses\n", - "# sst_obs_gm_anomaly.coarsen(time=12, boundary=\"trim\").mean().plot(\n", - "# color=\"0.3\", label=\"Observations\", ax=ax\n", - "# )\n", - "ax.set_ylabel(\"Global Mean SST with respect to 1950-1980\")\n", - "ax.set_xlabel(\"Year\")\n", - "ax.legend()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {}, - "executionInfo": { - "elapsed": 66611, - "status": "ok", - "timestamp": 1684265266986, - "user": { - "displayName": "Brodie Pearson", - "userId": "05269028596972519847" - }, - "user_tz": 420 - }, - "tags": [] - }, - "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/solutions/W2D1_Tutorial6_Solution_970b7c15.py)\n", - "\n", - "*Example output:*\n", - "\n", - "Solution hint\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "### Questions 1.1 Climate Connection\n", - "\n", - "Now that you have a modern and projected time series containing models and observations,\n", - "1. What context and/or validation of the simulations does this information provide?\n", - "2. What additional context/validation can you glean by also considering the paleo proxy information in the figure below? (This figure was shown in the last video)\n", - "\n", - "Note the paleo periods on this figure represent the Mid-Pleiocene Warm Period (MPWP), the Last Inter-glacial (LIG) ad the Last Glacial Maximum (LGM)\n", - "\n", - "![](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/img/W2D1_Tutorial_6_Insert_Figure.png?raw=true)\n", - "\n", - "This image shows part of panel a) from Figure 9.3 from the IPCC AR6 WG1 report. This figure has the following caption: **Figure 9.3** | Sea surface temperature (SST) and its changes with time. (a) Time series of global mean SST anomaly relative to 1950–1980 climatology. Shown are paleoclimate reconstructions and PMIP models, observational reanalyses (HadISST) and multi-model means from the Coupled Model Intercomparison Project (CMIP) historical simulations, CMIP projections, and HighResMIP experiment. (b) Map of observed SST (1995–2014 climatology HadISST). (c) Historical SST changes from observations. (d) CMIP 2005–2100 SST change rate. (e) Bias of CMIP. (f) CMIP change rate. (g) 2005–2050 change rate for SSP5-8.5 for the CMIP ensemble. (h) Bias of HighResMIP (bottom left) over 1995–2014. (i) HighResMIP change rate for 1950–2014. (j) 2005–2050 change rate for SSP5-8.5 for the HighResMIP ensemble. No overlay indicates regions with high model agreement, where ≥80% of models agree on sign of change. Diagonal lines indicate regions with low model agreement, where <80% of models agree on sign of change (see Cross-Chapter Box Atlas.1 for more information). Further details on data sources and processing are available in the chapter data table (Table 9.SM.9)." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "execution": {} - }, - "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D1_FutureClimate-IPCCIPhysicalBasis/solutions/W2D1_Tutorial6_Solution_7818edff.py)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Summary\n", - "\n", - "In the final tutorial of the day, we learned about the importance of synthesizing CMIP6 model data (future projections and historical simulations), alongside modern climate and palroclimate observations. This synthesis provides validation of CMIP6 simulation data, and it provides historical context for recent and projected rapid changes in Earth's climate, as many of these changes are unprecedented in human-recored history.\n", - "\n", - "In the upcoming tutorials, we will shift our focus towards the socio-economic aspects of future climate change. This exploration will take various forms, including the design of the Shared Socioeconomic Pathways (SSPs) we began using today. We'll contemplate the realism of different socio-economic future scenarios and examine their potential impacts on future climate forcings. Moreover, we'll delve into how a changing climate might affect society. As we proceed with the next tutorials, keep in mind the intricate connection between physical and socio-economic changes." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "execution": {} - }, - "source": [ - "# Resources\n", - "\n", - "This tutorial uses data from the simulations conducted as part of the [CMIP6](https://wcrp-cmip.org/) multi-model ensemble. \n", - "\n", - "For examples on how to access and analyze data, please visit the [Pangeo Cloud CMIP6 Gallery](https://gallery.pangeo.io/repos/pangeo-gallery/cmip6/index.html) \n", - "\n", - "For more information on what CMIP is and how to access the data, please see this [page](https://github.com/ClimateMatchAcademy/course-content/blob/main/tutorials/CMIP/CMIP_resource_bank.md)." - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "machine_shape": "hm", - "name": "W2D1_Tutorial6", - "provenance": [ - { - "file_id": "1WfT8oN22xywtecNriLptqi1SuGUSoIlc", - "timestamp": 1680298239014 - } - ], - "toc_visible": true - }, - "gpuClass": "standard", - "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.18" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Intro.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Intro.ipynb index 7dc02673c..63d1d6b3e 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Intro.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Intro.ipynb @@ -37,7 +37,7 @@ "execution": {} }, "source": [ - "## TODO Day Learning Objectives" + "## Day Learning Objectives" ] }, { @@ -47,10 +47,9 @@ "execution": {} }, "source": [ - "1. Describe the logic behind the socioeconomic pathway framework, and explain how the pathways differ from one another in both climate and socioeconomic variables using CMIP6 data and integrated assessment modeling results, respectively (building off of W2D1).\n", - "2. Examine the strengths and weaknesses of integrated assessment modeling practice and compare models whose results are included in the IPCC reports and understand how these results impact the report’s conclusions.\n", - "3. Examine the socioeconomic factors at the origin of anthropogenic warming and a *Just Transition*.\n", - "\n" + "1. Describe the motivation behind the Shared Socioeconomic Pathway (SSP) framework, and explain how the 5 pathways differ from one another in both climate and socioeconomic aspects using CMIP6 data and integrated assessment modeling results, respectively.\n", + "2. Examine the strengths and weaknesses of SSP-focussed integrated assessment modeling practice and understand how these support and weaken the IPCC report’s conclusions, respectively.\n", + "3. Examine the socioeconomic factors at the origin of anthropogenic warming and a *Just Transition*." ] } ], diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial1.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial1.ipynb index ee54a8842..225efa222 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial1.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial1.ipynb @@ -418,7 +418,6 @@ "\n", "download_link = f\"https://img.climateinteractive.org/2019/09/EnROADS-one-page-guide-to-control-panel-v11-dec-2021.pdf\"\n", "render_link = f\"https://img.climateinteractive.org/2019/09/EnROADS-one-page-guide-to-control-panel-v11-dec-2021.pdf\"\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download a cheatsheet for the En-ROADS Control Panel:\\n{download_link}\")\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial2.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial2.ipynb index 6e1108064..6dcc7fffe 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial2.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial2.ipynb @@ -263,7 +263,7 @@ "\n", "You might already have clicked through the toggles at the top of the control panel of En-ROADS and tried the different *Views* (Main graphs, Kaya graphs, Miniature graphs). Select now the **Kaya graphs** view and reset the simulator (click on the anti-clockwise circular arrow to 'Reset all policies & assumptions' or just reload the page/model [here](https://en-roads.climateinteractive.org/)).\n", "\n", - "The Kaya graphs depict four drivers of growth in carbon dioxide emissions from energy use, which reflects about two-thirds of all greenhouse gas emissions (the remaining third of emissions are from land use changes and other gases, such as methane (CH4) and nitrous oxide (N2O), which are not considered here). The corresponding equation, the so-called [***Kaya identity***](https://en.wikipedia.org/wiki/Kaya_identity) below was developed by Yoichi Kaya:\n", + "The Kaya graphs depict four drivers of growth in carbon dioxide emissions from energy use, which reflects about two-thirds of all greenhouse gas emissions (the remaining third of emissions are from land use changes and other gases, such as methane (CH$_4$) and nitrous oxide (N$_2$O), which are not considered here). The corresponding equation, the so-called [***Kaya identity***](https://en.wikipedia.org/wiki/Kaya_identity) below was developed by Yoichi Kaya:\n", "\n", "***CO$_2$ Emissions from Energy = Global Population × GDP per Capita × Energy Intensity of GDP × Carbon Intensity of Energy***\n", "\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial3.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial3.ipynb index c80f26fbd..25cac34fa 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial3.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial3.ipynb @@ -43,7 +43,7 @@ "source": [ "# Tutorial Objectives\n", "\n", - "*Estimated timing of tutorial:* 15 minutes\n", + "*Estimated timing of tutorial:* 20 minutes\n", "\n", "The last tutorials covered the necessity for an energy transition to tackle the climate emergency and many solutions at once. As emissions accumulate, it becomes substantially harder to succeed the longer we take to make big changes. This tutorial explores the temporal dimension of action, here policies, by using the Climate Solution Simulator named [En-ROADS](https://www.climateinteractive.org/en-roads/).\n", "\n", @@ -338,7 +338,7 @@ "source": [ "# Summary\n", "\n", - "In this tutorial, we discussed the temporal dimension of the carbon price implementation in order to understand why no policy might be a silver bullet to solve all problems but comes with various ethical and political implications. At last, we discussed a few limitations of the En-ROADs model approach." + "In this tutorial, we discussed the temporal dimension of the carbon price implementation in order to understand why no policy might be a silver bullet to solve all problems but comes with various ethical and political implications. " ] }, { diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial4.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial4.ipynb index c0c11f540..5a05dafb6 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial4.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial4.ipynb @@ -38,6 +38,8 @@ "source": [ "# Tutorial Objectives\n", "\n", + "*Estimated timing of tutorial:* 35 minutes\n", + "\n", "In this tutorial, you will learn about Integrated Assessment Models (IAMs), a class of models that combine climatology, economics, and social science, reflecting the intertwined nature of these domains in addressing climate change. Based on these models the IPCC established the socioeconomic pathway framework. You are going to learn how these pathways differ from one another in both climate and socioeconomic variables as well as assumptions.\n", "\n", "After finishing this tutorial, you will know how to \n", @@ -309,7 +311,7 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "In this, and subsequent, tutorials, you will explore Integrated Assessment Models (IAMs) which are the standard class of models used to make climate change projections. IAMs couple a climate model with an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. IAMs can also account for changes that result from mitigation efforts, which lessen anthropogenic emissions.\n", + "In this, and the subsequent, tutorial, you will explore Integrated Assessment Models (IAMs) which are the standard class of models used to make climate change projections. IAMs couple a climate model with an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. IAMs can also account for changes that result from mitigation efforts, which lessen anthropogenic emissions.\n", "\n", "Let's start by investigating some IAM model output.\n", "\n", @@ -385,8 +387,8 @@ "- and **forcing** (`'Diagnostics|MAGICC6|Forcing'`).\n", "\n", "- As a `REGION`, we choose the `'World'`,\n", - "- and our `SCENARIO`s are called `'SSP1-26'` and `'SSP5-85'`.\n", - "- The model of choice for the former scenario is by convention `'IMAGE'` and `'REMIND-MAGPIE'` for the latter, respectively.\n", + "- and our `SCENARIO`s are called `'SSP1-Baseline'` and `'SSP5-Baseline'`.\n", + "- The model of choice for the former scenario is by convention `'IMAGE'` and `'REMIND-MAGPIE'` for the latter, respectively.\n", "\n", "A function named `get_SSPs_for_variable()` applies all this generally and is hidden in the next cell. Please execute it, such that the subsequent cells can make use of it. If you are interested in its procedure and want to adjust it, don't forget to save a copy beforehand." ] @@ -457,7 +459,7 @@ "# create new names for structured data series and axes labels\n", "val_name = ['GDP (billion US$/yr)', 'Emissions (Mt CO$_2$/yr)', 'Energy use (EJ/yr)', 'Forcing (W/m$^2$)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "# init figure and axis\n", @@ -496,7 +498,7 @@ "\n", "Our plots show that the SSP5-Baseline scenario exhibits very high levels of energy use, and emissions (due to fossil fuel exploitation), it marks the upper end of the scenarios in several dimensions (cf. [Kriegler et al. (2014)](https://doi.org/10.1016/j.gloenvcha.2016.05.015)). \n", "\n", - "The SSP1-26 scenario contrarily caps the increase of energy use by 2030, combined with other actions leading to decreasing emissions and subsequently a decreasing forcing for the second half of the century. However, economic growth continues with half the slope of SSP5-Baseline. In summary, it is the most optimistic projection: we transition to a global society of sustainability-focused growth." + "The SSP1-Baseline scenario contrarily caps the increase of energy use by 2030, combined with other actions leading to decreasing emissions and subsequently a decreasing forcing for the second half of the century. However, economic growth continues with half the slope of SSP5-Baseline. In summary, it is the most optimistic projection: we transition to a global society of sustainability-focused growth." ] }, { @@ -576,7 +578,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ['Population\\n(millions)', 'GDP (billion US$/yr)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "# init figure and axis\n", @@ -620,7 +622,7 @@ "execution": {} }, "source": [ - "# Section 1.3: Differences of SSP1 and SSP5\n", + "## Section 1.4: Differences of SSP1 and SSP5\n", "\n", "Major differences are visible when you contrast emissions and assume direct causation with ecosystem health. Increasing emissions then translate into decreasing ecosystem health." ] @@ -631,7 +633,7 @@ "execution": {} }, "source": [ - "## Coding exercise 1.3\n", + "## Coding exercise 1.4\n", "\n", "1. Choose two variables to emphasize ecosystem health differences in the SSP1 and SSP5 scenarios and assign them to `vars`. Then assign axis labels with the correct units for plotting to the `val_name` variable.\n", "2. Explain to your pod why the chosen variables emphasize a difference in the scenarios and describe this difference based on your current knowledge of the narratives." @@ -650,7 +652,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ...\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "#################################################\n", @@ -703,7 +705,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ['Emissions\\n(Mt CO$_2$/yr)','Land covered by\\nforest (million ha)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "\n", @@ -764,7 +766,7 @@ "outputs": [], "source": [ "# @title Submit your feedback\n", - "content_review(f\"{feedback_prefix}_Coding_Exercise_1_3\")" + "content_review(f\"{feedback_prefix}_Coding_Exercise_1_4\")" ] }, { @@ -789,7 +791,7 @@ "\n", "It is possible to download the SSP data used in this tutorial, when you provide an email address, from [this IIASA database](https://tntcat.iiasa.ac.at/SspDb/dsd), where all data from the main simulations of the IAMs used in the [IPCC reports](https://www.ipcc.ch/reports/) is freely available.\n", "\n", - "Find a summary of all SSP narratives in this paper by [Oneill et al. (2017)](https://doi.org/10.1016/j.gloenvcha.2015.01.004).\n", + "Find a summary of all SSP narratives in this paper by [O'Neill et al. (2017)](https://doi.org/10.1016/j.gloenvcha.2015.01.004).\n", "\n", "Find even more information in\n", "\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial5.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial5.ipynb index 5c2577851..b09e35eb1 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial5.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial5.ipynb @@ -22,11 +22,11 @@ "\n", "**Content creators:** Paul Heubel, Maximilian Puelma Touzel\n", "\n", - "**Content reviewers:** Jenna Pearson, Chi Zhang, Ohad Zivan\n", + "**Content reviewers:** Jenna Pearson, Ohad Zivan\n", "\n", - "**Content editors:** Paul Heubel, Jenna Pearson, Chi Zhang, Ohad Zivan\n", + "**Content editors:** Paul Heubel, Jenna Pearson, Ohad Zivan\n", "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", + "**Production editors:** Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", "\n", "**Our 2024 Sponsors:** CMIP, NFDI4Earth" ] @@ -40,7 +40,14 @@ "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." ] }, { @@ -53,9 +60,7 @@ "outputs": [], "source": [ "# import\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "#import dicelib # https://github.com/mptouzel/PyDICE" + "import matplotlib.pyplot as plt" ] }, { @@ -230,6 +235,20 @@ "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": "code", + "execution_count": null, + "id": "693f9f9c-c8c0-4118-99cd-a9ccf1f55766", + "metadata": { + "cellView": "form", + "execution": {} + }, + "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", @@ -243,14 +262,14 @@ "\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", + "- 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", - "As we want to discuss the background of IAM economics, you are going to reflect on these particular *Neo-classical* assumptions." + "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" ] }, { @@ -262,7 +281,7 @@ "source": [ "## Questions 1\n", "\n", - "As a follow-up to its presentation in the tutorial video, try now to place all 5 SSP narratives in the three-dimensional feature space yourself. You can use the SSP narrative names as a hint.\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", @@ -270,6 +289,8 @@ "* 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" ] }, @@ -284,10 +305,39 @@ "source": [ "# to_remove explanation\n", "'''\n", - "Guidance for TAs: 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", + "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": "code", + "execution_count": null, + "id": "11591351-d85d-4737-835d-b1ca218f1354", + "metadata": { + "cellView": "form", + "execution": {} + }, + "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", @@ -297,7 +347,7 @@ "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. \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" ] }, { @@ -312,11 +362,35 @@ "# to_remove explanation\n", "\n", "'''\n", - "Strength: SSPs are an approach that nicely balances (biased) expert opinion with more objective (but perhaps inaccurate) models.\n", - "Weakness: even larger set of assumptions/complexity gives over confidence?\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": "code", + "execution_count": null, + "id": "041ce3f4-15b5-48e5-b810-3194f27f5766", + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [], + "source": [ + "# @title Submit your feedback\n", + "content_review(f\"{feedback_prefix}_Questions_2\")" + ] + }, { "cell_type": "markdown", "id": "28c0a077-c9a0-42d9-ada6-e8b835668c3b", @@ -324,17 +398,26 @@ "execution": {} }, "source": [ - "# Summary" + "# 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": "9e904e57-b6b9-4ee8-aefb-140dce3c93c2", + "id": "3469e417-cb2e-49a8-82bc-0b600337244c", "metadata": { "execution": {} }, "source": [ - "# Resources" + "# 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)" ] } ], diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial6.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial6.ipynb index abd0c7ff2..5d286466a 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial6.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/W2D2_Tutorial6.ipynb @@ -140,6 +140,20 @@ "display(tabs)" ] }, + { + "cell_type": "markdown", + "id": "8e98eb20-8e63-4a64-a9b3-47c2f0ee7383", + "metadata": { + "execution": {} + }, + "source": [ + "# Section 1: CO$_2$ Removal\n", + "\n", + "While substantial emissions mitigations are necessary to reduce future climate suffering, they can not make up for the hundreds of billions of tons of CO$_2$ that humans have already emitted. However, both natural and technological methods for removing CO$_2$ from the atmosphere exist. Although they are presently miniscule compared to the tens-of-gigatons scale of global emissions, some experts expect that CO$_2$ removal methods will play a key role in the future once major mitigation goals have been accomplished. \n", + "\n", + "Video 1 briefly explains how Carbon Removal is addressed in EN-ROADS. Keep its representation in mind for the following exercises." + ] + }, { "cell_type": "markdown", "id": "a516e969-8b67-4f8a-9d39-061770ffb4c9", @@ -211,7 +225,9 @@ "- [En-ROADS User Guide PDF](https://docs.climateinteractive.org/projects/en-roads/en/latest/en-roads-user-guide.pdf)\n", "- [Guided Assignment - Simulating Climate Futures in En-ROADS: Short Version](https://www.climateinteractive.org/guided-assignment/)\n", "\n", - "**A Planetary Crisis Planning Computer Game**\n", + "**Planetary Crisis Planning Computer Games**\n", + "Play the games listed below to explore alternative societal futures\n", + "- [The Climate Game](https://ig.ft.com/climate-game/)\n", "- [Half Earth Socialism](https://play.half.earth/).\n" ] } diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Intro.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Intro.ipynb index 7dc02673c..63d1d6b3e 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Intro.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Intro.ipynb @@ -37,7 +37,7 @@ "execution": {} }, "source": [ - "## TODO Day Learning Objectives" + "## Day Learning Objectives" ] }, { @@ -47,10 +47,9 @@ "execution": {} }, "source": [ - "1. Describe the logic behind the socioeconomic pathway framework, and explain how the pathways differ from one another in both climate and socioeconomic variables using CMIP6 data and integrated assessment modeling results, respectively (building off of W2D1).\n", - "2. Examine the strengths and weaknesses of integrated assessment modeling practice and compare models whose results are included in the IPCC reports and understand how these results impact the report’s conclusions.\n", - "3. Examine the socioeconomic factors at the origin of anthropogenic warming and a *Just Transition*.\n", - "\n" + "1. Describe the motivation behind the Shared Socioeconomic Pathway (SSP) framework, and explain how the 5 pathways differ from one another in both climate and socioeconomic aspects using CMIP6 data and integrated assessment modeling results, respectively.\n", + "2. Examine the strengths and weaknesses of SSP-focussed integrated assessment modeling practice and understand how these support and weaken the IPCC report’s conclusions, respectively.\n", + "3. Examine the socioeconomic factors at the origin of anthropogenic warming and a *Just Transition*." ] } ], diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial1.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial1.ipynb index c76e79c79..b65458825 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial1.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial1.ipynb @@ -418,7 +418,6 @@ "\n", "download_link = f\"https://img.climateinteractive.org/2019/09/EnROADS-one-page-guide-to-control-panel-v11-dec-2021.pdf\"\n", "render_link = f\"https://img.climateinteractive.org/2019/09/EnROADS-one-page-guide-to-control-panel-v11-dec-2021.pdf\"\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download a cheatsheet for the En-ROADS Control Panel:\\n{download_link}\")\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial2.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial2.ipynb index 3bb255222..3aaaf1b48 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial2.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial2.ipynb @@ -263,7 +263,7 @@ "\n", "You might already have clicked through the toggles at the top of the control panel of En-ROADS and tried the different *Views* (Main graphs, Kaya graphs, Miniature graphs). Select now the **Kaya graphs** view and reset the simulator (click on the anti-clockwise circular arrow to 'Reset all policies & assumptions' or just reload the page/model [here](https://en-roads.climateinteractive.org/)).\n", "\n", - "The Kaya graphs depict four drivers of growth in carbon dioxide emissions from energy use, which reflects about two-thirds of all greenhouse gas emissions (the remaining third of emissions are from land use changes and other gases, such as methane (CH4) and nitrous oxide (N2O), which are not considered here). The corresponding equation, the so-called [***Kaya identity***](https://en.wikipedia.org/wiki/Kaya_identity) below was developed by Yoichi Kaya:\n", + "The Kaya graphs depict four drivers of growth in carbon dioxide emissions from energy use, which reflects about two-thirds of all greenhouse gas emissions (the remaining third of emissions are from land use changes and other gases, such as methane (CH$_4$) and nitrous oxide (N$_2$O), which are not considered here). The corresponding equation, the so-called [***Kaya identity***](https://en.wikipedia.org/wiki/Kaya_identity) below was developed by Yoichi Kaya:\n", "\n", "***CO$_2$ Emissions from Energy = Global Population × GDP per Capita × Energy Intensity of GDP × Carbon Intensity of Energy***\n", "\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial3.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial3.ipynb index 0667708f3..227664d5a 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial3.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial3.ipynb @@ -43,7 +43,7 @@ "source": [ "# Tutorial Objectives\n", "\n", - "*Estimated timing of tutorial:* 15 minutes\n", + "*Estimated timing of tutorial:* 20 minutes\n", "\n", "The last tutorials covered the necessity for an energy transition to tackle the climate emergency and many solutions at once. As emissions accumulate, it becomes substantially harder to succeed the longer we take to make big changes. This tutorial explores the temporal dimension of action, here policies, by using the Climate Solution Simulator named [En-ROADS](https://www.climateinteractive.org/en-roads/).\n", "\n", @@ -338,7 +338,7 @@ "source": [ "# Summary\n", "\n", - "In this tutorial, we discussed the temporal dimension of the carbon price implementation in order to understand why no policy might be a silver bullet to solve all problems but comes with various ethical and political implications. At last, we discussed a few limitations of the En-ROADs model approach." + "In this tutorial, we discussed the temporal dimension of the carbon price implementation in order to understand why no policy might be a silver bullet to solve all problems but comes with various ethical and political implications. " ] }, { diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial4.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial4.ipynb index 914691600..f4fa9fbd0 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial4.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial4.ipynb @@ -38,6 +38,8 @@ "source": [ "# Tutorial Objectives\n", "\n", + "*Estimated timing of tutorial:* 35 minutes\n", + "\n", "In this tutorial, you will learn about Integrated Assessment Models (IAMs), a class of models that combine climatology, economics, and social science, reflecting the intertwined nature of these domains in addressing climate change. Based on these models the IPCC established the socioeconomic pathway framework. You are going to learn how these pathways differ from one another in both climate and socioeconomic variables as well as assumptions.\n", "\n", "After finishing this tutorial, you will know how to \n", @@ -309,7 +311,7 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "In this, and subsequent, tutorials, you will explore Integrated Assessment Models (IAMs) which are the standard class of models used to make climate change projections. IAMs couple a climate model with an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. IAMs can also account for changes that result from mitigation efforts, which lessen anthropogenic emissions.\n", + "In this, and the subsequent, tutorial, you will explore Integrated Assessment Models (IAMs) which are the standard class of models used to make climate change projections. IAMs couple a climate model with an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. IAMs can also account for changes that result from mitigation efforts, which lessen anthropogenic emissions.\n", "\n", "Let's start by investigating some IAM model output.\n", "\n", @@ -385,8 +387,8 @@ "- and **forcing** (`'Diagnostics|MAGICC6|Forcing'`).\n", "\n", "- As a `REGION`, we choose the `'World'`,\n", - "- and our `SCENARIO`s are called `'SSP1-26'` and `'SSP5-85'`.\n", - "- The model of choice for the former scenario is by convention `'IMAGE'` and `'REMIND-MAGPIE'` for the latter, respectively.\n", + "- and our `SCENARIO`s are called `'SSP1-Baseline'` and `'SSP5-Baseline'`.\n", + "- The model of choice for the former scenario is by convention `'IMAGE'` and `'REMIND-MAGPIE'` for the latter, respectively.\n", "\n", "A function named `get_SSPs_for_variable()` applies all this generally and is hidden in the next cell. Please execute it, such that the subsequent cells can make use of it. If you are interested in its procedure and want to adjust it, don't forget to save a copy beforehand." ] @@ -457,7 +459,7 @@ "# create new names for structured data series and axes labels\n", "val_name = ['GDP (billion US$/yr)', 'Emissions (Mt CO$_2$/yr)', 'Energy use (EJ/yr)', 'Forcing (W/m$^2$)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "# init figure and axis\n", @@ -496,7 +498,7 @@ "\n", "Our plots show that the SSP5-Baseline scenario exhibits very high levels of energy use, and emissions (due to fossil fuel exploitation), it marks the upper end of the scenarios in several dimensions (cf. [Kriegler et al. (2014)](https://doi.org/10.1016/j.gloenvcha.2016.05.015)). \n", "\n", - "The SSP1-26 scenario contrarily caps the increase of energy use by 2030, combined with other actions leading to decreasing emissions and subsequently a decreasing forcing for the second half of the century. However, economic growth continues with half the slope of SSP5-Baseline. In summary, it is the most optimistic projection: we transition to a global society of sustainability-focused growth." + "The SSP1-Baseline scenario contrarily caps the increase of energy use by 2030, combined with other actions leading to decreasing emissions and subsequently a decreasing forcing for the second half of the century. However, economic growth continues with half the slope of SSP5-Baseline. In summary, it is the most optimistic projection: we transition to a global society of sustainability-focused growth." ] }, { @@ -576,7 +578,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ['Population\\n(millions)', 'GDP (billion US$/yr)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "# init figure and axis\n", @@ -620,7 +622,7 @@ "execution": {} }, "source": [ - "# Section 1.3: Differences of SSP1 and SSP5\n", + "## Section 1.4: Differences of SSP1 and SSP5\n", "\n", "Major differences are visible when you contrast emissions and assume direct causation with ecosystem health. Increasing emissions then translate into decreasing ecosystem health." ] @@ -631,7 +633,7 @@ "execution": {} }, "source": [ - "## Coding exercise 1.3\n", + "## Coding exercise 1.4\n", "\n", "1. Choose two variables to emphasize ecosystem health differences in the SSP1 and SSP5 scenarios and assign them to `vars`. Then assign axis labels with the correct units for plotting to the `val_name` variable.\n", "2. Explain to your pod why the chosen variables emphasize a difference in the scenarios and describe this difference based on your current knowledge of the narratives." @@ -650,7 +652,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ...\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "#################################################\n", @@ -705,7 +707,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ['Emissions\\n(Mt CO$_2$/yr)','Land covered by\\nforest (million ha)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "\n", @@ -766,7 +768,7 @@ "outputs": [], "source": [ "# @title Submit your feedback\n", - "content_review(f\"{feedback_prefix}_Coding_Exercise_1_3\")" + "content_review(f\"{feedback_prefix}_Coding_Exercise_1_4\")" ] }, { @@ -791,7 +793,7 @@ "\n", "It is possible to download the SSP data used in this tutorial, when you provide an email address, from [this IIASA database](https://tntcat.iiasa.ac.at/SspDb/dsd), where all data from the main simulations of the IAMs used in the [IPCC reports](https://www.ipcc.ch/reports/) is freely available.\n", "\n", - "Find a summary of all SSP narratives in this paper by [Oneill et al. (2017)](https://doi.org/10.1016/j.gloenvcha.2015.01.004).\n", + "Find a summary of all SSP narratives in this paper by [O'Neill et al. (2017)](https://doi.org/10.1016/j.gloenvcha.2015.01.004).\n", "\n", "Find even more information in\n", "\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial5.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial5.ipynb index 1e17155b4..0abec282a 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial5.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial5.ipynb @@ -22,11 +22,11 @@ "\n", "**Content creators:** Paul Heubel, Maximilian Puelma Touzel\n", "\n", - "**Content reviewers:** Jenna Pearson, Chi Zhang, Ohad Zivan\n", + "**Content reviewers:** Jenna Pearson, Ohad Zivan\n", "\n", - "**Content editors:** Paul Heubel, Jenna Pearson, Chi Zhang, Ohad Zivan\n", + "**Content editors:** Paul Heubel, Jenna Pearson, Ohad Zivan\n", "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", + "**Production editors:** Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", "\n", "**Our 2024 Sponsors:** CMIP, NFDI4Earth" ] @@ -40,7 +40,14 @@ "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." ] }, { @@ -53,9 +60,7 @@ "outputs": [], "source": [ "# import\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "#import dicelib # https://github.com/mptouzel/PyDICE" + "import matplotlib.pyplot as plt" ] }, { @@ -230,6 +235,20 @@ "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": "code", + "execution_count": null, + "id": "693f9f9c-c8c0-4118-99cd-a9ccf1f55766", + "metadata": { + "cellView": "form", + "execution": {} + }, + "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", @@ -243,14 +262,14 @@ "\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", + "- 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", - "As we want to discuss the background of IAM economics, you are going to reflect on these particular *Neo-classical* assumptions." + "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" ] }, { @@ -262,7 +281,7 @@ "source": [ "## Questions 1\n", "\n", - "As a follow-up to its presentation in the tutorial video, try now to place all 5 SSP narratives in the three-dimensional feature space yourself. You can use the SSP narrative names as a hint.\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", @@ -270,6 +289,8 @@ "* 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" ] }, @@ -284,10 +305,39 @@ "source": [ "# to_remove explanation\n", "'''\n", - "Guidance for TAs: 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", + "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": "code", + "execution_count": null, + "id": "11591351-d85d-4737-835d-b1ca218f1354", + "metadata": { + "cellView": "form", + "execution": {} + }, + "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", @@ -297,7 +347,7 @@ "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. \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" ] }, { @@ -312,11 +362,35 @@ "# to_remove explanation\n", "\n", "'''\n", - "Strength: SSPs are an approach that nicely balances (biased) expert opinion with more objective (but perhaps inaccurate) models.\n", - "Weakness: even larger set of assumptions/complexity gives over confidence?\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": "code", + "execution_count": null, + "id": "041ce3f4-15b5-48e5-b810-3194f27f5766", + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [], + "source": [ + "# @title Submit your feedback\n", + "content_review(f\"{feedback_prefix}_Questions_2\")" + ] + }, { "cell_type": "markdown", "id": "28c0a077-c9a0-42d9-ada6-e8b835668c3b", @@ -324,17 +398,26 @@ "execution": {} }, "source": [ - "# Summary" + "# 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": "9e904e57-b6b9-4ee8-aefb-140dce3c93c2", + "id": "3469e417-cb2e-49a8-82bc-0b600337244c", "metadata": { "execution": {} }, "source": [ - "# Resources" + "# 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)" ] } ], diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial6.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial6.ipynb index 3c9d37ab4..6c4a3a7f7 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial6.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/instructor/W2D2_Tutorial6.ipynb @@ -140,6 +140,20 @@ "display(tabs)" ] }, + { + "cell_type": "markdown", + "id": "8e98eb20-8e63-4a64-a9b3-47c2f0ee7383", + "metadata": { + "execution": {} + }, + "source": [ + "# Section 1: CO$_2$ Removal\n", + "\n", + "While substantial emissions mitigations are necessary to reduce future climate suffering, they can not make up for the hundreds of billions of tons of CO$_2$ that humans have already emitted. However, both natural and technological methods for removing CO$_2$ from the atmosphere exist. Although they are presently miniscule compared to the tens-of-gigatons scale of global emissions, some experts expect that CO$_2$ removal methods will play a key role in the future once major mitigation goals have been accomplished. \n", + "\n", + "Video 1 briefly explains how Carbon Removal is addressed in EN-ROADS. Keep its representation in mind for the following exercises." + ] + }, { "cell_type": "markdown", "id": "a516e969-8b67-4f8a-9d39-061770ffb4c9", @@ -211,7 +225,9 @@ "- [En-ROADS User Guide PDF](https://docs.climateinteractive.org/projects/en-roads/en/latest/en-roads-user-guide.pdf)\n", "- [Guided Assignment - Simulating Climate Futures in En-ROADS: Short Version](https://www.climateinteractive.org/guided-assignment/)\n", "\n", - "**A Planetary Crisis Planning Computer Game**\n", + "**Planetary Crisis Planning Computer Games**\n", + "Play the games listed below to explore alternative societal futures\n", + "- [The Climate Game](https://ig.ft.com/climate-game/)\n", "- [Half Earth Socialism](https://play.half.earth/).\n" ] } diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_a4ef74b1.py b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_26753443.py similarity index 96% rename from tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_a4ef74b1.py rename to tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_26753443.py index f6f1f4a52..269cd087d 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_a4ef74b1.py +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_26753443.py @@ -4,7 +4,7 @@ # create new names for structured data series and plot labels val_name = ['Emissions\n(Mt CO$_2$/yr)','Land covered by\nforest (million ha)'] # choose scenarios of interest and a color for plotting -scenarios = ['SSP1-26', 'SSP5-Baseline'] +scenarios = ['SSP1-Baseline', 'SSP5-Baseline'] colors = ['darkblue','darkorange'] diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_43d884d4.py b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_43d884d4.py new file mode 100644 index 000000000..eade21286 --- /dev/null +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_43d884d4.py @@ -0,0 +1,3 @@ +''' +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/ +''' \ No newline at end of file diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_5bbc738b.py b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_5bbc738b.py deleted file mode 100644 index f0c945f05..000000000 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_5bbc738b.py +++ /dev/null @@ -1,5 +0,0 @@ - -''' -Strength: SSPs are an approach that nicely balances (biased) expert opinion with more objective (but perhaps inaccurate) models. -Weakness: even larger set of assumptions/complexity gives over confidence? -''' \ No newline at end of file diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_7bbe3e60.py b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_7bbe3e60.py new file mode 100644 index 000000000..9d8e83ce4 --- /dev/null +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_7bbe3e60.py @@ -0,0 +1,15 @@ + +''' +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. +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. +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. +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. + +... + +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. +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. +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. +... +cf. e.g https://www.nature.com/articles/s41558-020-00952-0 +''' \ No newline at end of file diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_ce79f0aa.py b/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_ce79f0aa.py deleted file mode 100644 index ce92bc586..000000000 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_ce79f0aa.py +++ /dev/null @@ -1,3 +0,0 @@ -''' -Guidance for TAs: 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/ -''' \ No newline at end of file diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/static/W2D2_Tutorial4_Solution_26753443_0.png b/tutorials/W2D2_TheSocioeconomicsofClimateChange/static/W2D2_Tutorial4_Solution_26753443_0.png new file mode 100644 index 000000000..90c1de8e4 Binary files /dev/null and b/tutorials/W2D2_TheSocioeconomicsofClimateChange/static/W2D2_Tutorial4_Solution_26753443_0.png differ diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/static/W2D2_Tutorial4_Solution_a4ef74b1_0.png b/tutorials/W2D2_TheSocioeconomicsofClimateChange/static/W2D2_Tutorial4_Solution_a4ef74b1_0.png deleted file mode 100644 index 83b04acb1..000000000 Binary files a/tutorials/W2D2_TheSocioeconomicsofClimateChange/static/W2D2_Tutorial4_Solution_a4ef74b1_0.png and /dev/null differ diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Intro.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Intro.ipynb index 7dc02673c..63d1d6b3e 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Intro.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Intro.ipynb @@ -37,7 +37,7 @@ "execution": {} }, "source": [ - "## TODO Day Learning Objectives" + "## Day Learning Objectives" ] }, { @@ -47,10 +47,9 @@ "execution": {} }, "source": [ - "1. Describe the logic behind the socioeconomic pathway framework, and explain how the pathways differ from one another in both climate and socioeconomic variables using CMIP6 data and integrated assessment modeling results, respectively (building off of W2D1).\n", - "2. Examine the strengths and weaknesses of integrated assessment modeling practice and compare models whose results are included in the IPCC reports and understand how these results impact the report’s conclusions.\n", - "3. Examine the socioeconomic factors at the origin of anthropogenic warming and a *Just Transition*.\n", - "\n" + "1. Describe the motivation behind the Shared Socioeconomic Pathway (SSP) framework, and explain how the 5 pathways differ from one another in both climate and socioeconomic aspects using CMIP6 data and integrated assessment modeling results, respectively.\n", + "2. Examine the strengths and weaknesses of SSP-focussed integrated assessment modeling practice and understand how these support and weaken the IPCC report’s conclusions, respectively.\n", + "3. Examine the socioeconomic factors at the origin of anthropogenic warming and a *Just Transition*." ] } ], diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial1.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial1.ipynb index daad3076e..3114b8be3 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial1.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial1.ipynb @@ -402,7 +402,6 @@ "\n", "download_link = f\"https://img.climateinteractive.org/2019/09/EnROADS-one-page-guide-to-control-panel-v11-dec-2021.pdf\"\n", "render_link = f\"https://img.climateinteractive.org/2019/09/EnROADS-one-page-guide-to-control-panel-v11-dec-2021.pdf\"\n", - "# @markdown\n", "out = widgets.Output()\n", "with out:\n", " print(f\"If you want to download a cheatsheet for the En-ROADS Control Panel:\\n{download_link}\")\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial2.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial2.ipynb index a9faf0351..c3de0aad3 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial2.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial2.ipynb @@ -263,7 +263,7 @@ "\n", "You might already have clicked through the toggles at the top of the control panel of En-ROADS and tried the different *Views* (Main graphs, Kaya graphs, Miniature graphs). Select now the **Kaya graphs** view and reset the simulator (click on the anti-clockwise circular arrow to 'Reset all policies & assumptions' or just reload the page/model [here](https://en-roads.climateinteractive.org/)).\n", "\n", - "The Kaya graphs depict four drivers of growth in carbon dioxide emissions from energy use, which reflects about two-thirds of all greenhouse gas emissions (the remaining third of emissions are from land use changes and other gases, such as methane (CH4) and nitrous oxide (N2O), which are not considered here). The corresponding equation, the so-called [***Kaya identity***](https://en.wikipedia.org/wiki/Kaya_identity) below was developed by Yoichi Kaya:\n", + "The Kaya graphs depict four drivers of growth in carbon dioxide emissions from energy use, which reflects about two-thirds of all greenhouse gas emissions (the remaining third of emissions are from land use changes and other gases, such as methane (CH$_4$) and nitrous oxide (N$_2$O), which are not considered here). The corresponding equation, the so-called [***Kaya identity***](https://en.wikipedia.org/wiki/Kaya_identity) below was developed by Yoichi Kaya:\n", "\n", "***CO$_2$ Emissions from Energy = Global Population × GDP per Capita × Energy Intensity of GDP × Carbon Intensity of Energy***\n", "\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial3.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial3.ipynb index 86fde4d5d..b459f4e8f 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial3.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial3.ipynb @@ -43,7 +43,7 @@ "source": [ "# Tutorial Objectives\n", "\n", - "*Estimated timing of tutorial:* 15 minutes\n", + "*Estimated timing of tutorial:* 20 minutes\n", "\n", "The last tutorials covered the necessity for an energy transition to tackle the climate emergency and many solutions at once. As emissions accumulate, it becomes substantially harder to succeed the longer we take to make big changes. This tutorial explores the temporal dimension of action, here policies, by using the Climate Solution Simulator named [En-ROADS](https://www.climateinteractive.org/en-roads/).\n", "\n", @@ -328,7 +328,7 @@ "source": [ "# Summary\n", "\n", - "In this tutorial, we discussed the temporal dimension of the carbon price implementation in order to understand why no policy might be a silver bullet to solve all problems but comes with various ethical and political implications. At last, we discussed a few limitations of the En-ROADs model approach." + "In this tutorial, we discussed the temporal dimension of the carbon price implementation in order to understand why no policy might be a silver bullet to solve all problems but comes with various ethical and political implications. " ] }, { diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial4.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial4.ipynb index d4c99cd26..6c1a1856c 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial4.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial4.ipynb @@ -38,6 +38,8 @@ "source": [ "# Tutorial Objectives\n", "\n", + "*Estimated timing of tutorial:* 35 minutes\n", + "\n", "In this tutorial, you will learn about Integrated Assessment Models (IAMs), a class of models that combine climatology, economics, and social science, reflecting the intertwined nature of these domains in addressing climate change. Based on these models the IPCC established the socioeconomic pathway framework. You are going to learn how these pathways differ from one another in both climate and socioeconomic variables as well as assumptions.\n", "\n", "After finishing this tutorial, you will know how to \n", @@ -309,7 +311,7 @@ "jp-MarkdownHeadingCollapsed": true }, "source": [ - "In this, and subsequent, tutorials, you will explore Integrated Assessment Models (IAMs) which are the standard class of models used to make climate change projections. IAMs couple a climate model with an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. IAMs can also account for changes that result from mitigation efforts, which lessen anthropogenic emissions.\n", + "In this, and the subsequent, tutorial, you will explore Integrated Assessment Models (IAMs) which are the standard class of models used to make climate change projections. IAMs couple a climate model with an economic model, allowing us to evaluate the two-way coupling between economic productivity and climate change severity. IAMs can also account for changes that result from mitigation efforts, which lessen anthropogenic emissions.\n", "\n", "Let's start by investigating some IAM model output.\n", "\n", @@ -385,8 +387,8 @@ "- and **forcing** (`'Diagnostics|MAGICC6|Forcing'`).\n", "\n", "- As a `REGION`, we choose the `'World'`,\n", - "- and our `SCENARIO`s are called `'SSP1-26'` and `'SSP5-85'`.\n", - "- The model of choice for the former scenario is by convention `'IMAGE'` and `'REMIND-MAGPIE'` for the latter, respectively.\n", + "- and our `SCENARIO`s are called `'SSP1-Baseline'` and `'SSP5-Baseline'`.\n", + "- The model of choice for the former scenario is by convention `'IMAGE'` and `'REMIND-MAGPIE'` for the latter, respectively.\n", "\n", "A function named `get_SSPs_for_variable()` applies all this generally and is hidden in the next cell. Please execute it, such that the subsequent cells can make use of it. If you are interested in its procedure and want to adjust it, don't forget to save a copy beforehand." ] @@ -457,7 +459,7 @@ "# create new names for structured data series and axes labels\n", "val_name = ['GDP (billion US$/yr)', 'Emissions (Mt CO$_2$/yr)', 'Energy use (EJ/yr)', 'Forcing (W/m$^2$)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "# init figure and axis\n", @@ -496,7 +498,7 @@ "\n", "Our plots show that the SSP5-Baseline scenario exhibits very high levels of energy use, and emissions (due to fossil fuel exploitation), it marks the upper end of the scenarios in several dimensions (cf. [Kriegler et al. (2014)](https://doi.org/10.1016/j.gloenvcha.2016.05.015)). \n", "\n", - "The SSP1-26 scenario contrarily caps the increase of energy use by 2030, combined with other actions leading to decreasing emissions and subsequently a decreasing forcing for the second half of the century. However, economic growth continues with half the slope of SSP5-Baseline. In summary, it is the most optimistic projection: we transition to a global society of sustainability-focused growth." + "The SSP1-Baseline scenario contrarily caps the increase of energy use by 2030, combined with other actions leading to decreasing emissions and subsequently a decreasing forcing for the second half of the century. However, economic growth continues with half the slope of SSP5-Baseline. In summary, it is the most optimistic projection: we transition to a global society of sustainability-focused growth." ] }, { @@ -576,7 +578,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ['Population\\n(millions)', 'GDP (billion US$/yr)']\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "# init figure and axis\n", @@ -620,7 +622,7 @@ "execution": {} }, "source": [ - "# Section 1.3: Differences of SSP1 and SSP5\n", + "## Section 1.4: Differences of SSP1 and SSP5\n", "\n", "Major differences are visible when you contrast emissions and assume direct causation with ecosystem health. Increasing emissions then translate into decreasing ecosystem health." ] @@ -631,7 +633,7 @@ "execution": {} }, "source": [ - "## Coding exercise 1.3\n", + "## Coding exercise 1.4\n", "\n", "1. Choose two variables to emphasize ecosystem health differences in the SSP1 and SSP5 scenarios and assign them to `vars`. Then assign axis labels with the correct units for plotting to the `val_name` variable.\n", "2. Explain to your pod why the chosen variables emphasize a difference in the scenarios and describe this difference based on your current knowledge of the narratives." @@ -650,7 +652,7 @@ "# create new names for structured data series and plot labels\n", "val_name = ...\n", "# choose scenarios of interest and a color for plotting\n", - "scenarios = ['SSP1-26', 'SSP5-Baseline']\n", + "scenarios = ['SSP1-Baseline', 'SSP5-Baseline']\n", "colors = ['darkblue','darkorange']\n", "\n", "#################################################\n", @@ -695,11 +697,11 @@ "execution": {} }, "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_a4ef74b1.py)\n", + "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial4_Solution_26753443.py)\n", "\n", "*Example output:*\n", "\n", - "Solution hint\n", + "Solution hint\n", "\n" ] }, @@ -724,7 +726,7 @@ "outputs": [], "source": [ "# @title Submit your feedback\n", - "content_review(f\"{feedback_prefix}_Coding_Exercise_1_3\")" + "content_review(f\"{feedback_prefix}_Coding_Exercise_1_4\")" ] }, { @@ -749,7 +751,7 @@ "\n", "It is possible to download the SSP data used in this tutorial, when you provide an email address, from [this IIASA database](https://tntcat.iiasa.ac.at/SspDb/dsd), where all data from the main simulations of the IAMs used in the [IPCC reports](https://www.ipcc.ch/reports/) is freely available.\n", "\n", - "Find a summary of all SSP narratives in this paper by [Oneill et al. (2017)](https://doi.org/10.1016/j.gloenvcha.2015.01.004).\n", + "Find a summary of all SSP narratives in this paper by [O'Neill et al. (2017)](https://doi.org/10.1016/j.gloenvcha.2015.01.004).\n", "\n", "Find even more information in\n", "\n", diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial5.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial5.ipynb index 34d55728a..ab515b21c 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial5.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial5.ipynb @@ -22,11 +22,11 @@ "\n", "**Content creators:** Paul Heubel, Maximilian Puelma Touzel\n", "\n", - "**Content reviewers:** Jenna Pearson, Chi Zhang, Ohad Zivan\n", + "**Content reviewers:** Jenna Pearson, Ohad Zivan\n", "\n", - "**Content editors:** Paul Heubel, Jenna Pearson, Chi Zhang, Ohad Zivan\n", + "**Content editors:** Paul Heubel, Jenna Pearson, Ohad Zivan\n", "\n", - "**Production editors:** Wesley Banfield, Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", + "**Production editors:** Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan\n", "\n", "**Our 2024 Sponsors:** CMIP, NFDI4Earth" ] @@ -40,7 +40,14 @@ "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." ] }, { @@ -53,9 +60,7 @@ "outputs": [], "source": [ "# import\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "#import dicelib # https://github.com/mptouzel/PyDICE" + "import matplotlib.pyplot as plt" ] }, { @@ -230,6 +235,20 @@ "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": "code", + "execution_count": null, + "id": "693f9f9c-c8c0-4118-99cd-a9ccf1f55766", + "metadata": { + "cellView": "form", + "execution": {} + }, + "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", @@ -243,14 +262,14 @@ "\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", + "- 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", - "As we want to discuss the background of IAM economics, you are going to reflect on these particular *Neo-classical* assumptions." + "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" ] }, { @@ -262,7 +281,7 @@ "source": [ "## Questions 1\n", "\n", - "As a follow-up to its presentation in the tutorial video, try now to place all 5 SSP narratives in the three-dimensional feature space yourself. You can use the SSP narrative names as a hint.\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", @@ -270,6 +289,8 @@ "* 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" ] }, @@ -281,10 +302,39 @@ "execution": {} }, "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_ce79f0aa.py)\n", + "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_43d884d4.py)\n", "\n" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "11591351-d85d-4737-835d-b1ca218f1354", + "metadata": { + "cellView": "form", + "execution": {} + }, + "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", @@ -294,7 +344,7 @@ "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. \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" ] }, { @@ -305,10 +355,24 @@ "execution": {} }, "source": [ - "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_5bbc738b.py)\n", + "[*Click for solution*](https://github.com/neuromatch/climate-course-content/tree/main/tutorials/W2D2_TheSocioeconomicsofClimateChange/solutions/W2D2_Tutorial5_Solution_7bbe3e60.py)\n", "\n" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "041ce3f4-15b5-48e5-b810-3194f27f5766", + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [], + "source": [ + "# @title Submit your feedback\n", + "content_review(f\"{feedback_prefix}_Questions_2\")" + ] + }, { "cell_type": "markdown", "id": "28c0a077-c9a0-42d9-ada6-e8b835668c3b", @@ -316,17 +380,26 @@ "execution": {} }, "source": [ - "# Summary" + "# 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": "9e904e57-b6b9-4ee8-aefb-140dce3c93c2", + "id": "3469e417-cb2e-49a8-82bc-0b600337244c", "metadata": { "execution": {} }, "source": [ - "# Resources" + "# 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)" ] } ], diff --git a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial6.ipynb b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial6.ipynb index bbafc1faa..8fedc1b4f 100644 --- a/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial6.ipynb +++ b/tutorials/W2D2_TheSocioeconomicsofClimateChange/student/W2D2_Tutorial6.ipynb @@ -140,6 +140,20 @@ "display(tabs)" ] }, + { + "cell_type": "markdown", + "id": "8e98eb20-8e63-4a64-a9b3-47c2f0ee7383", + "metadata": { + "execution": {} + }, + "source": [ + "# Section 1: CO$_2$ Removal\n", + "\n", + "While substantial emissions mitigations are necessary to reduce future climate suffering, they can not make up for the hundreds of billions of tons of CO$_2$ that humans have already emitted. However, both natural and technological methods for removing CO$_2$ from the atmosphere exist. Although they are presently miniscule compared to the tens-of-gigatons scale of global emissions, some experts expect that CO$_2$ removal methods will play a key role in the future once major mitigation goals have been accomplished. \n", + "\n", + "Video 1 briefly explains how Carbon Removal is addressed in EN-ROADS. Keep its representation in mind for the following exercises." + ] + }, { "cell_type": "markdown", "id": "a516e969-8b67-4f8a-9d39-061770ffb4c9", @@ -211,7 +225,9 @@ "- [En-ROADS User Guide PDF](https://docs.climateinteractive.org/projects/en-roads/en/latest/en-roads-user-guide.pdf)\n", "- [Guided Assignment - Simulating Climate Futures in En-ROADS: Short Version](https://www.climateinteractive.org/guided-assignment/)\n", "\n", - "**A Planetary Crisis Planning Computer Game**\n", + "**Planetary Crisis Planning Computer Games**\n", + "Play the games listed below to explore alternative societal futures\n", + "- [The Climate Game](https://ig.ft.com/climate-game/)\n", "- [Half Earth Socialism](https://play.half.earth/).\n" ] }