Skip to content

Repository with the code and data for all figures from Chapter 9 of the IPCC AR6

Notifications You must be signed in to change notification settings



Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


IPCC AR6 Chapter 9 Figures

Repository with the code and data for all figures from Chapter 9 of the Sixth Assesment Report from the Intergovernmental Panel on Climate Change (IPCC AR6).

How to use this repository

The code to plot each figure from Chapter 9 of IPCC AR6 is contained in the Plotting_code_and_data directory. Each figure has its own folder, named after its number in the report and a brief descriptor of the figure. If code from this repository substantially aids your work, it can be cited using this Zenodo reference. The plotted data is also provided in this repo and in the CEDA archives, and these data sets for each figure should be cited using these Zenodo references [LINKS TO BE ADDED].

All of the individual figure directories contain a .png, .pdf and/or .eps image of the final figure used in the IPCC AR6. In addition, many of these directories have a

  1. Plot_Figure folder that contains the code and data used to create the figure,
  2. Plotted_Data folder that contains the final plotted data in the NetCDF format required by the IPCC TSU,
  3. PNGs folder where plotting code will output image files of each subpanel (not always .png, could be .pdf, .eps etc.) The exact structure varies between figure folders due to the various authors that contributed to different figures in this chapter.

Most of the plotting codes can plot the IPCC AR6 figures using the data already in this repository.

Note: the original code for several ocean figures require large data which cannot be uploaded to GitHub or shared easily, such as CMIP datasets. As a result, we have reproduced these plotting codes to read and use the IPCC/CEDA-formatted plotted datasets, with a caveat that maps use a different hatching technique. There are two routes if you wish to replot these data-intensive figures:

  1. Use the codes suffixes _from_metadata.m, which are the codes linked in the Table below. These plots are identical to the AR6 plots, except for low confidence hatching which is replaced by stippling (it was not trivial to get the hatching function used for the report to work with the masked data format of the saved data).
  2. Download required data & run the original code. Download and collate the required datasets (for example from ESGF nodes), and use the original calculation and plotting codes for these particular figures. The metadata of CMIP datasets and other datasets used within the figures are provided in the Appendix for Chapter 9 of IPCC AR6, and in the supplementary material from the IPCC TSU. The directory structure of this data can be inferred from the code in the repository.

List of ocean figures in Chapter 9

Figure (w/ link) Code (w/ link) Primary code author(s) Brief description
Figure 9.1 N/A CLAs Visual Plan of chapter (No quantitative information; not included here)
Figure 9.2 Matlab Baylor Fox-Kemper Overview of ocean & cryosphere system
Figure 9.3 Matlab timeseries and maps Brodie Pearson Sea surface temperature
Figure 9.4 Matlab Brodie Pearson Surface fluxes of freshwater, heat, and momentum
Figure 9.5 Matlab Brodie Pearson Mixed Layer Depths
Figure 9.6 Matlab timeseries and maps Brodie Pearson Ocean Heat Content
Figure 9.7 Matlab Brodie Pearson Zonal transects of ocean temperature
Figure 9.8 Matlab: maps (Obs/CMIP/RCP8.5), Python: AMOC scatterplot Baylor Fox-Kemper Ocean heat transport
Figure 9.9 Matlab Alan Mix & Brodie Pearson Paleo-, modern- and future-changes in ocean heat content and surface temperatures
Figure 9.10 Matlab: paleo & freshwater panels, Python: timeseries & resolution panels Baylor Fox-Kemper, Laura Jackson & Matt Menary AMOC as a function of time (paleo, historical, projected), resolution, and fresh water
Figure 9.11 Matlab maps of speed and streamfunction, and transports figure Brodie Pearson & Baylor Fox-Kemper Barotropic streamfunction, surface currents, and transports
Figure 9.12 Matlab maps of SSH & standard deviation of SSH Brodie Pearson Maps of ocean sea level rise and the standard deviation of sea surface height

List of cryosphere figures in Chapter 9

Figure (w/ link) Code (w/ link) Primary code author(s) Brief description
Figure 9.13 Python timeseries and maps Dirk Notz & Jakob Doerr Arctic sea-ice historical records and CMIP6 projections
Figure 9.14 Python Jakob Doerr Arctic sea-ice area as a function of temperature, CO2 emissions and time
Figure 9.15 Python timeseries and maps Dirk Notz & Jakob Doerr Antarctic sea-ice historical records and CMIP6 projections
Figure 9.16 Matlab: Antarctic summary & regions, and Greenland summary & regions Baylor Fox-Kemper & Brodie Pearson Observed timeseries of Antarctic & Greenland Mass Balance
Figure 9.17 Matlab maps and timeseries Brodie Pearson & Baylor Fox-Kemper Greenland Ice Sheet: synthesis of paleo-, modern- and future-changes
Figure 9.18 Matlab maps and timeseries Brodie Pearson & Baylor Fox-Kemper Antarctic Ice Sheet: synthesis of paleo-, modern- and future-changes
Figure 9.19 Python past maps and future maps Nicolas Jourdain Antarctic basal melt rates
Figure 9.20 Matlab Lucas Ruiz Glacier mass change rates
Figure 9.21 Matlab Lucas Ruiz Glacier mass relative to 2015
Figure 9.22 Python Gerhard Krinner Permafrost area and changes
Figure 9.23 Python Gerhard Krinner Snow cover timeseries
Figure 9.24 Python climatology & sensitivity Gerhard Krinner Northern Hemisphere snow extent

