Skip to content

Commit

Permalink
add more project content from climate
Browse files Browse the repository at this point in the history
  • Loading branch information
iamzoltan authored Dec 8, 2023
1 parent 5f9deed commit 5d285f7
Show file tree
Hide file tree
Showing 3 changed files with 200 additions and 1 deletion.
14 changes: 14 additions & 0 deletions projects/docs/past_project_overview.md
Original file line number Diff line number Diff line change
@@ -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)


184 changes: 184 additions & 0 deletions projects/keynote.ipynb
Original file line number Diff line number Diff line change
@@ -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) &nbsp; <a href=\"https://kaggle.com/kernels/welcome?src=https://raw.githubusercontent.com/ClimateMatchAcademy/course-content/main/tutorials/W1D4_Paleoclimate/W1D4_Intro.ipynb\" target=\"_parent\"><img src=\"https://kaggle.com/static/images/open-in-kaggle.svg\" alt=\"Open in Kaggle\"/></a>"
]
},
{
"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
}
3 changes: 2 additions & 1 deletion projects/project_materials.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 5d285f7

Please sign in to comment.