Introduction: loading, slicing, dicing model output¶
This tutorial is designed to help new users get to grips with the COSIMA Cookbook.
The COSIMA Cookbook is collection of recipes for analysing ocean and sea ice model output, using a common method of loading the output.
The tutorial requires:
Access to the ACCESS-NRI Intake Catalog (through project
xp65).Ability to open a Jupyter notebook on the NCI’s Gadi HPC (e.g., via the ARE).
Access an appropriate set of
condapackages to load the appropriate python libraries (such as through thexp65conda packages).
Before starting, load in some standard libraries that you are likely to need:
[1]:
# To start a dask cluster
from dask.distributed import Client
# For plotting
import matplotlib.pyplot as plt
# For oceanographic colormaps
import cmocean as cm
# For numerical operations
import numpy as np
Start a cluster with multiple cores
[2]:
client = Client(threads_per_worker=1)
client
[2]:
Client
Client-8cd8f7c6-bf7b-11f0-95b3-000003c1fe80
| Connection method: Cluster object | Cluster type: distributed.LocalCluster |
| Dashboard: /proxy/8787/status |
Cluster Info
LocalCluster
f8aeb0da
| Dashboard: /proxy/8787/status | Workers: 28 |
| Total threads: 28 | Total memory: 126.00 GiB |
| Status: running | Using processes: True |
Scheduler Info
Scheduler
Scheduler-66952877-86e7-4706-99e2-1cf4bb485574
| Comm: tcp://127.0.0.1:41137 | Workers: 0 |
| Dashboard: /proxy/8787/status | Total threads: 0 |
| Started: Just now | Total memory: 0 B |
Workers
Worker: 0
| Comm: tcp://127.0.0.1:41421 | Total threads: 1 |
| Dashboard: /proxy/40611/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:35345 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-iv_q1h9b | |
Worker: 1
| Comm: tcp://127.0.0.1:45711 | Total threads: 1 |
| Dashboard: /proxy/38423/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:37401 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-aeffqnoe | |
Worker: 2
| Comm: tcp://127.0.0.1:32955 | Total threads: 1 |
| Dashboard: /proxy/34937/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:42867 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-17vxo9as | |
Worker: 3
| Comm: tcp://127.0.0.1:36133 | Total threads: 1 |
| Dashboard: /proxy/46209/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:43415 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-fju4vr7j | |
Worker: 4
| Comm: tcp://127.0.0.1:43829 | Total threads: 1 |
| Dashboard: /proxy/34025/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:35845 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-clikfdzb | |
Worker: 5
| Comm: tcp://127.0.0.1:42395 | Total threads: 1 |
| Dashboard: /proxy/34211/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:41273 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-bqbniv5u | |
Worker: 6
| Comm: tcp://127.0.0.1:35003 | Total threads: 1 |
| Dashboard: /proxy/32889/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:40503 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-9yroj9on | |
Worker: 7
| Comm: tcp://127.0.0.1:33687 | Total threads: 1 |
| Dashboard: /proxy/39265/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:43229 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-na79oui3 | |
Worker: 8
| Comm: tcp://127.0.0.1:39933 | Total threads: 1 |
| Dashboard: /proxy/40389/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:33855 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-y52rdxtg | |
Worker: 9
| Comm: tcp://127.0.0.1:41211 | Total threads: 1 |
| Dashboard: /proxy/39723/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:46353 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-qcb2_u4w | |
Worker: 10
| Comm: tcp://127.0.0.1:38187 | Total threads: 1 |
| Dashboard: /proxy/34609/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:33939 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-f1ywe0sk | |
Worker: 11
| Comm: tcp://127.0.0.1:45559 | Total threads: 1 |
| Dashboard: /proxy/35281/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:41641 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-gxtgq75u | |
Worker: 12
| Comm: tcp://127.0.0.1:41099 | Total threads: 1 |
| Dashboard: /proxy/37859/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:33401 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-t304v778 | |
Worker: 13
| Comm: tcp://127.0.0.1:42779 | Total threads: 1 |
| Dashboard: /proxy/38267/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:36787 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-z5ij7fnk | |
Worker: 14
| Comm: tcp://127.0.0.1:36969 | Total threads: 1 |
| Dashboard: /proxy/35523/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:43985 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-bno8b1o4 | |
Worker: 15
| Comm: tcp://127.0.0.1:40979 | Total threads: 1 |
| Dashboard: /proxy/43379/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:34393 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-2fito7v8 | |
Worker: 16
| Comm: tcp://127.0.0.1:44611 | Total threads: 1 |
| Dashboard: /proxy/38599/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:37979 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-pbkwrn2u | |
Worker: 17
| Comm: tcp://127.0.0.1:41823 | Total threads: 1 |
| Dashboard: /proxy/38243/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:38785 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-3eq3kdww | |
Worker: 18
| Comm: tcp://127.0.0.1:44653 | Total threads: 1 |
| Dashboard: /proxy/33327/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:37879 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-w1acv2dk | |
Worker: 19
| Comm: tcp://127.0.0.1:33607 | Total threads: 1 |
| Dashboard: /proxy/41515/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:37047 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-2ouksxve | |
Worker: 20
| Comm: tcp://127.0.0.1:40945 | Total threads: 1 |
| Dashboard: /proxy/38827/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:40083 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-n_l7s5rl | |
Worker: 21
| Comm: tcp://127.0.0.1:40985 | Total threads: 1 |
| Dashboard: /proxy/39559/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:35147 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-i_6pdfy1 | |
Worker: 22
| Comm: tcp://127.0.0.1:38525 | Total threads: 1 |
| Dashboard: /proxy/36657/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:32999 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-6v5z87hv | |
Worker: 23
| Comm: tcp://127.0.0.1:42183 | Total threads: 1 |
| Dashboard: /proxy/44983/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:32787 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-dkmnrmaq | |
Worker: 24
| Comm: tcp://127.0.0.1:37325 | Total threads: 1 |
| Dashboard: /proxy/36281/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:46649 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-1go61ajl | |
Worker: 25
| Comm: tcp://127.0.0.1:43805 | Total threads: 1 |
| Dashboard: /proxy/42981/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:38121 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-gw8nxhpz | |
Worker: 26
| Comm: tcp://127.0.0.1:35719 | Total threads: 1 |
| Dashboard: /proxy/46747/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:42485 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-81bd4mli | |
Worker: 27
| Comm: tcp://127.0.0.1:42975 | Total threads: 1 |
| Dashboard: /proxy/40885/status | Memory: 4.50 GiB |
| Nanny: tcp://127.0.0.1:41373 | |
| Local directory: /jobfs/154337789.gadi-pbs/dask-scratch-space/worker-04d0do71 | |
In addition, you always need to load the intake module. This provides functions that we use to load data via the ACCESS-NRI Intake Catalog:
[3]:
import intake
1. The Cookbook Philosophy¶
The COSIMA Cookbook is a framework for analysing ocean-sea ice model output. It is designed to:
Provide examples of commonly used analyses;
Write efficient, well-documented, openly accessible code;
Encourage community contributions to the code;
Ensure analyses results are reproducible;
Carry out analysis using directly the model output, minimising creation of intermediate files;
Find methods to deal with the memory limitations when analysing high-resolution model output.
1.1 A database of experiments¶
The COSIMA Cookbook relies on a database of experiments (let’s call it a datastore) in order to load model output. This datastore effectively holds metadata for each experiment, as well as variable names, data ranges and so on.
NCI Projects: Access to COSIMA ocean-sea ice model output requires that you are a member of NCI projects xp65, ik11, cj50, and ol01.
With that sorted out, there are three different ways for you to access the datastore:
Use the default ACCESS-NRI catalog, which is periodically refreshed automatically. This datastore includes many experiments stored in the COSIMA data directories on NCI under the projects mentioned above. The examples in this tutorial use this datastore.
Use another datastore that someone has made for you.
Make your own catalog, which is stored in your own path and includes only the experiments you are interested in. Please refer to the
`Make_Your_Own_Intake_Datastore<https://cosima-recipes.readthedocs.io/en/latest/01-Cooking-Tutorials/02-Advanced/Make_Your_Own_Intake_Datastore.html>`__ tutorial for instructions on how to create this datastore.
To access the default datastore, you need to load it each time you fire up a notebook:
[4]:
catalog = intake.cat.access_nri
1.2 Inbuilt Catalog Functions¶
We have constructed a few functions to help you operate the cookbook and to access the datasets. The following functions query and display the data available in the datastore, without loading the data itself.
catalog lists all of the experiments and variables that are included in the datastore. The format is mostly self-explanatory, but the list is huge (and noth particularly useful):
[5]:
catalog
access_nri catalog with 120 source(s) across 2569 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| 01deg_jra55_ryf_Control | {ACCESS-OM2-01} | {0.1° ACCESS-OM2 repeat year forcing control run for the simulations performed in Huguenin et al. (2024, GRL)} | {ocean, seaIce} | {1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, sw_heat_on_nrho, temp_tendency, temp_vdiffuse_diff_cbt, mass_pmepr_on_nrho, evap, TLON... |
| 01deg_jra55_ryf_ENFull | {ACCESS-OM2} | {0.1° ACCESS-OM2 El Níño run for the simulations performed in Huguenin et al. (2024, GRL)} | {ocean, seaIce} | {1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, total_ocean_calving, temp_surface_ave, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_sur... |
| 01deg_jra55_ryf_LNFull | {ACCESS-OM2} | {0.1° ACCESS-OM2 La Níña run for the simulations performed in Huguenin et al. (2024, GRL)} | {ocean, seaIce} | {1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, total_ocean_calving, temp_surface_ave, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_sur... |
| 01deg_jra55v13_ryf9091 | {ACCESS-OM2-01} | {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {fx, 3mon, 3hr, 1day, 1mon} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, temp_tendency, TLON, evap, yt_ocean_sub01, st_edges_ocean, grid_xu_ocean, average_DT, ... |
| 01deg_jra55v13_ryf9091_easterlies_down10 | {ACCESS-OM2-01} | {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and zonal/meridional wind speed around Antarctica decreased by 10%.} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_surface_ave, yt_ocean, geo... |
| 01deg_jra55v13_ryf9091_easterlies_up10 | {ACCESS-OM2-01} | {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and zonal/meridional wind speed around Antarctica increased by 10%.} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_surface_ave, yt_ocean, geo... |
| 01deg_jra55v13_ryf9091_easterlies_up10_meridional | {ACCESS-OM2-01} | {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and meridional wind speed around Antarctica increased by 10%.} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_surface_ave, yt_ocean, geo... |
| 01deg_jra55v13_ryf9091_easterlies_up10_zonal | {ACCESS-OM2-01} | {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and zonal wind speed around Antarctica increased by 10%.} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_surface_ave, yt_ocean, geo... |
| 01deg_jra55v13_ryf9091_qian_wthmp | {ACCESS-OM2} | {Future perturbations with wind, thermal and meltwater forcing, branching off 01deg_jra55v13_ryf9091, as described in Li et al. 2023, https://www.nature.com/articles/s41586-023-05762-w} | {ocean, seaIce} | {1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, total_ocean_calving, temp_surface_ave, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_sur... |
| 01deg_jra55v13_ryf9091_qian_wthp | {ACCESS-OM2} | {Future perturbation with wind and thermal forcing, branching off 01deg_jra55v13_ryf9091, as described in Li et al. 2023, https://www.nature.com/articles/s41586-023-05762-w} | {ocean, seaIce} | {1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, total_ocean_calving, temp_surface_ave, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_sur... |
| 01deg_jra55v13_ryf9091_weddell_down2 | {ACCESS-OM2-01} | {Weddell Sea decreased meltwater perturbation experiment, branched off 01deg_jra55v13_ryf9091. } | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_surface_ave, yt_ocean, geo... |
| 01deg_jra55v13_ryf9091_weddell_up1 | {ACCESS-OM2-01} | {Weddell Sea increased meltwater perturbation experiment, branched off 01deg_jra55v13_ryf9091. } | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, average_DT, salt_surface_ave, yt_ocean, geo... |
| 01deg_jra55v140_iaf | {ACCESS-OM2-01} | {Cycle 1 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, tarea, dvidtt, temp_surface_ave, ty_trans, TLON, evap, st_edges_ocean, average_DT, salt_surface_ave, yt_ocean, geolon_t, ... |
| 01deg_jra55v140_iaf_cycle2 | {ACCESS-OM2-01} | {Cycle 2 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, tarea, dvidtt, temp_surface_ave, VGRDi, ty_trans, TLON, evap, st_edges_ocean, fsurf_ai, average_DT, salt_surface_ave, yt_ocean,... |
| 01deg_jra55v140_iaf_cycle3 | {ACCESS-OM2-01} | {Cycle 3 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, tarea, dvidtt, temp_surface_ave, VGRDi, ty_trans, TLON, evap, st_edges_ocean, grid_xu_ocean, fsurf_ai, salt_yflux_adv, average_... |
| 01deg_jra55v140_iaf_cycle4 | {ACCESS-OM2-01} | {Cycle 4 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} | {ocean, seaIce} | {6hr, fx, 3hr, 1day, 1mon} | {det_intmld, alvdr_ai, temp_surface_ave, aice_h, ml_Nit_m, skl_Nit_m, fsurf_ai, geolon_t, u, fe_int100, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean... |
| 01deg_jra55v140_iaf_cycle4_jra55v150_extension | {ACCESS-OM2-01} | {Extensions of cycle 4 of 0.1 degree ACCESS-OM2 + WOMBAT BGC global model configuration with JRA55-do v1.5.0 and v1.5.0.1 interannual forcing} | {ocean, seaIce} | {1day, 1mon, subhr, fx} | {det_intmld, temp_surface_ave, ml_Nit_m, skl_Nit_m, fsurf_ai, geolon_t, u, fe_int100, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_heat, alidr_ai_m,... |
| 01deg_jra55v150_iaf_cycle1 | {ACCESS-OM2} | {Cycle 1 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.5.0 OMIP2 interannual forcing} | {ocean, seaIce} | {1day, 1mon, fx} | {xt_ocean, ty_trans, TLON, evap, st_edges_ocean, average_DT, geolon_t, yt_ocean, dzt, evap_heat, fprec_melt_heat, st_ocean, xu_ocean, u, pbot_t, runoff, mh_flux, wfimelt, ty_trans_int_z, nv, grid_... |
| 025deg_era5_iaf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1980-2021)} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, geol... |
| 025deg_era5_ryf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, geolon_t, uvel_m, d... |
| 025deg_jra55_iaf_era5comparison | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with JRA55-do v1.5.0\ninterannual forcing (1980-2019)} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, geol... |
| 025deg_jra55_iaf_omip2_cycle1 | {ACCESS-OM2} | {Cycle 1/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, fsurf_ai, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, s... |
| 025deg_jra55_iaf_omip2_cycle2 | {ACCESS-OM2} | {Cycle 1/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, fsurf_ai, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, s... |
| 025deg_jra55_iaf_omip2_cycle3 | {ACCESS-OM2} | {Cycle 3/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, fsurf_ai, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, s... |
| 025deg_jra55_iaf_omip2_cycle4 | {ACCESS-OM2} | {Cycle 4/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, fsurf_ai, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, s... |
| 025deg_jra55_iaf_omip2_cycle5 | {ACCESS-OM2} | {Cycle 5/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, fsurf_ai, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, s... |
| 025deg_jra55_iaf_omip2_cycle6 | {ACCESS-OM2} | {Cycle 6/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} | {ocean, seaIce} | {1day, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, fsurf_ai, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_he... |
| 025deg_jra55_ryf9091_gadi | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1yr, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, total_ocean_calving, temp_surface_ave, strtlty_m, ty_trans, snow_ai_m, TLON, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, ge... |
| 025deg_jra55_ryf_era5comparison | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0\nRYF9091 repeat year forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, geol... |
| 1deg_era5_iaf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1960-2019)} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, tau_x_min, temp_yflux_adv, ty_trans_gm, tarea, temp_surface_ave, dvidtt, strtlty_m, ty_trans, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_... |
| 1deg_era5_ryf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, geolon_t, uvel_m, d... |
| 1deg_jra55_iaf_era5comparison | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0\ninterannual forcing (1960-2019)} | {ocean, seaIce} | {1day, 1mon, fx} | {sea_level_max, shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, ty_trans_gm, tarea, dvidtt, temp_surface_ave, strtlty_m, ty_trans, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, avera... |
| 1deg_jra55_iaf_omip2_cycle1 | {ACCESS-OM2} | {Cycle 1/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_... |
| 1deg_jra55_iaf_omip2_cycle2 | {ACCESS-OM2} | {Cycle 2/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_... |
| 1deg_jra55_iaf_omip2_cycle3 | {ACCESS-OM2} | {Cycle 3/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_... |
| 1deg_jra55_iaf_omip2_cycle4 | {ACCESS-OM2} | {Cycle 4/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_... |
| 1deg_jra55_iaf_omip2_cycle5 | {ACCESS-OM2} | {Cycle 5/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_... |
| 1deg_jra55_iaf_omip2_cycle6 | {ACCESS-OM2} | {Cycle 6/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, bottom_temp_max, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, surface_fe, total_ocean_... |
| 1deg_jra55_iaf_omip2spunup_cycle1 | {ACCESS-OM2} | {Cycle 1/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, salt_riverm... |
| 1deg_jra55_iaf_omip2spunup_cycle10 | {ACCESS-OM2} | {Cycle 10/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle11 | {ACCESS-OM2} | {Cycle 11/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle12 | {ACCESS-OM2} | {Cycle 12/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle13 | {ACCESS-OM2} | {Cycle 13/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle14 | {ACCESS-OM2} | {Cycle 14/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle15 | {ACCESS-OM2} | {Cycle 15/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle16 | {ACCESS-OM2} | {Cycle 16/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle17 | {ACCESS-OM2} | {Cycle 17/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle18 | {ACCESS-OM2} | {Cycle 18/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle19 | {ACCESS-OM2} | {Cycle 19/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle2 | {ACCESS-OM2} | {Cycle 2/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, salt_riverm... |
| 1deg_jra55_iaf_omip2spunup_cycle20 | {ACCESS-OM2} | {Cycle 20/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle21 | {ACCESS-OM2} | {Cycle 21/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle22 | {ACCESS-OM2} | {Cycle 22/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle23 | {ACCESS-OM2} | {Cycle 23/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle24 | {ACCESS-OM2} | {Cycle 24/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle25 | {ACCESS-OM2} | {Cycle 25/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle26 | {ACCESS-OM2} | {Cycle 26/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle27 | {ACCESS-OM2} | {Cycle 27/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle28 | {ACCESS-OM2} | {Cycle 28/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle29 | {ACCESS-OM2} | {Cycle 29/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle3 | {ACCESS-OM2} | {Cycle 3/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, salt_riverm... |
| 1deg_jra55_iaf_omip2spunup_cycle30 | {ACCESS-OM2} | {Cycle 30/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle31 | {ACCESS-OM2} | {Cycle 31/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle32 | {ACCESS-OM2} | {Cycle 32/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle33 | {ACCESS-OM2} | {Cycle 33/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle34 | {ACCESS-OM2} | {Cycle 34/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle35 | {ACCESS-OM2} | {Cycle 35/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle36 | {ACCESS-OM2} | {Cycle 36/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle37 | {ACCESS-OM2} | {Cycle 37/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle38 | {ACCESS-OM2} | {Cycle 38/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle39 | {ACCESS-OM2} | {Cycle 39/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle4 | {ACCESS-OM2} | {Cycle 4/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {ty_trans_gm, temp_surface_ave, usq, snow_ai_m, fcondtopn_ai_m, aiso_bih, geolon_t, patm_t, liceht, u, flatn_ai_m, total_ocean_river_heat, ty_trans_int_z, total_ocean_heat, alidr_ai_m, salt_riverm... |
| 1deg_jra55_iaf_omip2spunup_cycle40 | {ACCESS-OM2} | {Cycle 40/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle41 | {ACCESS-OM2} | {Cycle 41/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle42 | {ACCESS-OM2} | {Cycle 42/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle43 | {ACCESS-OM2} | {Cycle 43/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle44 | {ACCESS-OM2} | {Cycle 44/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle45 | {ACCESS-OM2} | {Cycle 45/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle5 | {ACCESS-OM2} | {Cycle 5/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle6 | {ACCESS-OM2} | {Cycle 6/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {xt_ocean, total_ocean_evap, ty_trans_gm, temp_yflux_adv, tarea, temp_surface_ave, mld_min, usq, ty_trans, temp_tendency, temp_vdiffuse_diff_cbt, TLON, evap, st_edges_ocean, grid_xu_ocean, aiso_bi... |
| 1deg_jra55_iaf_omip2spunup_cycle7 | {ACCESS-OM2} | {Cycle 7/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1day, 1yr, 1mon} | {shear_m, xt_ocean, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, st_edges_ocean, fcondtopn_ai_m, salt_surface_ave, average_DT, yt_ocean, uvel_m, divu_m, strcorx_m, st_ocean, o2, vv... |
| 1deg_jra55_iaf_omip2spunup_cycle8 | {ACCESS-OM2} | {Cycle 8/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_iaf_omip2spunup_cycle9 | {ACCESS-OM2} | {Cycle 9/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} | {ocean, seaIce} | {1yr, 1mon} | {det, ANGLET, xt_ocean, tarea, fswup_m, temp_surface_ave, HTN, alidf_ai_m, uatm_m, alvdf_ai_m, TLON, scalar_axis, sea_level, st_edges_ocean, no3, total_mass_seawater, dxu, stf09, time, salt_surfac... |
| 1deg_jra55_ryf9091_gadi | {ACCESS-OM2} | {1 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1yr, 1mon, fx} | {neutral_gm_on_nrho_temp, shear_m, xt_ocean, total_ocean_evap, temp_yflux_adv, total_ocean_calving, ty_trans_gm, tarea, temp_surface_ave, temp_tendency_on_nrho, strtlty_m, ty_trans, sw_heat_on_nrh... |
| 1deg_jra55v14_ryf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 RYF9091\nrepeat year forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1day, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, dvidtt, temp_surface_ave, strtlty_m, snow_ai_m, TLON, evap, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, geolon_t, uvel_m, d... |
| HI_CN_05 | {ACCESS-ESM1-5} | {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with phosphorus limitation disabled within CASA-CNP} | {ocean, seaIce, atmos} | {6hr, 1yr, 3hr, 1day, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| HI_C_05_r1 | {ACCESS-ESM1-5} | {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with nitrogen and phosphorus limitations disabled within CASA-CNP} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| HI_nl_C_05_r1 | {ACCESS-ESM1-5} | {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with nitrogen and phosphorus limitations disabled within CASA-CNP, and land-use change disabled} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| HI_noluc_CN_05 | {ACCESS-ESM1-5} | {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with phosphorus limitation disabled within CASA-CNP, and land-use change disabled} | {ocean, seaIce, atmos} | {6hr, 1yr, 3hr, 1day, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| OM4_025.JRA_RYF | {MOM6, SIS2} | {0.25 degree GFDL-OM4 (MOM6+SIS2) global model configuration under 1990-1991 JRA55-do repeat year forcing.} | {ocean, seaIce} | {1day, 1yr, 1mon, fx} | {wfo, dyCv, heat_content_cond, vo, xTe, geolat, thetao, wet_u, sosga, prsn, wet_c, average_DT, xq, yq, areacello, agessc, hfibthermds, yTe, areacello_cu, so_xyave, zosmin, tosmin, heat_content_mas... |
| PI_GWL_B2035 | {ACCESS-ESM1-5} | {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2035 } | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| PI_GWL_B2040 | {ACCESS-ESM1-5} | {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2040} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| PI_GWL_B2045 | {ACCESS-ESM1-5} | {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2045} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| PI_GWL_B2050 | {ACCESS-ESM1-5} | {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2050} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| PI_GWL_B2055 | {ACCESS-ESM1-5} | {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2055} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| PI_GWL_B2060 | {ACCESS-ESM1-5} | {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2060} | {ocean, seaIce, atmos} | {1day, 1yr, 1mon} | {rossby_radius, ty_trans_gm, temp_surface_ave, pseudo_level_0, phynos_raw, evap_ai, fld_s30i208, fsurf_ai, dissicnatos_raw, diff_cbt_kpp_t, geolon_t, fld_s03i868, buoy_freq_ave_submeso, pbot0, pat... |
| WOA-13 | {World Ocean Atlas 2013} | {2013 World Ocean Atlas (WOA-13), regridded to various model grids.} | {ocean} | {fx} | {time, GRID_Y_T, GRID_X_T, salt, lon, potential_temperature, lat, ZT, practical_salinity, temp} |
| WOA23 | {World Ocean Atlas 2023} | {World Ocean Atlas 2023} | {ocean} | {fx} | {n_gp, i_sd, n_oa, i_se, s_sdo, n_ma, s_se, o_ma, n_mn, o_sea, n_se, p_oa, i_mn, i_gp, p_dd, s_sea, o_dd, time, o_mn, t_sd, n_dd, o_an, p_mn, t_oa, n_sd, s_oa, s_an, i_an, s_dd, t_an, i_sea, i_dd,... |
| barpa_py18 | {BARPA-R1-NN, BARPA-C, BARPA-R} | {Bureau of Meteorology Atmospheric Regional Projections for Australia (BARPA)} | {none} | {6hr, subhr, fx, 3hr, 1day, 1hr, 1mon} | {ua1500m, wap800, hus950, zg250, wa20, ta150m, ua925, va400, tasmin, rsds, snd, hus50, FZL, ta800, hus70, snm, wsgsmax, ta200m, ua150m, ta70, vasmax, qfluxu, twpse, wa700, sfcWind, mrro, prsn, DCP... |
| bx944 | {ACCESS-CM2} | {Standard CMIP6 historical simulation, control experiment for by473 pacemaker experiment (948d8676-2c56-49db-8ea1-b80572b074c8)} | {ocean, seaIce, atmos} | {1day, 1mon} | {rossby_radius, alvdr_ai, ty_trans_gm, temp_surface_ave, fld_s34i115, pseudo_level_0, siv, fld_s30i296, fld_s30i208, fsurf_ai, diff_cbt_kpp_t, fld_s00i253, geolon_t, buoy_freq_ave_submeso, pbot0, ... |
| by473 | {ACCESS-CM2} | {Pacemaker variation of CMIP6 historical simulation, Topical Atlantic region replaced with fixed SSTs from observations} | {ocean, seaIce, atmos} | {1day, 1mon} | {rossby_radius, alvdr_ai, ty_trans_gm, temp_surface_ave, fld_s34i115, pseudo_level_0, siv, fld_s30i296, fld_s30i208, fsurf_ai, diff_cbt_kpp_t, fld_s00i253, geolon_t, buoy_freq_ave_submeso, pbot0, ... |
| by578 | {ACCESS-CM2} | {Pacemaker variation of CMIP6 ssp245 simulation with Tropical Atlantic region replaced with fixed SSTs from observations} | {ocean, seaIce, atmos} | {1day, 1mon} | {rossby_radius, alvdr_ai, ty_trans_gm, temp_surface_ave, fld_s34i115, pseudo_level_0, siv, fld_s30i296, fld_s30i208, fsurf_ai, diff_cbt_kpp_t, fld_s00i253, geolon_t, buoy_freq_ave_submeso, pbot0, ... |
| by647 | {ACCESS-CM2} | {Standard CMIP6 ssp245 simulation, control experiment for by578 pacemaker experiment (1fd9e682-d393-4b17-a9cd-934c3a48a1f8)} | {ocean, seaIce, atmos} | {1day, 1mon} | {rossby_radius, alvdr_ai, ty_trans_gm, temp_surface_ave, fld_s34i115, pseudo_level_0, siv, fld_s30i296, fld_s30i208, fsurf_ai, diff_cbt_kpp_t, fld_s00i253, geolon_t, buoy_freq_ave_submeso, pbot0, ... |
| bz687 | {ACCESS-CM2} | {ACCESS-CM2 CMIP6 with 1 degree ocean. Present day atmospheric forcing with 1985-2014 mean GHG, aerosol emissions etc.} | {ocean, seaIce, atmos} | {1day, 1mon} | {rossby_radius, alvdr_ai, ty_trans_gm, temp_surface_ave, fld_s34i115, pseudo_level_0, siv, fld_s30i296, fld_s30i208, fsurf_ai, diff_cbt_kpp_t, fld_s00i253, geolon_t, buoy_freq_ave_submeso, pbot0, ... |
| cj877 | {ACCESS-CM2} | {ACCESS-CM2 with COSIMA OM2 0.25 degree ocean configuration. Present day atmospheric forcing with 1985-2014 mean GHG, aerosol emissions etc.} | {ocean, seaIce, atmos} | {1day, 1mon, fx} | {alvdr_ai, ty_trans_gm, temp_surface_ave, fld_s34i115, pseudo_level_0, siv, fld_s30i296, fld_s30i208, fsurf_ai, fld_s00i253, geolon_t, fld_s02i301, u, bottom_temp_max, fld_s03i807, sitemptop, fld_... |
| cmip5_al33 | {HadREM3-GA7-05, CanRCM4, GFDL-HIRAM-C180, RegCM4-7, HadGEM2-ES, CNRM-CM5-2, CCSM4, MIROC-ESM, FGOALS-s2, RACMO22T, GFDL-ESM2M, CFSv2-2011, CCLM4-8-17, CCLM5-0-6, HIRHAM5, IPSL-CM5A-LR, CRCM5, IPS... | {Replicated CMIP5-era datasets catalogued by NCI} | {land, landIce, aerosol, ocean, atmos, seaIce, none, ocnBgchem} | {6hr, 1yr, subhr, fx, 3hr, 1day, 1mon} | {mc, sblsi, od870aer, sootsn, vo, dryso2, msftmrhoz, drydms, sfcWind, prsn, ph, intpdiat, tnsclihencl, va200, tnsclimr, wetnh4, sic, emiso2, cldncl, rldcs, clmcalipso, rlutcs, dpo2, hurs, fsfe, hf... |
| cmip5_rr3 | {ACCESS1-3, UNSW-WRF360J, UNSW-WRF360K, CSIRO-CCAM, CSIRO-Mk3L-1-2, CSIRO-CCAM-2008, UQ-DES-CCAM, ACCESS1-0, CSIRO-Mk3-6-0, UNSW-WRF360L, BOM-SDMa-NRM, CSIRO-CCAM-1704} | {Australian CMIP5-era datasets catalogued by NCI} | {land, landIce, aerosol, ocean, atmos, seaIce, none} | {6hr, fx, 3mon, 3hr, 1day, 1hr, 1mon} | {concdms, hfxba, mc, wfo, od870aer, sconcdust, dryso2, tasmin, rsds, snd, vo, abs550aer, snm, wap, clw, thetao, sfcWind, prsn, mrro, rsdscs, rsus, ta, wmosq, hfbasinba, tsl, va200, areacello, mrso... |
| cmip6_fs38 | {ACCESS-OM2, ACCESS-ESM1-5, ACCESS-OM2-025, ACCESS-CM2} | {Australian CMIP6-era datasets catalogued by NCI} | {land, landIce, aerosol, ocean, atmos, seaIce, ocnBgchem} | {6hr, 1yr, fx, 3hr, 1day, 1mon} | {fNleach, mc, vo, intuaw, siv, sfcWind, prsn, rlutcs, nLand, hurs, sivols, sitemptop, siflfwbot, hfrainds, sidmasstrany, vegFrac, sftof, hfbasin, sistryubot, fgco2nat, evs, rlds, mrros, cropFracC3... |
| cmip6_oi10 | {EC-Earth3, ECMWF-IFS-HR, ACCESS-OM2, GFDL-AM4, E3SM-1-1-ECA, E3SM-2-0-NARRM, EC-Earth3P-HR, EC-Earth3-Veg-LR, GISS-E2-1-G, BCC-CSM2-HR, HiRAM-SIT-HR, NorESM1-F, NorESM2-LM, ECMWF-IFS-MR, CAS-ESM2... | {Replicated CMIP6-era datasets catalogued by NCI} | {land, ocean, aerosol, landIce, atmosChem, atmos, seaIce, ocnBgchem} | {6hr, 1yr, subhr, fx, 3hr, 1day, 1hr, 1mon} | {fNleach, wsgmax10m, vo, intuaw, siv, bldep, sfcWind, prsn, raLut, pastureFracC3, ph, rlutcs, nLand, hurs, sitemptop, nppLut, siflfwbot, lossch4, sidmasstrany, hfrainds, vegFrac, sftof, hfbasin, a... |
| cordex_ig45 | {CNRM-CM6-1-HR, ERA5, MRI-ESM2-0, ACCESS-ESM1-5, CMCC-ESM2, ACCESS-CM2, GISS-E2-1-G, EC-Earth3, MPI-ESM1-2-LR, NorESM2-MM, FGOALS-g3, GFDL-ESM4} | {20km regional projections for CORDEX-CMIP6 from the Queensland Future Climate Science Program} | {none} | {1day, 1hr, 1mon, fx} | {zg250, ua925, va400, tasmin, rsds, snd, soilt, snm, sfcWind, mrro, prsn, rsus, va200, mrso, cll, hurs, prhmax, zg400, ta500, rlus, pr, zg700, va700, ua1000, va850, prw, ta400, clivi, ta200, vas, ... |
| era5_rt52 | {era5-preliminary, era5, era5-derived, era5-1, era5t} | {ERA5 fifth generation model reanalysis of global climate from ECMWF} | {none} | {1day, 1hr, 1mon} | {smlt, vipie, mbld, viked, cc, vo, cin, tcwv, viman, msqs, vitoe, tvh, bfi, vigd, mntss, vipile, mlspr, Wind, vimat, mvimd, ltlt, mer, vit, vithed, 100u, tsr, u, blh, vitoed, cvl, dwi, cp, ssr, t,... |
| esmvaltool-obs-ct11 | {ESACCI-SOILMOISTURE, GPCP-SG, CMAP, GPCC, GLODAP, CERES-EBAF, OSI-450-sh, ESACCI-OZONE, JRA-55, GHCN, ESACCI-LST, Duveiller2018, Kadow2020, NOAAGlobalTemp, SSMI-MERIS, MODIS-Level, ESACCI-CLOUD, ... | {Replicated observational datasets for ESMValTool CT11} | {land, landIce, ocean, aerosol, atmos, none} | {1day, 1yr, 1mon, fx} | {od870aer, tasmin, rsds, taNobs, abs550aer, wap, clw, thetao, husNobs, sfcWind, prsn, ph, rsdscs, ta, rsus, cltStddev, albisccp, areacello, o2, taStderr, sic, clmcalipso, prStderr, rlutcs, hus, hu... |
| narclim2_zz63 | {UKESM1-0-LL, ACCESS-ESM1-5, NorESM2-MM, EC-Earth3-Veg, MPI-ESM1-2-HR} | {NARCliM2.0 climate pojections, downscaled from ACCESS-ESM1-5 over Australasia at ~18km resolution.} | {atmos} | {1yr, fx, 3hr, 1day, 1hr, 1mon} | {zg250, TX90p, tasmin, rsds, CWD, snd, hus70, snm, HWA, ta70, wa700, sfcWind, mrro, prsn, rsdscs, rsus, WSDI, tsl, SPI03, mrso, SPI12, rlutcs, wa200, hurs, prhmax, CAPEmax, wa400, zg400, TN90p, ta... |
| panant-0025-zstar-ACCESSyr2 | {MOM6, SIS2} | {0.025 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {ocean, seaIce} | {1day, 1mon, fx} | {precip, wfo, dyCv, xTe, vo, rhopot0, geolat, thetao, wet_u, wet_c, average_DT, xq, yq, xB, areacello, agessc, yTe, areacello_cu, salt_flux, lrunoff, yh, z_l, nv, Coriolis, average_T1, geolon_u, h... |
| panant-005-zstar-ACCESSyr2 | {MOM6, SIS2} | {0.05 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {ocean, seaIce} | {1day, 1mon, fx} | {precip, wfo, dyCv, xTe, vo, rhopot0, geolat, thetao, wet_u, wet_c, average_DT, xq, yq, xB, areacello, agessc, yTe, areacello_cu, salt_flux, lrunoff, yh, z_l, nv, Coriolis, average_T1, geolon_u, h... |
| panant-01-hycom1-v13 | {MOM6, SIS2} | {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing with a hybrid (HYCOM1) vertical coordinate..} | {ocean, seaIce} | {1day, 1mon, fx} | {geolon, geolon_v, mlotst, wfo, geolon_u, hmo, hfds, rhopot2, dyCv, xTe, vo, so, geolat_v, dyCu, zos, geolat, areacello_cv, speed, thetao, wet_u, time, geolon_c, wet_c, average_DT, xq, umo, geolat... |
| panant-01-zstar-ACCESSyr2 | {MOM6, SIS2} | {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {ocean, seaIce} | {1day, 1mon, fx} | {precip, u_BT_accel, wfo, dyCv, xTe, vo, Kd_salt, rhopot0, geolat, thetao, intz_rvxu_2d, wet_u, gKEu, wet_c, average_DT, xq, yq, xB, areacello, agessc, yTe, intz_gKEv_2d, areacello_cu, salt_flux, ... |
| panant-01-zstar-v13 | {MOM6, SIS2} | {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {ocean, seaIce} | {1day, 1mon, fx} | {wfo, hmo, dyCv, xTe, vo, geolat, thetao, intz_rvxu_2d, wet_u, wet_c, average_DT, xq, yq, areacello, yTe, intz_gKEv_2d, areacello_cu, intz_CAu_2d, intz_diffv_2d, yh, z_l, nv, Coriolis, taux_bot, i... |
| rcm_ccam_hq89 | {ERA5, CNRM-ESM2-1, ACCESS-ESM1-5, CMCC-ESM2, ACCESS-CM2, EC-Earth3, NorESM2-MM, CESM2} | {CMIP6 Regional Climate Model Data from CCAM for Australian Climate Service} | {none} | {6hr, fx, 1day, 1hr, 1mon} | {zg250, ua925, va400, tasmin, rsds, snd, ua150m, wsgsmax, snm, wa700, sfcWind, mrro, prsn, rsus, tsl, va200, mrso, cll, wa200, hurs, prhmax, va200m, wa400, zg400, ta500, rlus, va250m, wa250, pr, v... |
| shackleton_v4_jk72 | {ROMSIceShelf} | {Shackleton/Denman Ice Shelf-ocean model application built with ROMSIceShelf} | {seaIce} | {5day} | {Zos, M3nudg, Hsbl, ocean_time, nAVG, theta_s, lat_u, y_v, lon_v, h, Akv_bak, svstr, u, el, dtfast, LnudgeM3CLM, zeta, dt, mask_v, sustr, Lm3CLM, Tobc_out, Cs_w, LtracerSponge, dstart, x_v, Tb, M2... |
Each line in the table above references a directory full of netCDF files with model output.
The COSIMA cookbook philosophy is that you don’t need to know about the directories in which these files are stored to be able to interrogate them or to load the data.
However, with thousands of experiments in the datastore, the above table isn’t so easy to understand. Luckily, we can refine our search to limit the experiments we see. For example, if we already know the name of the experiment we are after, we can specify it via:
[6]:
catalog.search(name='025deg_jra55_ryf9091_gadi')
Intake dataframe catalog with 1 source(s) across 4 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| 025deg_jra55_ryf9091_gadi | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} | {ocean, seaIce} | {1yr, 1mon, fx} | {shear_m, xt_ocean, total_ocean_evap, tarea, total_ocean_calving, temp_surface_ave, strtlty_m, ty_trans, snow_ai_m, TLON, st_edges_ocean, fcondtopn_ai_m, average_DT, salt_surface_ave, yt_ocean, ge... |
This is more useful, because it focusses just on the experiment I’m interested in – and provides a list of all the variables available that experiment. It also gives a short description which is a nice way to explore which experiments might be available.
However, we may notice that the list of variables in the right-most column here is too long for this format. There are other ways to get hold of a list of all of these variables, such as:
[7]:
variables = catalog.search(name='025deg_jra55_ryf9091_gadi').unique().variable
print(variables)
['shear_m', 'xt_ocean', 'total_ocean_evap', 'tarea', 'total_ocean_calving', 'temp_surface_ave', 'strtlty_m', 'ty_trans', 'snow_ai_m', 'TLON', 'st_edges_ocean', 'fcondtopn_ai_m', 'average_DT', 'salt_surface_ave', 'yt_ocean', 'geolon_t', 'uvel_m', 'divu_m', 'dzt', 'strcorx_m', 'total_ocean_pme_river', 'total_ocean_calving_melt_heat', 'st_ocean', 'vvel_m', 'xu_ocean', 'u', 'fsurfn_ai_m', 'Tair_m', 'frazil_m', 'total_ocean_runoff', 'albsni_m', 'rain_ai_m', 'flatn_ai_m', 'total_ocean_river_heat', 'ty_trans_int_z', 'fmelttn_ai_m', 'total_ocean_heat', 'alidr_ai_m', 'nv', 'total_ocean_salt', 'strintx_m', 'hs_m', 'strairy_m', 'average_T1', 'grid_xt_ocean', 'sea_levelsq', 'sw_edges_ocean', 'time_bounds', 'fsens_ai_m', 'snoice_m', 'ANGLET', 'evap_ai_m', 'kmt', 'sfc_salt_flux_ice', 'scalar_axis', 'flat_ai_m', 'pot_temp', 'ke_tot', 'salt', 'age_global', 'sfc_salt_flux_coupler', 'trsig_m', 'v', 'geolat_c', 'total_ocean_lw_heat', 'fresh_ai_m', 'fswthru_ai_m', 'fhocn_ai_m', 'NCAT', 'frazil_3d_int_z', 'total_ocean_swflx', 'diff_cbt_t', 'dyt', 'mlt_onset_m', 'eta_t', 'mld', 'total_ocean_melt', 'total_ocean_fprec', 'HTE', 'aicen_m', 'fsalt_ai_m', 'daidtd_m', 'potrho_edges', 'fswabs_ai_m', 'frz_onset_m', 'dyu', 'hu', 'frzmlt_m', 'uarea', 'total_ocean_hflux_coupler', 'uocn_m', 'strairx_m', 'total_ocean_evap_heat', 'albice_m', 'alidf_ai_m', 'potrho', 'total_ocean_calving_heat', 'HTN', 'alvdf_ai_m', 'uatm_m', 'dvidtt_m', 'sea_level', 'flwdn_m', 'dxu', 'geolat_t', 'time', 'hi_m', 'pe_tot', 'total_ocean_hflux_evap', 'area_u', 'dxt', 'blkmask', 'strtltx_m', 'strinty_m', 'meltl_m', 'total_ocean_runoff_heat', 'eta_global', 'average_T2', 'meltb_m', 'yu_ocean', 'vatm_m', 'Tsfc_m', 'total_ocean_sens_heat', 'total_ocean_sfc_salt_flux_coupler', 'pot_rho_0', 'ULAT', 'sst_m', 'total_ocean_fprec_melt_heat', 'meltt_m', 'ht', 'strength_m', 'melts_m', 'temp', 'wt', 'salt_global_ave', 'aice_m', 'ice_present_m', 'ty_trans_rho', 'strocnx_m', 'fswup_m', 'tx_trans', 'flwup_ai_m', 'sfc_salt_flux_restore', 'geolon_c', 'TLAT', 'total_ocean_hflux_prec', 'sss_m', 'net_sfc_heating', 'ANGLE', 'temp_global_ave', 'tmask', 'grid_yu_ocean', 'fswfac_m', 'fcondtop_ai_m', 'pme_river', 'albsno_m', 'fswdn_m', 'rhoave', 'strocny_m', 'vocn_m', 'drag_coeff', 'total_ocean_river', 'congel_m', 'total_ocean_lprec', 'daidtt_m', 'total_ocean_swflx_vis', 'sice_m', 'strcory_m', 'alvdr_ai_m', 'sw_ocean', 'area_t', 'vicen_m', 'tx_trans_int_z', 'kmu', 'dvidtd_m', 'ULON']
See the `ACCESS-NRI_Intake_Catalog <https://cosima-recipes.readthedocs.io/en/latest/01-Cooking-Tutorials/01-Basics/02-ACCESS-NRI_Intake_Catalog.html>`__ for additional methods.
1.3 Loading data from an experiment¶
Python has many ways of reading data from a netCDF file… so we thought we would add another way. This is done via the .to_dask() function, which is the most commonly used function in the Cookbook. This function takes the output from a catalog.search() query to find a specific variable, and loads the files you need to create that variable.
Let’s take now a little while to get to know how to load output. Most times, we need just three arguments: experiment, variable, and (in most cases) the frequency of the variable.
[8]:
experiment = '025deg_jra55_ryf9091_gadi'
variable = 'temp_global_ave'
ds = catalog[experiment].search(variable=variable).to_dask(xarray_open_kwargs = dict(use_cftime=True))
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.09/lib/python3.11/site-packages/intake_esm/core.py:321: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
records = grouped.get_group(internal_key).to_dict(orient='records')
The above command returns an xarray dataset ds.
Note 1: it is possible to load several variables at once in this fashion and thus get a dataset with many variables (variable=[variable_1, variable_2])
Note 2: the xarray_open_kwargs = dict(use_cftime=True) argument is only needed to suppress warnings for experiments which go outside the range of “normal” dates used by np.datetime
It’s often easier to work with an xarray dataarray instead of a dataset. In that case, we can extract the dataarray that corresponds to the variable of our choice via:
[9]:
ds['temp_global_ave']
[9]:
<xarray.DataArray 'temp_global_ave' (time: 7800, scalar_axis: 1)> Size: 62kB
dask.array<concatenate, shape=(7800, 1), dtype=float64, chunksize=(1, 1), chunktype=numpy.ndarray>
Coordinates:
* scalar_axis (scalar_axis) float64 8B 0.0
* time (time) object 62kB 1900-01-16 12:00:00 ... 2549-12-16 12:00:00
Attributes:
long_name: Global mean temp in liquid seawater
units: deg_C
valid_range: [ -10. 1000.]
cell_methods: time: mean
time_avg_info: average_T1,average_T2,average_DT
standard_name: sea_water_potential_temperatureWe can see that this operation loaded the globally averaged potential temperature from the model output. The time axis runs from year 1900 to year 2459. For some variables (particularly 3D variables that might use a loooot of memory), we may prefer to restrict ourselves to a smaller time window:
[10]:
ds['temp_global_ave'].sel(time=slice('2000-01-01', '2050-12-31'))
[10]:
<xarray.DataArray 'temp_global_ave' (time: 612, scalar_axis: 1)> Size: 5kB
dask.array<getitem, shape=(612, 1), dtype=float64, chunksize=(1, 1), chunktype=numpy.ndarray>
Coordinates:
* scalar_axis (scalar_axis) float64 8B 0.0
* time (time) object 5kB 2000-01-16 12:00:00 ... 2050-12-16 12:00:00
Attributes:
long_name: Global mean temp in liquid seawater
units: deg_C
valid_range: [ -10. 1000.]
cell_methods: time: mean
time_avg_info: average_T1,average_T2,average_DT
standard_name: sea_water_potential_temperature1.4 Exercises¶
OK, this is a tutorial, so now you have to do some work. Your tasks are to:
Find and load sea surface height (ssh) from an experiment (perhaps choose a 1° configuration for starters).
[ ]:
Load potential temperature from an experiment (again, 1° would be quickest). Can you chunk the data differently from the default?
[ ]:
2. How to manipulate and plot variables with xarray¶
We use the python package xarray (which is built on dask, pandas, matplotlib and numpy) for many of our diagnostics. xarray has a a lot of nice features, some of which we will try to demonstrate for you.
2.1 Plotting¶
xarray’s .plot() method does its best to figure out what you are trying to plot, and plotting it for you. Let’s start by loading a 1-dimensional variable and plotting.
[11]:
experiment = '025deg_jra55_ryf9091_gadi'
variable = 'temp_global_ave'
ds = catalog[experiment].search(variable=variable).to_dask(xarray_open_kwargs = dict(use_cftime=True))
ds[variable].plot()
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.09/lib/python3.11/site-packages/intake_esm/core.py:321: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
records = grouped.get_group(internal_key).to_dict(orient='records')
[11]:
[<matplotlib.lines.Line2D at 0x153049aacb90>]
You can see that xarray has used the metada in its plot, correctly labeing the x-axis which time and that the y-axis is temp_global_ave. You can always modify aspects of your plot if you are unhappy with the default xarray behaviour:
[12]:
plt.figure(figsize=(10, 5))
ds[variable].plot()
plt.xlabel('Year')
plt.ylabel('Temperature (°C)')
plt.title('Globally Averaged Temperature');
Because xarray knows about dimensions, it has plotting routines which can figure out what it should plot. By way of example, let’s load a single time slice of surface_temp and see how .plot() handles it:
[13]:
experiment = '01deg_jra55v13_ryf9091'
variable = 'surface_temp'
ds = catalog[experiment].search(variable=variable, frequency='1mon').to_dask()
temp = ds[variable].isel(time=-1).load()
temp.plot()
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.09/lib/python3.11/site-packages/intake_esm/core.py:321: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
records = grouped.get_group(internal_key).to_dict(orient='records')
[13]:
<matplotlib.collections.QuadMesh at 0x15302c31d5d0>
A few things you might notice here. Firstly, we didn’t need to pass any xarray_open_kwargs in the .to_dask() function - because this experiment has a smaller date range (1900-2179). Second, we needed to specify the frequency - this is because this field is saved at both daily and monthly frequency, and they need dismabiguation. Also, even though this is an experiment at a 0.1° horizontal resolution for 280 years – we can still load ds, because it’s lazily loading (that is, it
only loads the metadata). But before we plot, we need to select a single time level to ensure we don’t run out of memory!
Again, we can customise this plot as we see fit:
[14]:
temp_C = temp - 273.15 # convert from Kelvin to Celsius
temp_C.plot.contourf(levels=np.arange(-2, 32, 2), cmap=cm.cm.thermal)
plt.ylabel('latitude')
plt.xlabel('longitude')
plt.title('Surface Temperature')
[14]:
Text(0.5, 1.0, 'Surface Temperature')
2.2 Slicing and dicing¶
There are two different ways of subselecting from a DataArray: isel and sel. The first of these two is selecting by index (the i stands for index). This means we specify the value of the index of the array. For the latter, we can specify the value of the coordinate we want to select.
These two methods are demonstrated in the following example:
[15]:
experiment = '025deg_jra55_ryf9091_gadi'
variable = 'pot_rho_0' # potential density referenced to the surface
ds = catalog[experiment].search(variable=variable, frequency='1yr').to_dask(xarray_open_kwargs=dict(use_cftime=True))
ds
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.09/lib/python3.11/site-packages/intake_esm/core.py:321: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
records = grouped.get_group(internal_key).to_dict(orient='records')
[15]:
<xarray.Dataset> Size: 123GB
Dimensions: (time: 396, st_ocean: 50, yt_ocean: 1080, xt_ocean: 1440)
Coordinates:
* xt_ocean (xt_ocean) float64 12kB -279.9 -279.6 -279.4 ... 79.62 79.88
* yt_ocean (yt_ocean) float64 9kB -81.08 -80.97 -80.87 ... 89.74 89.84 89.95
* st_ocean (st_ocean) float64 400B 1.152 3.649 6.565 ... 5.034e+03 5.254e+03
* time (time) object 3kB 1904-07-02 12:00:00 ... 2299-07-02 12:00:00
Data variables:
pot_rho_0 (time, st_ocean, yt_ocean, xt_ocean) float32 123GB dask.array<chunksize=(1, 10, 216, 288), meta=np.ndarray>
Attributes: (12/16)
filename: ocean.nc
title: ACCESS-OM2-025
grid_type: mosaic
grid_tile: 1
intake_esm_vars: ['pot_rho_0']
intake_esm_attrs:filename: ocean.nc
... ...
intake_esm_attrs:variable_standard_name: sea_water_age_since_surface_con...
intake_esm_attrs:variable_cell_methods: time: mean,,,,time: mean,,,,tim...
intake_esm_attrs:variable_units: yr,days,days since 1900-01-01 0...
intake_esm_attrs:realm: ocean
intake_esm_attrs:_data_format_: netcdf
intake_esm_dataset_key: ocean.1yr.grid_xt_ocean:1440.gr...In the above example, a 600-year dataset is loaded. You can see that potential density is a four dimensional dataset, with time, latitude, longitude and depth coordinates. The depth coordinate is called st_ocean.
We will use isel to select the 201st year (time index of 200) and then we can plot a certain depth level, like 1000, using .sel. Note that we add a method='nearest', because .sel requires the exact value - specifying the method allows us to select the level that is closest to 1000.
[16]:
rho = ds[variable].isel(time=200).sel(st_ocean=1000, method='nearest')
rho.plot(vmin=1026, vmax=1028)
[16]:
<matplotlib.collections.QuadMesh at 0x15304803d0d0>
In addition, both .sel and .isel methods allow us to slice a range of values:
[17]:
rho = ds[variable].isel(time=200).sel(st_ocean=1000, method='nearest').sel(xt_ocean=slice(-230, -180),
yt_ocean=slice(-50, -20))
rho.plot(vmin=1027, vmax=1027.5)
[17]:
<matplotlib.collections.QuadMesh at 0x153050999850>
Above, we have sliced out a small region of interest for our plot.
2.3 Averaging along dimensions¶
We often perform operations such as averaging on dataarrays. Again, knowledge of the coordinates can be a big help here, as you can instruct the mean() method to operate along given coordinates. The case below takes a temporal and zonal average of potential density.
IMPORTANT¶
To be precise, it is actually a numerical mean (in this case in the \(i\)-grid direction), which (a) doesn’t account for the size of grid-cells and (b) is only zonal outside the tripolar region in the Arctic, i.e., south of 65N in the ACCESS-OM2 models.
Issue (a) is not a problem for this particular case because the zonal length of cells is the same everywhere. However if you want to calculate a mean in the meridional dimension, or in depth, grid sizes are variable and you will need use these sizes as weights.
To address (b) and compute the zonal mean correctly one needs to be a bit more careful; see `02-Easy-Recipes/True_Zonal_Mean.ipynb <https://cosima-recipes.readthedocs.io/en/latest/02-Easy-Recipes/True_Zonal_Mean.html>`__.
[20]:
experiment = '1deg_jra55_iaf_omip2_cycle6'
variable = 'temp'
ds = catalog[experiment].search(variable=variable, frequency='1mon').to_dask(xarray_open_kwargs = dict(use_cftime=True))
ds[variable].mean(['time', 'xt_ocean']).plot(cmap=cm.cm.thermal)
plt.gca().invert_yaxis()
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.09/lib/python3.11/site-packages/intake_esm/core.py:321: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
records = grouped.get_group(internal_key).to_dict(orient='records')
2.4 Resampling¶
xarray uses datetime conventions to allow for operations such as resampling in time. This resampling is simple and powerful. Here is an example of re-plotting a monthly timeseries with annual averaging:
[21]:
experiment = '1deg_jra55_iaf_omip2_cycle6'
variable = 'temp_global_ave'
ds = catalog[experiment].search(variable=variable, frequency='1mon').to_dask(xarray_open_kwargs = dict(use_cftime=True))
ds[variable].plot(color='c', label='monthly')
meandata = ds[variable].resample(time='YE').mean(dim='time')
meandata.plot(color='r', label='annual average')
plt.legend()
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.09/lib/python3.11/site-packages/intake_esm/core.py:321: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
records = grouped.get_group(internal_key).to_dict(orient='records')
[21]:
<matplotlib.legend.Legend at 0x15304ecb2910>
2.5 Exercises¶
Pick an experiment and plot a map of the temperature of the upper 100m of the ocean for one year.
[ ]:
Now, take the same experiment and construct a timeseries of spatially averaged (regional or global) upper 700m temperature, resampled every 3 years.
[ ]:
[22]:
client.close()