List of sea level figures in Chapter 9

Figure (w/ link) Code (w/ link) Primary code author(s) Brief description
Figure 9.25 Matlab Bob Kopp Literature global mean sea level projections for 2050 and 2100 under different SSPs
Figure 9.26 Matlab timeseries and maps Brodie Pearson Projected sea level change contributions under SSP1-2.6 and SSP5-8.5
Figure 9.27 Matlab Bob Kopp Projected global mean sea level rise under different SSP scenarios
Figure 9.28 Matlab Brodie Pearson Regional sea level change at 2100 for different SSP scenarios
Figure 9.29 R code Greg Garner & Bob Kopp Projected timing of sea-level rise milestones
Figure 9.30 Matlab Bob Kopp, Baylor Fox-Kemper & Brodie Pearson 2,000- and 10,000-year sea-level commitments as a function of peak global surface air temperature anomaly
Figure 9.31 Matlab map and timeseries (requires Mapping Toolbox) Billy Sweet & Mark Hemer Observed changes in tidal flood frequency and regional sea level
Figure 9.32 Matlab Tim Hermans & Brodie Pearson Median amplification factor of extreme still water level by 2050 and 2100

List of additional figures in chapter 9

Figure (w/ link) Code (w/ link) Primary code author(s) Brief description
Box 9.2 Figure Not available yet Thomas Froelicher Marine Heatwaves
Cross-chap. Box 9.1.1 Python/Pre-processing Python/Jupyter notebook Matt Palmer Global energy inventory and global sea-level budget
FAQ 9.1 Figure Python Sophie Berger Can melting of the ice sheets be reversed?
FAQ 9.2 Figure Python Sophie Berger How much will sea level rise in the next few decades?
FAQ 9.3 Figure N/A Sophie Berger Gulf stream shutdown schematic (No quantitative information; not included here)

Functions for IPCC processing/analysis

Matlab Functions

Many of the figures in Chapter 9 use Matlab functions created by Brodie Pearson and Baylor Fox-Kemper. These functions include scripts to plot maps, manipulate CMIP datasets, and use IPCC color schemes. They are found in the Functions directory in scripts with the naming convention IPCC_*.nc. The Matlab plotting code within this repository is set up to use these functions automatically.

The Functions directory also contains some Matlab scripts that are not distributed within Matlab's standard installation, but are available online through MathWorks.

ESMValTool recipes

Some of the code uses ESMValTool to perform certain pre-processing operations on CMIP ensembles and observational/reanalysis data. These operations include: re-gridding onto matching grids, extraction of specific time periods or regions, and temporal/spatial averaging. ESMValTool is a tool for processing and plotting CMIP data. In Chapter 9 ESMValTool was used to process some datasets, but it was not used to plot this data.

ESMValTool uses recipes and diagnostics which each perform a specific purpose. Recipes are used to extract and process the appropriate datasets from CMIP and other sources. Diagnostics are used to plot figures (or calculate diagnostics) using this extracted and processed data. The ESMValTool recipes for Chapter 9 are contained within this directory. The recipes in this repository are designed to crash after processing the data, although you may need to create an empty diagnostic file with the name contained at the end of the recipe, so that ESMValTool thinks it will eventually plot the processed data. After ESMValTool crashes, the processed data can be extracted from the appropriate pre-processor directory. Note that you may need to turn off a flag (such as switching remove_preproc_dir to false) to save the processed data.

The ESMValTool recipe directory contains the following files. All were run using ESMValTool v2.0.0:

  • A config file, which sets various configuration switches including the directories that ESMValTool looks for data sets from CMIP and other sources.
  • A Recipes directory containing the ESMValTool recipes used to extract and process data for Chapter 9.
  • A CMIP6_Lists directory that contains terminal printouts of the list of available model datasets for a particular experiment and variable combination. Some models have multiple datasets (ensemble), in which case we used the first available dataset (which can be validated by looking at the recipes). This list contains information about the latest version release of each of these model datasets at the time the Chapter 9 figures were created.
  • A script that was the basis for producing the printouts in the CMIP6_Lists directory.


Repository with the code and data for all figures from Chapter 9 of the IPCC AR6






No packages published


  • MATLAB 59.7%
  • HTML 20.5%
  • Jupyter Notebook 12.5%
  • Python 5.3%
  • Fortran 0.8%
  • Shell 0.8%
  • R 0.4%