From 5d285f717d1433613004a410e7b76a410a44fee5 Mon Sep 17 00:00:00 2001 From: Zoltan Date: Thu, 7 Dec 2023 20:06:04 -0500 Subject: [PATCH] add more project content from climate --- projects/docs/past_project_overview.md | 14 ++ projects/keynote.ipynb | 184 +++++++++++++++++++++++++ projects/project_materials.yml | 3 +- 3 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 projects/docs/past_project_overview.md create mode 100644 projects/keynote.ipynb diff --git a/projects/docs/past_project_overview.md b/projects/docs/past_project_overview.md new file mode 100644 index 00000000..bc6adc7b --- /dev/null +++ b/projects/docs/past_project_overview.md @@ -0,0 +1,14 @@ +# Past projects + +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) + + diff --git a/projects/keynote.ipynb b/projects/keynote.ipynb new file mode 100644 index 00000000..52bc8d60 --- /dev/null +++ b/projects/keynote.ipynb @@ -0,0 +1,184 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d50e1022", + "metadata": { + "execution": {} + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ClimateMatchAcademy/course-content/blob/main/tutorials/W1D4_Paleoclimate/W1D4_Intro.ipynb)   \"Open" + ] + }, + { + "cell_type": "markdown", + "id": "69a6a1ac", + "metadata": { + "execution": {} + }, + "source": [ + "# Intro" + ] + }, + { + "cell_type": "markdown", + "id": "5b72f92b", + "metadata": { + "execution": {} + }, + "source": [ + "## Overview" + ] + }, + { + "cell_type": "markdown", + "id": "eff5914c", + "metadata": { + "execution": {} + }, + "source": [ + "Over the past two days, we’ve been analyzing climate reanalysis and remote sensing data to better understand variations in modern climate dynamics in land, ocean and atmosphere systems on timescales from days to months to years. Today, we’re going to explore even longer timescales of climate variability, on the order of tens to hundreds of thousands of years or more, prior to the widespread availability of instrumental records. The term for this study of past climate is “paleoclimate”. It’s important to study paleoclimate because past climate states can serve as analogs for future warming on Earth. Understanding the response of Earth’s climate systems in the past, can help to assess future changes in the climate system, evaluate the environmental response to these climate changes and validate/improve climate models and their projections of future climate.\n", + "\n", + "During the first few tutorials today, you will explore different types of oceanic, terrestrial and atmospheric paleoclimate archives and proxies. Paleoclimate archives are geologic and biologic materials that preserve evidence of past changes in climate (e.g. speleothems, tree rings, ice cores, marine and lake sediment cores) and paleoclimate proxies are substances or features within archives (e.g. isotopes, foraminifera, leaf waxes, organic molecules) that record a climate variable and can be sampled and analyzed using a variety of physical and chemical methods. \n", + "\n", + "Throughout the tutorials today, you will explore paleoclimate reconstructions created using various proxies and will use these records to interpret past variations in Earth’s climate. You will also explore computational tools that are frequently used to interpret paleoclimate data and assess climate forcings. Finally, you will investigate paleoclimate data from climate models that simulate past variations in Earth’s climate.\n" + ] + }, + { + "cell_type": "markdown", + "id": "6695fea7", + "metadata": { + "execution": {} + }, + "source": [ + "## Video 1: Past Climates Inform Our Future" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8cc5bcaf", + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [], + "source": [ + "# @markdown\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', 'sng-2W6sKqY'), ('Bilibili', 'BV12j411Z7jm')]\n", + "tab_contents = display_videos(video_ids, W=730, H=410)\n", + "tabs = widgets.Tab()\n", + "tabs.children = tab_contents\n", + "for i in range(len(tab_contents)):\n", + " tabs.set_title(i, video_ids[i][0])\n", + "display(tabs)" + ] + }, + { + "cell_type": "markdown", + "id": "a17e786a", + "metadata": { + "execution": {} + }, + "source": [ + "## Slides" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9e57e0a2", + "metadata": { + "cellView": "form", + "execution": {} + }, + "outputs": [], + "source": [ + "# @markdown\n", + "from ipywidgets import widgets\n", + "from IPython.display import IFrame\n", + "\n", + "link_id = \"2pvrs\"\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)" + ] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "W1D4_Intro", + "toc_visible": true + }, + "kernel": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/projects/project_materials.yml b/projects/project_materials.yml index a88f66be..90770a48 100644 --- a/projects/project_materials.yml +++ b/projects/project_materials.yml @@ -18,7 +18,8 @@ - file: projects/docs/past_projects_overview.md title: Past projects sections: - # TODO: add a template + - file: projects/past-projects/example_past_project.ipynb + title: Example Past Project # You should add your past pojects here using the following: # - file: point to the file # title: name the project \ No newline at end of file