Climate model output

Tip

ATTENTION WINDOWS USERS: Alice Pidd has created an excellent how-to guide on using a combination of Ubuntu, ncview and CDO to view and regrid Earth System Model output, specifically for Windows users. Link here. note to self - get Alice to copy/insert this as a markdown-formatted file for posterity. Also Lisa has BRAN .txt files for use with Ubuntu, add to Github.

UQ’s Mathemetical and Marine Ecology Group, led by Ant. Richardson, has an excellent handbook on the basics of working with CMIP6 models and CDO. Highly recommend to check it out here.

Download CDO

Obtain data

There’s a few options to obtain ESM ouput…

Manually

The complete archive of CMIP6 output is made available for search and download via any one of the following portals:

USA, PCMDI/LLNL (California) - https://aims2.llnl.gov/
France IPSL - https://esgf-node.ipsl.upmc.fr/search/cmip6-ipsl/
Germany, DKRZ - https://esgf-data.dkrz.de/search/cmip6-dkrz/
UK, CEDA - https://esgf-index1.ceda.ac.uk/search/cmip6-ceda/

If one of the portals are slow, consider trying another one. The above four are the most common, but here are a list of all the data nodes and their current status. Here is the portal for the Australian node, hosted by NCI.

R

You can use the epwshiftr package to query the database for models that contain the data you’re looking for, and then write a custom function to automate the downloading of that data. For example, if we wanted a list of models that produce daily output of sea-surface temperature for the r1i1p1f1 variant of the ssp245 scenario, we do the following:

epwshiftr::esgf_query(activity = "ScenarioMIP", 
                      variable = "tos", frequency = "day", 
                      experiment = "ssp245",
                      source = NULL, 
                      variant = "r1i1p1f1",
                      resolution = NULL) %>% 
  as.data.frame() %>% 
  dplyr::select(-dataset_id, -dataset_pid, -data_node,
                -variable_long_name, -mip_era, -activity_drs) %>% 
  dplyr::select(institution_id, source_id, nominal_resolution)

results in…

        institution_id        source_id nominal_resolution
1                NUIST            NESM3             100 km
2                 NCAR      CESM2-WACCM             100 km
3                 NCAR      CESM2-WACCM         1x1 degree
4                  BCC      BCC-CSM2-MR             100 km
5                CCCma          CanESM5             100 km
6            NOAA-GFDL        GFDL-ESM4              50 km
7            NOAA-GFDL        GFDL-ESM4         1x1 degree
8                KIOST        KIOST-ESM             250 km
9                  MRI       MRI-ESM2-0             100 km
10                 MRI       MRI-ESM2-0             100 km
11               MIROC           MIROC6             100 km
12                DKRZ    MPI-ESM1-2-HR              50 km
13                 AWI    AWI-CM-1-1-MR              25 km
14               MPI-M    MPI-ESM1-2-LR             250 km
15                CMCC        CMCC-ESM2             100 km
16                CMCC     CMCC-CM2-SR5             100 km
17                IPSL     IPSL-CM6A-LR             100 km
18 EC-Earth-Consortium EC-Earth3-Veg-LR             100 km
19 EC-Earth-Consortium    EC-Earth3-Veg             100 km
20 EC-Earth-Consortium        EC-Earth3             100 km
21 EC-Earth-Consortium     EC-Earth3-CC             100 km
22                 NCC       NorESM2-LM             100 km
23                 NCC       NorESM2-MM             100 km
24               CSIRO    ACCESS-ESM1-5             250 km
25        CSIRO-ARCCSS       ACCESS-CM2             250 km
26           NOAA-GFDL         GFDL-CM4              25 km
27           NOAA-GFDL         GFDL-CM4         1x1 degree

Personally, I’ve (Jessie) had issues with automating the downloading of ESM output from within R, because the servers/data nodes can drop out from time to time. I find it easier to just manually download the files I want, but that’s just me…