Tutorial 2: Reconstructing Past Changes in Ocean Climate#
Week 1, Day 4, Paleoclimate
Content creators: Sloane Garelick
Content reviewers: Yosmely Bermúdez, Dionessa Biton, Katrina Dobson, Maria Gonzalez, Will Gregory, Nahid Hasan, Paul Heubel, Sherry Mi, Beatriz Cosenza Muralles, Brodie Pearson, Jenna Pearson, Chi Zhang, Ohad Zivan
Content editors: Yosmely Bermúdez, Paul Heubel, Zahra Khodakaramimaghsoud, Jenna Pearson, Agustina Pesce, Chi Zhang, Ohad Zivan
Production editors: Wesley Banfield, Paul Heubel, Jenna Pearson, Konstantine Tsafatinos, Chi Zhang, Ohad Zivan
Our 2024 Sponsors: CMIP, NFDI4Earth
Tutorial Objectives#
Estimated timing of tutorial: 20 minutes
In the previous days, you learned about the El Niño–Southern Oscillation (ENSO), and have explored how satellite data can be employed to track this phenomenon during the instrumental period. In this tutorial, you will explore how oxygen isotopes of corals can record temperature changes associated with the phase of ENSO even further back in time.
By the end of this tutorial you will be able to:
Understand the types of marine proxies that are used to reconstruct past climate
Create a stacked plot and warming stripes to visualize ENSO temperature reconstructions
An Overview of Isotopes in Paleoclimate#
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.
Credit: NASA Climate Science Investigations
Credit: NASA Climate Science Investigations
Changes in the ratio of the heavy to light isotope can reflect changes in different climate variables, depending on geographic location and the material being measured. The ratio is represented in delta notation (δ) and in units of per mille (‰), and is calculated using the equation below (the same applies to the ratio of the heavy and light hydrogen isotopes):
The terminology for discussing δ18O and δD can be a bit confusing and there are multiple ways to reference the same trends in the data. The most common terms used to describe isotopic compositions are “depleted” and “enriched”. These terms refer to the relative amount of the heavy isotopes. Therefore, a “more depleted” isotopic value is more depleted in the heavy isotope (i.e., there is less of the heavy isotope), whereas a “more enriched” isotopic value is more enriched in the heavy isotope (i.e., there is more of the heavy isotope). Other terms that are sometimes used to describe whether isotopes are depleted or enriched are “more negative” or “more positive”. Isotopic values can be both positive and negative, so using “more negative” and “more positive” can be a bit confusing. For example, if we have isotopic values of -15‰ and -9‰, the value of -9‰ is “more enriched” (i.e., has more of the heavy isotope) or “more positive” (i.e., is closer to zero and positive values) than -15‰. Finally, the terms “smaller” or “larger” isotopic values can also be used to reference isotopes.
Additional information about the use of isotopes in paleoclimate can be found here.
Setup#
# installations ( uncomment and run this cell ONLY when using google colab or kaggle )
# !pip install cartopy
# !pip install pyleoclim
# imports
import pandas as pd
import numpy as np
import pooch
import os
import tempfile
import pyleoclim as pyleo
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from matplotlib import patches
Install and import feedback gadget#
Show code cell source
# @title Install and import feedback gadget
!pip3 install vibecheck datatops --quiet
from vibecheck import DatatopsContentReviewContainer
def content_review(notebook_section: str):
return DatatopsContentReviewContainer(
"", # No text prompt
notebook_section,
{
"url": "https://pmyvdlilci.execute-api.us-east-1.amazonaws.com/klab",
"name": "comptools_4clim",
"user_key": "l5jpxuee",
},
).render()
feedback_prefix = "W1D4_T2"
[notice] A new release of pip is available: 24.2 -> 24.3.1
[notice] To update, run: pip install --upgrade pip
Figure Settings#
Show code cell source
# @title Figure Settings
import ipywidgets as widgets # interactive display
%config InlineBackend.figure_format = 'retina'
plt.style.use(
"https://raw.githubusercontent.com/neuromatch/climate-course-content/main/cma.mplstyle"
)
Helper functions#
Show code cell source
# @title Helper functions
def pooch_load(filelocation=None, filename=None, processor=None):
shared_location = "/home/jovyan/shared/Data/tutorials/W1D4_Paleoclimate" # this is different for each day
user_temp_cache = tempfile.gettempdir()
if os.path.exists(os.path.join(shared_location, filename)):
file = os.path.join(shared_location, filename)
else:
file = pooch.retrieve(
filelocation,
known_hash=None,
fname=os.path.join(user_temp_cache, filename),
processor=processor,
)
return file
Video 1: Ocean Climate Proxies#
Submit your feedback#
Show code cell source
# @title Submit your feedback
content_review(f"{feedback_prefix}_Ocean_Climate_Proxies_Video")
If you want to download the slides: https://osf.io/download/qtkbv/
Submit your feedback#
Show code cell source
# @title Submit your feedback
content_review(f"{feedback_prefix}_Ocean_Climate_Proxies_Slides")
Section 2: Plot the Data Using Multiseries#
We will utilize the built in features of a multiseries object to plot our coral proxy data side by side. To create a pyleo.MultipleSeries
, we first create a list with our pyleo.Series
objects and then pass this into a pyleo.MultipleSeries
.
# combine into a list
nino_comparison = [palmyra_stnd, line_stnd]
# create multiseries
nino = pyleo.MultipleSeries(nino_comparison, name="El Nino Comparison")
/tmp/ipykernel_118618/1462837970.py:2: DeprecationWarning: `name` is a deprecated property, which will be removed in future releases. Please use `label` instead.
nino = pyleo.MultipleSeries(nino_comparison, name="El Nino Comparison")
# plot the time series of both datasets
fig, ax = nino.stackplot(time_unit="year", xlim=[1960, 2000], colors=["b", "g"])
/opt/hostedtoolcache/Python/3.9.20/x64/lib/python3.9/site-packages/IPython/core/events.py:82: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.
func(*args, **kwargs)
/opt/hostedtoolcache/Python/3.9.20/x64/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.
fig.canvas.print_figure(bytes_io, **kw)
Questions 2: Climate Connection#
Recall that as SST becomes colder, δ18O becomes more positive, and vice versa. Compare the figure below of the ONI to the time series of coral δ18O you plotted above and answer the questions below.
Credit: UCAR
Do the ENSO events recorded by the ONI agree with the coral data?
What are some considerations you can think of when comparing proxies such as this to the ONI?
Submit your feedback#
Show code cell source
# @title Submit your feedback
content_review(f"{feedback_prefix}_Questions_2")
Section 3: Make Warming Stripes Plot#
We can also make a warming stripe for this data Series
using the .stripes()
method, where darker red stripes indicate a warmer eastern Pacific and possibly an El Niño phase, and darker blue stripes indicate a cooler eastern Pacific and possibly La Niña phase. Can you see the trend present in the data?
fig, ax = nino.stripes(
ref_period=(1960, 1990), time_unit="year", show_xaxis=True, cmap="RdBu"
)
Summary#
In this tutorial, we discovered how oxygen isotopes within corals serve as a valuable archive, recording changes in temperature associated with ENSO phases.
During our explorations,
We ventured into the study of proxy-based coral δ18O records, gaining insights into the rich historical climate data encapsulated within these marine structures.
We compared these records to noted ENSO events over a few decades, offering us a glimpse into the dynamic nature of this influential climate phenomenon.
Resources#
The code for this tutorial is based on existing notebooks from LinkedEarth that uses the Pyleoclim
package to assess variability in El Nino.
Data from the following sources are used in this tutorial:
Cobb,K., et al., Highly Variable El Niño–Southern Oscillation Throughout the Holocene.Science 339, 67-70(2013). https://doi.org/10.1126/science.1228246 accessible here.
Cobb, K., Charles, C., Cheng, H. et al. El Niño/Southern Oscillation and tropical Pacific climate during the last millennium. Nature 424, 271–276 (2003). https://doi.org/10.1038/nature01779 accessible here.