Quickstart tutorial#
The basic functionality of the catalog is demonstrated in this tutorial. If you haven’t already read the What is it section, you may find it helpful to do so before progressing with this tutorial. You can download the Jupyter notebook rendered below from here and run it yourself in an NCI ARE instance.
Contents:#
import warnings
warnings.filterwarnings("ignore") # Suppress warnings for these docs
Import the catalog#
We’ll start by importing the catalog and getting a feel for what it contains.
import intake
catalog = intake.cat.access_nri
Optionally, you can add a version keyword argument to access a particular version of the catalog:
catalog = intake.cat.access_nri(version="v2024-11-01")
Catalogs are versioned with the date of their creation, i.e., vYYYY-MM-DD.
With that, we can now use catalog to search and load ~3 PB of data without having to know where the data is or how it’s structured.
The catalog includes a wide variety of climate data products. The “name” column gives the name of the data product and the other columns provide additional metadata associated with each product. As we’ll demonstrate below, you can search on metadata in these columns to filter for data products that may be of interest to you. Scroll through the products below and get an idea for what each product is by looking at the entry in the description column.
Warning#
It is possible to load the catalog and see data products that you do not have the correct storage flags enabled for. For example, you might not have added gdata/av17 to your storage flags, but attempt to load some data stored in this location.
In such instances, you are likely to get an ESMDataSourceError when you try to load the data. For further info, see the Debugging section at the end of this notebook.
catalog
access_nri catalog with 121 source(s) across 2982 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)} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, alidr_ai_m, ULAT, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_heat, temp_rivermix_on_... |
| 01deg_jra55_ryf_ENFull | {ACCESS-OM2} | {0.1° ACCESS-OM2 El Níño run for the simulations performed in Huguenin et al. (2024, GRL)} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, ULAT, alidr_ai_m, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_heat, sst_m, salt_surfa... |
| 01deg_jra55_ryf_LNFull | {ACCESS-OM2} | {0.1° ACCESS-OM2 La Níña run for the simulations performed in Huguenin et al. (2024, GRL)} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_heat, sst_m, wt, salt_s... |
| 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)} | {seaIce, ocean} | {3mon, fx, 3hr, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, xt_ocean_sub01, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, xu_ocean_sub01, bih_fric_u, temp, v, pe_tot, ... |
| 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%.} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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%.} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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%.} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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%.} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_hea... |
| 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} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_hea... |
| 01deg_jra55v13_ryf9091_weddell_down2 | {ACCESS-OM2-01} | {Weddell Sea decreased meltwater perturbation experiment, branched off 01deg_jra55v13_ryf9091. } | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, ULAT, alidr_ai_m, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 01deg_jra55v13_ryf9091_weddell_up1 | {ACCESS-OM2-01} | {Weddell Sea increased meltwater perturbation experiment, branched off 01deg_jra55v13_ryf9091. } | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, vatm_m, sw_edges_ocean, mld, pot_rho_2, aicen, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, hs, daidtt_m, fsalt_m, dzt, 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} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, alidr_ai_m, ULAT, surface_pot_temp_min, total_ocean_sens_heat, runoff, vatm_m, sw_edges_ocean, mld, pot_rho_2, aicen, kmu, wfimelt, bih_fric_u, fsurf_ai, temp, v, pe_to... |
| 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} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, alidr_ai_m, surface_pot_temp_min, total_ocean_sens_heat, ULAT, runoff, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, fsurf_ai, temp, v, pe_tot, hs, grid_xu_ocea... |
| 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} | {seaIce, ocean} | {fx, 3hr, 6hr, 1mon, 1day} | {ULAT, aicen, temp, surface_adic, fswup, fsurf_ai_m, meltt, no3_int100, hs_m, diff_cbt_t, river, bmf_u, surface_det, temp_xflux_adv, meltl_m, det_yflux_adv, aice, pme_river, eta_global, surface_di... |
| 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} | {seaIce, ocean} | {fx, 1mon, 1day, subhr} | {ULAT, temp, surface_adic, fsurf_ai_m, meltt, no3_int100, hs_m, river, diff_cbt_t, bmf_u, surface_det, temp_xflux_adv, meltl_m, det_yflux_adv, aice, pme_river, eta_global, surface_dic, total_ocean... |
| 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} | {seaIce, ocean} | {fx, 1day, 1mon} | {mld_max, ULAT, runoff, mld, pot_rho_2, kmu, wfimelt, temp, v, dzt, evap, potrho_edges, surface_pot_temp, st_ocean, river, diff_cbt_t, bmf_u, sfc_hflux_pme, ty_trans_nrho_submeso, aice, time, neut... |
| 025deg_era5_iaf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1980-2021)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, alidr_ai_m, ULAT, surface_pot_temp_min, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx... |
| 025deg_era5_ryf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, surface_pot_temp_min, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 025deg_jra55_iaf_era5comparison | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with JRA55-do v1.5.0\ninterannual forcing (1980-2019)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, surface_pot_temp_min, total_ocean_sens_heat, runoff, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, temp, v, pe_tot,... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1mon} | {congel_m, vvel_m, alidr_ai_m, ULAT, total_ocean_sens_heat, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, strintx_m, temp, v, pe_tot, fcondtop_ai_m, daidtt_m, dzt, total_ocean_heat, sst_m, salt_s... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, total_ocean_sens_heat, surface_pot_temp_min, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx... |
| 1deg_era5_iaf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1960-2019)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, total_ocean_sens_heat, surface_pot_temp_min, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 1deg_era5_ryf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, surface_pot_temp_min, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, t... |
| 1deg_jra55_iaf_era5comparison | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0\ninterannual forcing (1960-2019)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, surface_pot_temp_min, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, pot_rho_2, sfc_hflux_from_water_evap, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, pot_rho_2, sfc_hflux_from_water_evap, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {mld_max, ULAT, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, pot_rho_2, sfc_hflux_from_water_evap, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {mld_max, ULAT, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {1mon, 1yr, 1day} | {congel_m, vvel_m, alidr_ai_m, ULAT, vatm_m, mld, dic, strintx_m, temp, fe, hs, fcondtop_ai_m, daidtt_m, total_mass_seawater, fsalt_m, salt_surface_ave, zoo, hs_m, strength_m, aicen_m, st_ocean, f... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr} | {congel_m, vvel_m, alidr_ai_m, ULAT, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, temp_xflux_ndiffuse, mld, kmu, strintx_m, temp, v, pe_tot, temp_yflux_submeso, grid_xu_ocea... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, alidr_ai_m, surface_pot_temp_min, ULAT, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, t... |
| AUS2200 | {AUS2200} | {"AUS2200 AMIP simulations collection. Each simulation is a limited area model study of the entire Australian continent at 2.2 km resolution, using the UM atmospheric model. The simulations cover ... | {land, atmos} | {subhr, fx, 3hr, 1hr, 6hr} | {pralsns, cllow, rsds, uas, mrsol, zg, rsdsdiff, wa, wsgmax10m, reflmax, rsut, cli, hfss, rainmxrat, clw, va, cl, tke, tas, hfls, grplmxrat, estot, eow, rss, rsdsdir, vas, hus, clmxro, pfull, mrso... |
| 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} | {seaIce, ocean, atmos} | {1yr, 3hr, 6hr, 1mon, 1day} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s03i897, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, aicen, fld_s30i403, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i46... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1day, 1yr} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s03i897, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, fld_s30i403, aicen, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i46... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1yr, 1day} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s03i897, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, fld_s30i403, aicen, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i46... |
| 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} | {seaIce, ocean, atmos} | {1yr, 3hr, 6hr, 1mon, 1day} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s03i897, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, aicen, fld_s30i403, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i46... |
| OM4_025.JRA_RYF | {MOM6, SIS2} | {0.25 degree GFDL-OM4 (MOM6+SIS2) global model configuration under 1990-1991 JRA55-do repeat year forcing.} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {heat_content_surfwater, volcello, masso, zos, wet_u, hfgeou, soga, LwLatSens, agessc, areacello_cv, hfsifrazil, thkcello, hflso, geolat_v, prsn, geolat, geolon, ficeberg, areacello_bu, dxCv, heat... |
| 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 } | {seaIce, ocean, atmos} | {1mon, 1day, 1yr} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, fld_s30i403, aicen, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i461, temp, tide... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1yr, 1day} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, fld_s30i403, aicen, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i461, temp, tide... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1day, 1yr} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, aicen, fld_s30i403, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i461, temp, tide... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1day, 1yr} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, aicen, fld_s30i403, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i461, temp, tide... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1day, 1yr} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, fld_s30i403, aicen, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i461, temp, tide... |
| 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} | {seaIce, ocean, atmos} | {1mon, 1day, 1yr} | {pon_raw, fld_s08i230, ULAT, fswdn, fld_s30i405, fld_s03i257, fld_s03i801, fld_s08i208, fld_s02i295, fld_s30i403, aicen, fld_s00i436, fld_s03i234, strocnx, potrho_mix_base, fld_s03i461, temp, tide... |
| WOA-13 | {World Ocean Atlas 2013} | {2013 World Ocean Atlas (WOA-13), regridded to various model grids.} | {ocean} | {fx} | {ZT, time, GRID_X_T, GRID_Y_T, practical_salinity, temp, salt, lat, potential_temperature, lon} |
| barpa_py18 | {BARPA-C, BARPA-R1-NN, BARPA-R} | {Bureau of Meteorology Atmospheric Regional Projections for Australia (BARPA)} | {none} | {subhr, fx, 3hr, 1hr, 6hr, 1mon, 1day} | {BWD03, evspsblpot, prc, ta1000, va70, ua900, ua500, hus20, va200, ua30, omega500, ta925, va750, zg950, ua20, rldscs, wa975, tasmean, rsut, ua50, ta100, ta600, wap100, wap300, ua800, rsutcs, zg50,... |
| bx944 | {ACCESS-CM2} | {Standard CMIP6 historical simulation, control experiment for by473 pacemaker experiment (948d8676-2c56-49db-8ea1-b80572b074c8)} | {seaIce, ocean, atmos} | {1mon, 1day} | {fld_s08i230, ULAT, fswdn, fld_s03i232, fld_s30i405, fld_s03i257, fld_s03i801, siflfwbot, fld_s08i208, fld_s30i403, aicen, siflsaltbot, fld_s00i436, salt_sigma_diff, fld_s03i234, fld_s34i119, temp... |
| by473 | {ACCESS-CM2} | {Pacemaker variation of CMIP6 historical simulation, Topical Atlantic region replaced with fixed SSTs from observations} | {seaIce, ocean, atmos} | {1mon, 1day} | {fld_s08i230, ULAT, fswdn, fld_s03i232, fld_s30i405, fld_s03i257, fld_s03i801, siflfwbot, fld_s08i208, aicen, fld_s30i403, siflsaltbot, fld_s00i436, salt_sigma_diff, fld_s03i234, fld_s34i119, temp... |
| by578 | {ACCESS-CM2} | {Pacemaker variation of CMIP6 ssp245 simulation with Tropical Atlantic region replaced with fixed SSTs from observations} | {seaIce, ocean, atmos} | {1mon, 1day} | {fld_s08i230, ULAT, fswdn, fld_s03i232, fld_s30i405, fld_s03i257, fld_s03i801, siflfwbot, fld_s08i208, fld_s30i403, aicen, siflsaltbot, fld_s00i436, salt_sigma_diff, fld_s03i234, fld_s34i119, temp... |
| by647 | {ACCESS-CM2} | {Standard CMIP6 ssp245 simulation, control experiment for by578 pacemaker experiment (1fd9e682-d393-4b17-a9cd-934c3a48a1f8)} | {seaIce, ocean, atmos} | {1mon, 1day} | {fld_s08i230, ULAT, fswdn, fld_s03i232, fld_s30i405, fld_s03i257, fld_s03i801, siflfwbot, fld_s08i208, aicen, fld_s30i403, siflsaltbot, fld_s00i436, salt_sigma_diff, fld_s03i234, fld_s34i119, temp... |
| bz687 | {ACCESS-CM2} | {ACCESS-CM2 CMIP6 with 1 degree ocean. Present day atmospheric forcing with 1985-2014 mean GHG, aerosol emissions etc.} | {seaIce, ocean, atmos} | {1mon, 1day} | {fld_s08i230, ULAT, fswdn, fld_s03i232, fld_s30i405, fld_s03i257, fld_s03i801, siflfwbot, fld_s08i208, aicen, fld_s30i403, siflsaltbot, fld_s00i436, salt_sigma_diff, fld_s03i234, fld_s34i119, temp... |
| 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.} | {seaIce, ocean, atmos} | {fx, 1day, 1mon} | {fld_s08i230, ULAT, fswdn, fld_s03i232, fld_s30i405, fld_s03i257, fld_s03i801, siflfwbot, fld_s08i208, aicen, fld_s30i403, siflsaltbot, fld_s00i436, fld_s03i234, fld_s34i119, temp_yflux_gm_int_z, ... |
| cmip-forcing-qv56 | {DCPP-C-amv-1-1, CCMI-hist-sol-1-1, CR-CMIP-0-3-0, NorESM1-M-rcp85-1-0, UoM-IMAGE-ssp126-1-2-1, PIK-vllo-0-1-0, NCAR-CCMI-ssp460-1-0, C3S-GTO-ECV-9-0, UCLA-1-0-1-constant, PIK-h-0-1-0, PIK-h-0-2-0... | {Earth System Grid (ESGF) Reference Datasets for Climate Model Analysis/Forcing} | {ocean, atmos, landIce, land, none, seaIce} | {1yr, fx, 3hr, 1hr, 1mon, 1day} | {CH3COCHOpercentagePEAT, C3H8percentageBORF, CO-em-openburning, C2H5OHsmoothed, C2H6smoothedpercentageTEMF, cttisccpunweighted, mole-fraction-of-halon1301-in-air, mole-fraction-of-hfc365mfc-in-air... |
| cmip5_al33 | {NorESM1-ME, MRI-AGCM3-2H, FGOALS-gl, CanCM4, MRI-CGCM3, CNRM-CM5-2, CESM1-FASTCHEM, bcc-csm1-1-m, ALADIN63, RACMO21P, IPSL-CM5A-LR, CCLM4-8-17-CLM3-5, HIRHAM5, GFDL-CM3, EC-EARTH, BNU-ESM, WRF341... | {Replicated CMIP5-era datasets catalogued by NCI} | {ocean, atmos, landIce, ocnBgchem, land, none, seaIce, aerosol} | {1yr, subhr, fx, 3hr, 6hr, 1mon, 1day} | {fbddtdic, gridspec, volcello, basin, tossq, grCongel, ccb, rhsmax, rsut, tnscliricl, strocnx, ialb, hfsifrazil, reffclwtop, rsutcs, reffclws, rld, strairx, prcprof, tnsclwbfpcli, mc, va850, sit, ... |
| cmip5_rr3 | {ACCESS1-3, CSIRO-CCAM-2008, UQ-DES-CCAM, UNSW-WRF360J, ACCESS1-0, CSIRO-Mk3L-1-2, UNSW-WRF360L, CSIRO-CCAM-1704, BOM-SDMa-NRM, CSIRO-Mk3-6-0, UNSW-WRF360K, CSIRO-CCAM} | {Australian CMIP5-era datasets catalogued by NCI} | {ocean, atmos, landIce, land, none, seaIce, aerosol} | {3mon, fx, 3hr, 1hr, 6hr, 1mon, 1day} | {evspsblpot, prc, zostoga, ua500, gridspec, va200, dryso2, msftmyzba, mlotstsq, tauucorr, volcello, basin, tossq, masso, rhs, emibb, zos, rldscs, hfgeou, rsut, agessc, vsi, soga, rhsmax, hfydiff, ... |
| cmip6_fs38 | {ACCESS-OM2, ACCESS-OM2-025, ACCESS-ESM1-5, ACCESS-CM2} | {Australian CMIP6-era datasets catalogued by NCI} | {ocean, atmos, landIce, ocnBgchem, land, seaIce, aerosol} | {1yr, fx, 3hr, 6hr, 1mon, 1day} | {fDeforestToProduct, siflfwbot, volcello, sivol, basin, tossq, fNloss, nProduct, rsut, hfsifrazil, rsutcs, siflsensupbot, fNnetmin, siareas, sitemptop, sidmassth, mc, sidmassgrowthwat, siflcondbot... |
| cmip6_oi10 | {MRI-ESM2-0, CMCC-ESM2, IPSL-CM5A2-INCA, ECMWF-IFS-LR, MIROC-ES2H, HadGEM3-GC31-HM, EC-Earth3-CC, KACE-1-0-G, ACCESS-OM2, IPSL-CM6A-ATM-HR, CMCC-CM2-VHR4, EC-Earth3-AerChem, HadGEM3-GC31-MM, CIESM... | {Replicated CMIP6-era datasets catalogued by NCI} | {ocean, atmos, landIce, ocnBgchem, land, atmosChem, seaIce, aerosol} | {1yr, subhr, fx, 3hr, 1hr, 6hr, 1mon, 1day} | {cOther, fDeforestToProduct, siflfwbot, volcello, sivol, basin, fNloss, tossq, ccb, raLut, rsut, nProduct, rsutcs, fNnetmin, siareas, sitemptop, sidmassth, pastureFrac, hfx, sidmassgrowthwat, sima... |
| cordex_ig45 | {NorESM2-MM, MRI-ESM2-0, GFDL-ESM4, EC-Earth3, CMCC-ESM2, FGOALS-g3, GISS-E2-1-G, ERA5, ACCESS-ESM1-5, ACCESS-CM2, CNRM-CM6-1-HR, MPI-ESM1-2-LR} | {20km regional projections for CORDEX-CMIP6 from the Queensland Future Climate Science Program} | {none} | {fx, 1day, 1mon, 1hr} | {evspsblpot, prc, ta1000, ua500, va200, ta925, rsut, ta600, soilt, zg700, ps, prsn, hus1000, vas, va850, prw, hus925, ta300, mrso, ta400, mrros, orog, psl, zmla, ua250, snw, sfcWindmax, ta500, zg9... |
| era5_rt52 | {era5-1, era5, era5t, era5-preliminary, era5-derived} | {ERA5 fifth generation model reanalysis of global climate from ECMWF} | {none} | {1mon, 1day, 1hr} | {acwh, mlspf, cc, csf, mn2t, tcslw, istl2, tclw, vigd, mmtss, sc, lssfr, kx, dwi, wsk, fal, tcc, tcw, sro, 10fg, pev, magss, phioc, dndza, strc, lai-lv, ishf, bui, swvl4, Rainf, sshf, lmlt, cvl, m... |
| esmvaltool-obs-ct11 | {HadISST, GLODAP, ESACCI-LANDCOVER, TCOM-N2O, AIRS-2-1, NCEP, CowtanWay, ISCCP-FH, NCEP-DOE-R2, Scripps-CO2-KUM, HadCRUT5, GISTEMP, GHCN-CAMS, PHC, ESACCI-AEROSOL, HadCRUT4, BerkeleyEarth, GCP2018... | {Replicated observational datasets for ESMValTool CT11} | {ocean, atmos, landIce, land, none, aerosol} | {fx, 1mon, 1yr, 1day} | {evspsblpot, burntArea, hurNobs, taStderr, od870aerStderr, rldscs, tasa, rsut, prStderr, rsutcs, ps, smStderr, prsn, baresoilFrac, vas, prw, clcalipso, prwErr, sm, pctisccp, tro3profStderr, fgco2,... |
| narclim2_zz63 | {UKESM1-0-LL, NorESM2-MM, EC-Earth3-Veg, MPI-ESM1-2-HR, ACCESS-ESM1-5} | {NARCliM2.0 climate pojections, downscaled from ACCESS-ESM1-5 over Australasia at ~18km resolution.} | {atmos} | {1yr, fx, 3hr, 1hr, 1mon, 1day} | {evspsblpot, prc, ta1000, TN10p, DTR, ta925, rldscs, rsut, TXgt50p, ta100, ta600, FFDI, rsutcs, CWD, zg700, ps, hus1000, prsn, wa1000, vas, prw, hus925, ta300, wa300, mrso, tasminAdjust, wa250, HD... |
| panant-0025-zstar-ACCESSyr2 | {MOM6, SIS2} | {0.025 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {seaIce, ocean} | {fx, 1mon, 1day} | {volcello, zos, wet_u, agessc, areacello_cv, geolat_v, geolat, geolon, FA_X, areacello_bu, dxCv, wfo, rho2_l, time, geolat_u, siconc, uo, wet_c, dyt, xh, wet_v, lrunoff, areacello, dxt, xTe, salt_... |
| panant-005-zstar-ACCESSyr2 | {MOM6, SIS2} | {0.05 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {seaIce, ocean} | {fx, 1mon, 1day} | {volcello, zos, wet_u, agessc, areacello_cv, geolat_v, geolat, geolon, FA_X, areacello_bu, dxCv, wfo, rho2_l, time, geolat_u, siconc, uo, wet_c, dyt, xh, wet_v, lrunoff, areacello, dxt, xTe, salt_... |
| 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..} | {seaIce, ocean} | {fx, 1mon, 1day} | {rho2_l, yTe, time, mlotst, vmo, geolon_v, siconc, geolat_u, uo, so, wet_c, yq, umo, average_T1, wet, volcello, dyt, sob, zos, xh, wet_u, wet_v, nv, thetao, areacello_cv, average_DT, areacello, si... |
| panant-01-zstar-ACCESSyr2 | {MOM6, SIS2} | {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {seaIce, ocean} | {fx, 1mon, 1day} | {intz_u_BT_accel_2d, volcello, IX_TRANS, taux, zos, wet_u, areacello_cv, agessc, intz_CAu_2d, Kd_shear, intz_PFv_2d, dvdt, col_height, geolat_v, geolat, intz_gKEu_2d, geolon, areacello_bu, dxCv, w... |
| panant-01-zstar-v13 | {MOM6, SIS2} | {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} | {seaIce, ocean} | {fx, 1day, 1mon} | {intz_u_BT_accel_2d, volcello, taux, zos, wet_u, areacello_cv, intz_CAu_2d, intz_PFv_2d, col_height, geolat_v, geolat, intz_gKEu_2d, geolon, speed, areacello_bu, dxCv, wfo, rho2_l, time, geolat_u,... |
| rcm_ccam_hq89 | {NorESM2-MM, EC-Earth3, CMCC-ESM2, CESM2, ERA5, ACCESS-ESM1-5, ACCESS-CM2, CNRM-ESM2-1} | {CMIP6 Regional Climate Model Data from CCAM for Australian Climate Service} | {none} | {fx, 1hr, 6hr, 1mon, 1day} | {evspsblpot, prc, ta1000, ua500, va200, ta925, rsut, ta600, zg700, ps, prsn, hus1000, wa1000, vas, prw, va850, ta300, hus925, wa300, va50m, mrso, wa250, ta400, va250m, wa600, mrros, siconca, orog,... |
| shackleton_v4_jk72 | {ROMSIceShelf} | {Shackleton/Denman Ice Shelf-ocean model application built with ROMSIceShelf} | {seaIce} | {5day} | {lon_v, theta_s, Zos, angle, Hsbl, LnudgeTCLM, AKt, temp, ntsAVG, v, lat_v, s_w, lon_u, x_v, xl, Tobc_in, nl_visc2, h, svstr, s_rho, x_u, LtracerSrc, mask_v, ocean_time, Znudg, Cs_w, x_psi, rdrg2,... |
Using the catalog#
Each entry (row) in the catalog describes a data product comprising many datasets spread across many files (a “dataset” here is a set of files that can be readily opened and combined for analysis using xarray - more on this later). For example, in a given ACCESS-CM2 product, there may be a dataset of ocean variables at monthly frequency, atmospheric variables at monthly frequency etc. Each entry in the catalog has a corresponding Intake-ESM datastore that can be used to filter for datasets of interest based on metadata in the datastore and then to open those datasets using xarray.
The general process for using the catalog is as follows:
Search the ACCESS-NRI catalog for data products that are of interest to you.
Open the Intake-ESM datastore(s) for the product(s) of interest.
Search the Intake-ESM datastore(s) for the datasets within each product that are of interest to you.
Open the datasets of interest as xarray Dataset(s).
Perform some analysis on the xarray Dataset(s).
This process is illustrated in the schematic below. Pink text indicates the methods used to perform each task.
Filtering the catalog#
Interactively searching#
To search the catalog interactively, you can use the .interactive property. This returns an interactive widget that lets you click through the datasets in the catalog to explore its contents.
Note
The interactive catalog viewer uses a JavaScript applet to render the interactive viewer, using your browser engine. This has three main limitations:
All filtering is done locally on your computer, not on Gadi. This means that if you try to filter a large catalog, you may experience significant lag. If you experience lag, we recommend trying to do as much filtering with the
.search()method explained below before using the interactive viewer again. In the example below, we have limited ourselves to the first ten experiments in the catalog for this reason.Some browsers may not render the interactive viewer properly. If you are having display issues, we recommend using a Chromium based broswer (Google Chrome or Microsoft Edge, for example).
The interactive explorer does not save your searches. It is designed purely to make it easier to discover which data you wish to search for with the
.search()method.
first_ten_expts = catalog.keys()[:10]
catalog_first_ten_expts = catalog.search(name=first_ten_expts)
catalog_first_ten_expts.interactive
| Loading ITables v2.5.2 from the internet... (need help?) |
We can search on the columns in the ACCESS-NRI catalog. For example, we could search for all products that use the model ACCESS-OM2. The search method returns another catalog object with entries that satisfy our search criteria.
catalog_filtered = catalog.search(model="ACCESS-OM2")
catalog_filtered
Intake dataframe catalog with 74 source(s) across 311 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| 01deg_jra55_ryf_ENFull | {ACCESS-OM2} | {0.1° ACCESS-OM2 El Níño run for the simulations performed in Huguenin et al. (2024, GRL)} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, alidr_ai_m, ULAT, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_heat, sst_m, wt, salt_s... |
| 01deg_jra55_ryf_LNFull | {ACCESS-OM2} | {0.1° ACCESS-OM2 La Níña run for the simulations performed in Huguenin et al. (2024, GRL)} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_heat, sst_m, wt, salt_s... |
| 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} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, ULAT, alidr_ai_m, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_hea... |
| 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} | {seaIce, ocean} | {fx, 1mon} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp, v, pe_tot, grid_xu_ocean, fsalt_m, dzt, total_ocean_hea... |
| 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} | {seaIce, ocean} | {fx, 1mon, 1day} | {mld_max, ULAT, runoff, mld, pot_rho_2, kmu, wfimelt, temp, v, dzt, evap, potrho_edges, surface_pot_temp, st_ocean, diff_cbt_t, river, bmf_u, sfc_hflux_pme, ty_trans_nrho_submeso, aice, time, neut... |
| 025deg_era5_iaf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1980-2021)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, alidr_ai_m, ULAT, total_ocean_sens_heat, surface_pot_temp_min, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx... |
| 025deg_era5_ryf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, surface_pot_temp_min, ULAT, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 025deg_jra55_iaf_era5comparison | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with JRA55-do v1.5.0\ninterannual forcing (1980-2019)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, ULAT, total_ocean_sens_heat, surface_pot_temp_min, runoff, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, temp, v, pe_tot,... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day} | {ULAT, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, fsurf_ai_m, neutral_gm_temp, diff_cbt_s, meltt, hs_m, diff_cbt_t, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffuse_diff_cbt_conv, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr} | {congel_m, vvel_m, alidr_ai_m, ULAT, total_ocean_sens_heat, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, strintx_m, temp, v, pe_tot, fcondtop_ai_m, daidtt_m, dzt, total_ocean_heat, sst_m, salt_s... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, ULAT, surface_pot_temp_min, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx... |
| 1deg_era5_iaf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1960-2019)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, total_ocean_sens_heat, surface_pot_temp_min, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 1deg_era5_ryf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, surface_pot_temp_min, runoff, vatm_m, temp_xflux_submeso_int_z, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, t... |
| 1deg_jra55_iaf_era5comparison | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0\ninterannual forcing (1960-2019)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, ULAT, surface_pot_temp_min, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {ULAT, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, surface_det, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdi... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, ULAT, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, dyt, salt_global_ave, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, time, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon, 1yr} | {mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, pot_rho_2, sfc_hflux_from_water_evap, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1day, 1mon} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day, 1yr} | {mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, pot_rho_2, sfc_hflux_from_water_evap, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {ULAT, aiso_lap, salt_sigma_diff, temp_yflux_gm_int_z, temp, salt_vdiffuse_k33, neutral_gm_temp, diff_cbt_s, hs_m, diff_cbt_t, fgo2_raw, bmf_u, temp_xflux_adv, meltl_m, aiso_bih, aice, salt_vdiffu... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, time, alidr_ai_m, ULAT, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, HTE, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, alidr_ai_m, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {mld_max, ULAT, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr, 1day} | {mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, sfc_hflux_from_water_prec, aiso_lap, mld, sfc_hflux_from_water_evap, pot_rho_2, kmu, wf... |
| 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)} | {seaIce, ocean} | {1mon, 1yr, 1day} | {congel_m, vvel_m, ULAT, alidr_ai_m, vatm_m, mld, dic, strintx_m, temp, fe, hs, fcondtop_ai_m, daidtt_m, total_mass_seawater, fsalt_m, salt_surface_ave, zoo, hs_m, strength_m, aicen_m, st_ocean, f... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, alidr_ai_m, ULAT, time, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, HTE, salt_global_ave, dyt, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {1mon, 1yr} | {sea_level, ULAT, time, alidr_ai_m, time_bounds, alvdr_ai_m, vatm_m, HTN, phy, average_T1, eta_global, tarea, adic, salt_global_ave, dyt, HTE, uatm_m, mld, uarea, nv, alvdf_ai_m, dic, average_DT, ... |
| 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)} | {seaIce, ocean} | {fx, 1yr, 1mon} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, temp_xflux_ndiffuse, mld, kmu, strintx_m, temp, v, pe_tot, temp_yflux_submeso, grid_xu_ocea... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, surface_pot_temp_min, alidr_ai_m, total_ocean_sens_heat, runoff, vatm_m, temp_xflux_submeso_int_z, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, t... |
| cmip6_fs38 | {ACCESS-OM2} | {Australian CMIP6-era datasets catalogued by NCI} | {ocnBgchem, seaIce, ocean, atmos} | {fx, 1day, 1mon, 1yr} | {zostoga, volcello, sivol, basin, masso, tossq, msftmrho, phycos, ocontemptend, zos, fgco2nat, soga, agessc, osaltpadvect, hfsifrazil, thkcello, simassacrossline, hflso, siareas, prsn, wmo, fgo2, ... |
| cmip6_oi10 | {ACCESS-OM2} | {Replicated CMIP6-era datasets catalogued by NCI} | {ocean} | {1mon} | {zos, thetao, so, uo, vo, sos, tos} |
We can also combine queries in a search. For example, below we search for all products that use the model ACCESS-OM2-01 and contain the variable wdet100 at daily frequency.
catalog.search(model="ACCESS-OM2-01", frequency="1day", variable=".*wdet.*")
Intake dataframe catalog with 2 source(s) across 2 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| 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} | {1day} | {wdet100} |
| 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} | {1day} | {wdet100} |
Note
Note, metadata in the realm and frequency columns of the ACCESS-NRI catalog follow a standard vocabulary that is very similar to CMIP6 (but slightly more general):
realmmay be one of:aerosol,atmos,atmosChem,land,landIce,none,ocean,ocnBgchem,seaIce,unknown
frequencymay be one of (where<int>is an integer):fxsubhr<int>hr<int>day<int>mon<int>yr<int>dec
Some attempt has been made to use consistent model names in the model column (e.g. always use “ACCESS-OM2” for ACCESS-OM2), but model naming is not enforced. The variable names in the variable column are whatever they’re called in the associated data product.
Data discovery#
The catalog search method is a powerful data-discovery tool.
For example, the ACCESS-NRI catalog includes as entries the CMIP5 and CMIP6 Intake-ESM datastores managed by NCI. These datastores contain a very large number of models and variables. It can be difficult to work out what variables are available for what models and what frequencies. The ACCESS-NRI catalog can help with this.
As an example let’s look at the cmip6_oi10 datastore, which comprises a very large number of models and variables.
catalog.search(name="cmip6_oi10")
Intake dataframe catalog with 1 source(s) across 933 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| cmip6_oi10 | {MRI-ESM2-0, CMCC-ESM2, IPSL-CM5A2-INCA, ECMWF-IFS-LR, MIROC-ES2H, HadGEM3-GC31-HM, EC-Earth3-CC, KACE-1-0-G, ACCESS-OM2, IPSL-CM6A-ATM-HR, CMCC-CM2-VHR4, EC-Earth3-AerChem, HadGEM3-GC31-MM, CIESM... | {Replicated CMIP6-era datasets catalogued by NCI} | {ocean, atmos, landIce, ocnBgchem, land, atmosChem, seaIce, aerosol} | {1yr, subhr, fx, 3hr, 1hr, 6hr, 1mon, 1day} | {cOther, fDeforestToProduct, siflfwbot, volcello, sivol, basin, tossq, fNloss, ccb, raLut, nProduct, rsut, rsutcs, fNnetmin, siareas, sidmassth, sitemptop, pastureFrac, hfx, sidmassgrowthwat, sima... |
Say we are specifically interested in the variable burntFractionAll. Searching on this variable, we can easily see that this is only available in one model (EC-Earth3-Veg) at one frequency (1mon).
catalog.search(name="cmip6_oi10", variable="burntFractionAll")
Intake dataframe catalog with 1 source(s) across 1 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| cmip6_oi10 | {EC-Earth3-Veg} | {Replicated CMIP6-era datasets catalogued by NCI} | {land} | {1mon} | {burntFractionAll} |
We can also use regex strings in our searches. For example, we could search for variables containing the substrings "burnt" and "Fire". We can see that there are five variables, all with monthly frequency, across a large number of models that satisfy this criteria.
Note: The catalog uses Python regex syntax. These may differ slightly from typical Unix regex syntax: for example,
.*is used to match any character zero or more times, rather than*. For more info, see: https://docs.python.org/3/library/re.html, or https://intake-esm.readthedocs.io/en/latest/how-to/filter-catalog-by-substring-and-regex-criteria.html.
catalog.search(name="cmip6_oi10", variable=[".*burnt.*", ".*Fire.*"])
Intake dataframe catalog with 1 source(s) across 18 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| cmip6_oi10 | {MPI-ESM-1-2-HAM, E3SM-1-1, NorESM2-MM, MRI-ESM2-0, GFDL-ESM4, EC-Earth3-Veg, E3SM-1-1-ECA, AWI-ESM-1-1-LR, TaiESM1, CESM2, CESM2-WACCM, NorCPM1, CESM2-FV2, CESM2-WACCM-FV2, SAM0-UNICON, NorESM2-L... | {Replicated CMIP6-era datasets catalogued by NCI} | {land} | {1mon} | {fFire, burntFractionAll, fFireNat, cTotFireLut, fFireAll} |
Or we might want to look for a particular substring in the description (although this is probably not a good idea in general as we can’t always rely on descriptions to be written/formatted in a consistent way).
catalog.search(description=".*RYF9091.*")
Intake dataframe catalog with 11 source(s) across 50 rows:
| model | description | realm | frequency | variable | |
|---|---|---|---|---|---|
| name | |||||
| 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)} | {seaIce, ocean} | {3mon, fx, 3hr, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, xt_ocean_sub01, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, xu_ocean_sub01, bih_fric_u, temp, v, pe_tot, ... |
| 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%.} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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%.} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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%.} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, alidr_ai_m, ULAT, total_ocean_sens_heat, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 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%.} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, bih_fric_u, temp, v, pe_tot, grid_xu_ocean, usurf, fsalt_m, d... |
| 025deg_era5_ryf | {ACCESS-OM2} | {0.25 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, total_ocean_sens_heat, ULAT, surface_pot_temp_min, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr} | {congel_m, vvel_m, ULAT, total_ocean_sens_heat, alidr_ai_m, frz_onset_m, vatm_m, sw_edges_ocean, mld, kmu, strintx_m, temp, v, pe_tot, fcondtop_ai_m, daidtt_m, dzt, total_ocean_heat, sst_m, salt_s... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1day} | {congel_m, vvel_m, mld_max, ULAT, total_ocean_sens_heat, alidr_ai_m, surface_pot_temp_min, runoff, vatm_m, temp_xflux_submeso_int_z, sw_edges_ocean, mld, kmu, wfimelt, temp_yflux_gm_int_z, strintx... |
| 1deg_era5_ryf | {ACCESS-OM2} | {1 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, surface_pot_temp_min, total_ocean_sens_heat, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, t... |
| 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)} | {seaIce, ocean} | {fx, 1mon, 1yr} | {congel_m, vvel_m, alidr_ai_m, total_ocean_sens_heat, ULAT, runoff, frz_onset_m, vatm_m, sw_edges_ocean, temp_xflux_ndiffuse, mld, kmu, strintx_m, temp, v, pe_tot, temp_yflux_submeso, grid_xu_ocea... |
| 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)} | {seaIce, ocean} | {fx, 1day, 1mon} | {congel_m, vvel_m, mld_max, alidr_ai_m, total_ocean_sens_heat, surface_pot_temp_min, ULAT, runoff, vatm_m, temp_xflux_submeso_int_z, mld, pot_rho_2, kmu, wfimelt, temp_yflux_gm_int_z, strintx_m, t... |
Loading Intake sources#
Remember that each entry in the catalog has an associated Intake-ESM datastore that keeps track of all the files in that product and how they fit together into datasets. Once we’ve sufficiently refined our catalog search, we can load the Intake-ESM datastore(s) for our remaining products. If there is only one product remaining, we can use to_source() which returns the Intake-ESM datastore for that product. If there are multiple products remaining, we can use to_source_dict(), which returns a dictionary of Intake-ESM datastores with the product names as keys.
For example, if we know the name of the product we’re interested in, we could just search on that and then call to_source().
esm_datastore = catalog.search(name="025deg_jra55_iaf_omip2_cycle1").to_source()
esm_datastore
025deg_jra55_iaf_omip2_cycle1 catalog with 7 dataset(s) from 1769 asset(s):
| unique | |
|---|---|
| filename | 1469 |
| path | 1769 |
| file_id | 7 |
| frequency | 4 |
| start_date | 855 |
| end_date | 854 |
| variable | 311 |
| variable_long_name | 285 |
| variable_standard_name | 57 |
| variable_cell_methods | 6 |
| variable_units | 65 |
| realm | 2 |
| temporal_label | 3 |
| derived_variable | 0 |
This will look familiar to you if you’ve use Intake-ESM datastores before. If not, you can read the Intake-ESM documentation here and we’ll go through a basic introduction below.
Note, in this example case we knew the name of the product we wanted in the ACCESS-NRI catalog. Instead of searching on the “name” column and calling to_source, we could also have opened the datastore by accessing it directly as an attribute or key on the catalog instance (the former only works if the catalog name comprises only letters, numbers and underscores). For example, the following cell does the same thing as the previous.
esm_datastore = catalog["025deg_jra55_iaf_omip2_cycle1"]
Each Intake-ESM datastore has its own .metadata attribute that contains additional information about that experiment.
esm_datastore.metadata
{'contact': 'Ryan Holmes',
'created': '2020-11-03',
'description': 'Cycle 1/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)',
'email': 'ryan.holmes@bom.gov.au',
'experiment_uuid': '22b73436-9de6-450d-a7ef-3bde5219f19b',
'keywords': ['quarter',
'cosima',
'access-om2-025',
'jra55-do-v1.4.0',
'iaf',
'omip2'],
'license': None,
'long_description': '0.25 degree ACCESS-OM2 global model configuration under interannual forcing. ACCESS-OM2-025 physics-only contribution to the CMIP6 Ocean Model Intercomparison Program project phase 2 (OMIP-2), as discussed by Tsujino et al. (2020, GMD, https://doi.org/10.5194/gmd-2019-363). The configuration is based on that described in Kiss et al. (2020), https://doi.org/10.5194/gmd-13-401-2020, but with many improvements. Initial conditions are WOA13v2 potential temperature and practical salinity. However, the WOA potential temperature field is converted to Conservative Temperature for the initical condition unlike earlier versions of ACCESS-OM2. The topography has also been updated (see https://github.com/COSIMA/access-om2/issues/158). Run with JRA55-do v1.4.0 interannually-varying forcing with all solid runoff converted to liquid runoff with no heat transfer. The OMIP-2 protocol consists of six consecutive cycles of the 61-year period starting on 1 Jan 1958 and finishing on 1 Jan 2019. To avoid issues with leap years and calendars, each cycle is run as a separate "ensemble" experiment - and thus each has the same time/calendar vector. The configuration files used for this simulation are on github in the repository https://github.com/rmholmes/025deg_jra55_iaf. Each cycle is under a different branch listed as omip_amoctopo_cycle[1-6].',
'model': ['ACCESS-OM2'],
'name': '025deg_jra55_iaf_omip2_cycle1',
'nominal_resolution': ['0.25 degrees'],
'notes': 'Output diagnostics are extensive based on the CMIP6 OMIP diagnostics request listed in Griffies et al (2016, https://doi.org/10.5194/gmd-9-3231-2016), including many budget diagnostics.',
'parent_experiment': None,
'reference': None,
'related_experiments': ['d7f8f39a-025a-4d13-9d70-72103c42e962',
'bc006074-1c81-4573-b964-32145791a831',
'd5de91ef-1ad8-43c1-aa01-1ca402cd9717',
'5d6dbb78-b0f9-40d9-b4ca-c70e48d3fa21',
'7ff56950-944e-446b-8cc4-0d662aa1acba'],
'url': 'https://github.com/rmholmes/025deg_jra55_iaf/tree/omip_amoctopo_cycle1',
'version': 1,
'catalog_dir': ''}
Using an Intake-ESM datastore#
Intake-ESM documentation can be found here. Be aware that in the Intake-ESM documentation, Intake-ESM datastores are also often referred to as Intake-ESM “catalogs”. We only use the former terminology to avoid confusion with the ACCESS-NRI catalog.
We’ll demonstrate the basic steps involved in searching for and opening some data using an Intake-ESM datastore. We can see what datasets are available within a datastore by looking at the output of the .keys() method. Here, a “dataset” is a set of files (usually continuous in time) that can be readily opened and combined for analysis using xarray.
esm_datastore.keys()
['ocean.1day.scalar_axis:1.point',
'ocean.1mon.grid_xt_ocean:1440.grid_xu_ocean:1440.grid_yt_ocean:1080.grid_yu_ocean:1080.neutral:80.neutralrho_edges:81.nv:2.potrho:80.potrho_edges:81.st_edges_ocean:51.st_ocean:50.sw_edges_ocean:51.sw_ocean:50.xt_ocean:1440.xu_ocean:1440.yt_ocean:1080.yu_ocean:1080.max,mean,mean_pow(02),min',
'ocean.1mon.nv:2.scalar_axis:1.mean',
'ocean.1yr.nv:2.st_edges_ocean:51.st_ocean:50.xt_ocean:1440.xu_ocean:1440.yt_ocean:1080.yu_ocean:1080.mean',
'ocean.fx.xt_ocean:1440.xu_ocean:1440.yt_ocean:1080.yu_ocean:1080.point',
'seaIce.1day.d2:2.nc:5.ni:1440.nj:1080.mean',
'seaIce.1mon.d2:2.nc:5.ni:1440.nj:1080.mean']
For most of the products in the ACCESS-NRI catalog, dataset keys are constructed from a file id, frequency, and a (list of) temporal_sample method(s). The file id is generated from the size of the grids that the data are on, which lets the catalog know which files can be concatenated. temporal_sample is a separate key which describes how variables in a file have been aggregated over time.
temporal_sample lets us disambiguate in cases which, for example, we have a snapshot file (point) and a mean file (mean) on the same grid. As these are generally defined by the variable cell methods, it is possible to have multiple aggregation methods in a single file, as is the case with our second key above.
We can search on this Intake-ESM datastore in a similar way as we did on the ACCESS-NRI catalog. Note, however, that there are more/different metadata to search on than was available in the catalog. We can look at what metadata can be searched on in our Intake-ESM datastore by looking at the .df atrribute, which is a table of all files in the datastore and associated metadata.
esm_datastore.df.head()
| filename | path | file_id | frequency | start_date | end_date | variable | variable_long_name | variable_standard_name | variable_cell_methods | variable_units | realm | temporal_label | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | iceh.1958-01-daily.nc | /g/data/ik11/outputs/access-om2-025/025deg_jra55_iaf_omip2_cycle1/output000/ice/OUTPUT/iceh.1958-01-daily.nc | seaIce.1day.d2:2.nc:5.ni:1440.nj:1080 | 1day | 1958-01-01, 00:00:00 | 1958-02-01, 00:00:00 | (ANGLE, ANGLET, HTE, HTN, NCAT, TLAT, TLON, ULAT, ULON, aice, blkmask, congel, daidtd, daidtt, dvidtd, dvidtt, dxt, dxu, dyt, dyu, fcondtop_ai, frazil, frzmlt, fsurf_ai, hi, hs, meltb, melts, melt... | (angle grid makes with latitude line on U grid, angle grid makes with latitude line on T grid, T cell width on East side, T cell width on North side, category maximum thickness, T grid center lati... | (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) | (, , , , , , , , , time: mean, , time: mean, time: mean, time: mean, time: mean, time: mean, , , , , time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean,... | (radians, radians, m, m, m, degrees_north, degrees_east, degrees_north, degrees_east, 1, , cm/day, %/day, %/day, cm/day, cm/day, m, m, m, m, W/m^2, cm/day, W/m^2, W/m^2, m, m, cm/day, cm/day, cm/d... | seaIce | mean |
| 1 | iceh.1958-01.nc | /g/data/ik11/outputs/access-om2-025/025deg_jra55_iaf_omip2_cycle1/output000/ice/OUTPUT/iceh.1958-01.nc | seaIce.1mon.d2:2.nc:5.ni:1440.nj:1080 | 1mon | 1958-01-01, 00:00:00 | 1958-02-01, 00:00:00 | (ANGLE, ANGLET, HTE, HTN, NCAT, TLAT, TLON, Tair_m, Tsfc_m, ULAT, ULON, aice_m, aicen_m, albice_m, albsni_m, albsno_m, alidf_ai_m, alidr_ai_m, alvdf_ai_m, alvdr_ai_m, blkmask, congel_m, daidtd_m, ... | (angle grid makes with latitude line on U grid, angle grid makes with latitude line on T grid, T cell width on East side, T cell width on North side, category maximum thickness, T grid center lati... | (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) | (, , , , , , , time: mean, time: mean, , , time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, , time: mean, time: mean, time: mean, time: m... | (radians, radians, m, m, m, degrees_north, degrees_east, C, C, degrees_north, degrees_east, 1, 1, %, %, %, %, %, %, %, , cm/day, %/day, %/day, %/day, cm/day, cm/day, cm/day, m, m, m, m, cm/day, W/... | seaIce | mean |
| 2 | iceh.1958-02-daily.nc | /g/data/ik11/outputs/access-om2-025/025deg_jra55_iaf_omip2_cycle1/output000/ice/OUTPUT/iceh.1958-02-daily.nc | seaIce.1day.d2:2.nc:5.ni:1440.nj:1080 | 1day | 1958-02-01, 00:00:00 | 1958-03-01, 00:00:00 | (ANGLE, ANGLET, HTE, HTN, NCAT, TLAT, TLON, ULAT, ULON, aice, blkmask, congel, daidtd, daidtt, dvidtd, dvidtt, dxt, dxu, dyt, dyu, fcondtop_ai, frazil, frzmlt, fsurf_ai, hi, hs, meltb, melts, melt... | (angle grid makes with latitude line on U grid, angle grid makes with latitude line on T grid, T cell width on East side, T cell width on North side, category maximum thickness, T grid center lati... | (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) | (, , , , , , , , , time: mean, , time: mean, time: mean, time: mean, time: mean, time: mean, , , , , time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean,... | (radians, radians, m, m, m, degrees_north, degrees_east, degrees_north, degrees_east, 1, , cm/day, %/day, %/day, cm/day, cm/day, m, m, m, m, W/m^2, cm/day, W/m^2, W/m^2, m, m, cm/day, cm/day, cm/d... | seaIce | mean |
| 3 | iceh.1958-02.nc | /g/data/ik11/outputs/access-om2-025/025deg_jra55_iaf_omip2_cycle1/output000/ice/OUTPUT/iceh.1958-02.nc | seaIce.1mon.d2:2.nc:5.ni:1440.nj:1080 | 1mon | 1958-02-01, 00:00:00 | 1958-03-01, 00:00:00 | (ANGLE, ANGLET, HTE, HTN, NCAT, TLAT, TLON, Tair_m, Tsfc_m, ULAT, ULON, aice_m, aicen_m, albice_m, albsni_m, albsno_m, alidf_ai_m, alidr_ai_m, alvdf_ai_m, alvdr_ai_m, blkmask, congel_m, daidtd_m, ... | (angle grid makes with latitude line on U grid, angle grid makes with latitude line on T grid, T cell width on East side, T cell width on North side, category maximum thickness, T grid center lati... | (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) | (, , , , , , , time: mean, time: mean, , , time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, , time: mean, time: mean, time: mean, time: m... | (radians, radians, m, m, m, degrees_north, degrees_east, C, C, degrees_north, degrees_east, 1, 1, %, %, %, %, %, %, %, , cm/day, %/day, %/day, %/day, cm/day, cm/day, cm/day, m, m, m, m, cm/day, W/... | seaIce | mean |
| 4 | iceh.1958-03-daily.nc | /g/data/ik11/outputs/access-om2-025/025deg_jra55_iaf_omip2_cycle1/output000/ice/OUTPUT/iceh.1958-03-daily.nc | seaIce.1day.d2:2.nc:5.ni:1440.nj:1080 | 1day | 1958-03-01, 00:00:00 | 1958-04-01, 00:00:00 | (ANGLE, ANGLET, HTE, HTN, NCAT, TLAT, TLON, ULAT, ULON, aice, blkmask, congel, daidtd, daidtt, dvidtd, dvidtt, dxt, dxu, dyt, dyu, fcondtop_ai, frazil, frzmlt, fsurf_ai, hi, hs, meltb, melts, melt... | (angle grid makes with latitude line on U grid, angle grid makes with latitude line on T grid, T cell width on East side, T cell width on North side, category maximum thickness, T grid center lati... | (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) | (, , , , , , , , , time: mean, , time: mean, time: mean, time: mean, time: mean, time: mean, , , , , time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean, time: mean,... | (radians, radians, m, m, m, degrees_north, degrees_east, degrees_north, degrees_east, 1, , cm/day, %/day, %/day, cm/day, cm/day, m, m, m, m, W/m^2, cm/day, W/m^2, W/m^2, m, m, cm/day, cm/day, cm/d... | seaIce | mean |
Like the full catalog, ESM Datastores have a .interactive property which lets you explore their contents.
Like before, we’ll limit ourselves to a subset to keep this notebook running smoothly - but you can explore the whole esm datastore interactively if you wish.
esm_datastore.search(frequency='fx').interactive
| Loading ITables v2.5.2 from the internet... (need help?) |
Let’s search for datasets in this product that contain the variable temp_global_ave.
esm_datastore_filtered = esm_datastore.search(variable="temp_global_ave")
esm_datastore_filtered.keys()
['ocean.1day.scalar_axis:1.point', 'ocean.1mon.nv:2.scalar_axis:1.mean']
We can see that there are two datasets that satisfy this search: scalar ocean datasets at monthly and daily frequencies.
Let’s pretend that these are the datasets we’ve been looking for. Before loading them and performing our analysis, it’s worth reiterating the steps we used to get here. It may have felt complicated, but we’ve really only run three lines of code:
opened the ACCESS-NRI catalog:
catalog = intake.cat.access_nri
opened the Intake-ESM datastore for our product of interest:
esm_datastore = catalog["025deg_jra55_iaf_omip2_cycle1"]
filtered this datastore to only include datasets containing our variable of interest
esm_datastore_filtered = esm_datastore.search(variable="temp_global_ave")
To load and analyse our datasets, we’ll first start a dask cluster.
from distributed import Client
client = Client(threads_per_worker=1)
client.dashboard_link
'/proxy/8787/status'
Hint
If you’re actually running this tutorial, it is very helpful to monitor the dask dashboard when working with dask. Click on the dask icon on the far left of the screen (three orange and red squares) and enter the text output by the previous cell in the search bar. Each of the different orange panels is a different dashboard that you can use to monitor what dask is doing. If you don’t know which to choose, the “Task Stream”, “Progress”, “CPU” and “Workers Memory” diagnostics are a good start. Click on these, and drag the windows to where ever you want them in your JupyterLab.
Intake-ESM datastores have a method called to_dataset_dict for opening multiple datasets into a dictionary of xarray Datasets. If you aren’t familiar with xarray, check out the excellent xarray tutorial webpage.
dataset_dict = esm_datastore_filtered.to_dataset_dict(progressbar=False)
Now that we have our datasets, we can do our “analysis”, which here is to simply plot the timeseries. Note that at this point, we still haven’t actually loaded any product data into memory. Our datasets are dask-backed xarray Dataset objects that will only be evaluated when required (or computed explicitly), for example when we try to plot our data:
import matplotlib.pyplot as plt
dataset_dict["ocean.1day.scalar_axis:1.point"]["temp_global_ave"].plot(label="daily")
dataset_dict["ocean.1mon.nv:2.scalar_axis:1.mean"]["temp_global_ave"].plot(label="monthly")
plt.title("")
plt.legend()
plt.grid()
Note, when there is only one dataset in an Intake-ESM datastore, it can be opened into an xarray Dataset using the to_dask method. For example, below we filter our datastore further to only include the monthly dataset and then open this using to_dask.
dataset = esm_datastore_filtered.search(frequency="1mon").to_dask(progressbar=False)
dataset
<xarray.Dataset> Size: 79kB
Dimensions: (time: 732, scalar_axis: 1, nv: 2)
Coordinates:
* time (time) datetime64[ns] 6kB 1958-01-14T12:00:00 ... ...
* scalar_axis (scalar_axis) float64 8B 0.0
* nv (nv) float64 16B 1.0 2.0
Data variables: (12/19)
total_mass_seawater (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
total_volume_seawater (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
eta_adjust (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
pbot_adjust (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
rhoave (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
eta_global (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
... ...
total_ocean_heat (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
total_net_sfc_heating (time, scalar_axis) float32 3kB dask.array<chunksize=(1, 1), meta=np.ndarray>
average_T1 (time) datetime64[ns] 6kB dask.array<chunksize=(12,), meta=np.ndarray>
average_T2 (time) datetime64[ns] 6kB dask.array<chunksize=(12,), meta=np.ndarray>
average_DT (time) float64 6kB dask.array<chunksize=(12,), meta=np.ndarray>
time_bounds (time, nv) float64 12kB dask.array<chunksize=(1, 2), meta=np.ndarray>
Attributes: (12/17)
filename: ocean_scalar.nc
title: ACCESS-OM2
grid_type: mosaic
grid_tile: 1
intake_esm_vars: ('average_DT', 'average_T1', 'a...
intake_esm_attrs:filename: ocean_scalar.nc
... ...
intake_esm_attrs:variable_cell_methods: ,,,time: mean,time: mean,time: ...
intake_esm_attrs:variable_units: days,days since 0001-01-01 00:0...
intake_esm_attrs:realm: ocean
intake_esm_attrs:temporal_label: mean
intake_esm_attrs:_data_format_: netcdf
intake_esm_dataset_key: ocean.1mon.nv:2.scalar_axis:1.meanPassing a catalog query on to an Intake-ESM datastore#
A common workflow when using the ACCESS-NRI catalog is to execute the same search on the ACCESS-NRI catalog and the resulting Intake-ESM datastores. For example, we might want to search for products containing a particular variable in the ACCESS-NRI catalog and then open datasets containing that variable from the resulting product datastore(s). To avoid code duplication in this case, the catalog to_source and to_source_dict methods accept an argument pass_query which if True tries to pass the most recent query on the ACCESS-NRI catalog on to the datastore(s).
For example, let’s search for all ACCESS-OM2 products with the variable temp_global_ave at monthly frequency and get the datastores for all the resulting products. Each datastore in esm_datastore_dict comprises multiple datasets, most of which don’t include the variable we’re interested in.
%%time
catalog_filtered2 = catalog.search(model="ACCESS-OM2", frequency="1mon", variable="temp_global_ave")
esm_datastore_dict = catalog_filtered2.to_source_dict()
esm_datastore_dict
CPU times: user 22.8 s, sys: 37.9 s, total: 1min
Wall time: 38 s
{'1deg_jra55_iaf_omip2spunup_cycle18': <1deg_jra55_iaf_omip2spunup_cycle18 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle33': <1deg_jra55_iaf_omip2spunup_cycle33 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle25': <1deg_jra55_iaf_omip2spunup_cycle25 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle2': <1deg_jra55_iaf_omip2spunup_cycle2 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle11': <1deg_jra55_iaf_omip2spunup_cycle11 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle45': <1deg_jra55_iaf_omip2spunup_cycle45 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2_cycle5': <1deg_jra55_iaf_omip2_cycle5 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle41': <1deg_jra55_iaf_omip2spunup_cycle41 catalog with 3 dataset(s) from 4575 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle36': <1deg_jra55_iaf_omip2spunup_cycle36 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle26': <1deg_jra55_iaf_omip2spunup_cycle26 catalog with 3 dataset(s) from 915 asset(s)>,
'01deg_jra55_ryf_ENFull': <01deg_jra55_ryf_ENFull catalog with 6 dataset(s) from 80 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle30': <1deg_jra55_iaf_omip2spunup_cycle30 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle15': <1deg_jra55_iaf_omip2spunup_cycle15 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle12': <1deg_jra55_iaf_omip2spunup_cycle12 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle22': <1deg_jra55_iaf_omip2spunup_cycle22 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle35': <1deg_jra55_iaf_omip2spunup_cycle35 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle13': <1deg_jra55_iaf_omip2spunup_cycle13 catalog with 3 dataset(s) from 915 asset(s)>,
'01deg_jra55_ryf_LNFull': <01deg_jra55_ryf_LNFull catalog with 6 dataset(s) from 112 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle24': <1deg_jra55_iaf_omip2spunup_cycle24 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle3': <1deg_jra55_iaf_omip2spunup_cycle3 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle42': <1deg_jra55_iaf_omip2spunup_cycle42 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle5': <1deg_jra55_iaf_omip2spunup_cycle5 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle16': <1deg_jra55_iaf_omip2spunup_cycle16 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle39': <1deg_jra55_iaf_omip2spunup_cycle39 catalog with 10 dataset(s) from 1281 asset(s)>,
'01deg_jra55v13_ryf9091_qian_wthp': <01deg_jra55v13_ryf9091_qian_wthp catalog with 7 dataset(s) from 2160 asset(s)>,
'1deg_jra55_iaf_omip2_cycle3': <1deg_jra55_iaf_omip2_cycle3 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2_cycle6': <1deg_jra55_iaf_omip2_cycle6 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle27': <1deg_jra55_iaf_omip2spunup_cycle27 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle14': <1deg_jra55_iaf_omip2spunup_cycle14 catalog with 3 dataset(s) from 915 asset(s)>,
'025deg_jra55_iaf_omip2_cycle3': <025deg_jra55_iaf_omip2_cycle3 catalog with 7 dataset(s) from 1808 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle1': <1deg_jra55_iaf_omip2spunup_cycle1 catalog with 11 dataset(s) from 2013 asset(s)>,
'01deg_jra55v13_ryf9091_qian_wthmp': <01deg_jra55v13_ryf9091_qian_wthmp catalog with 7 dataset(s) from 1800 asset(s)>,
'025deg_jra55_iaf_omip2_cycle5': <025deg_jra55_iaf_omip2_cycle5 catalog with 7 dataset(s) from 1769 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle20': <1deg_jra55_iaf_omip2spunup_cycle20 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle32': <1deg_jra55_iaf_omip2spunup_cycle32 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle21': <1deg_jra55_iaf_omip2spunup_cycle21 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle23': <1deg_jra55_iaf_omip2spunup_cycle23 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle28': <1deg_jra55_iaf_omip2spunup_cycle28 catalog with 3 dataset(s) from 915 asset(s)>,
'025deg_jra55_iaf_omip2_cycle1': <025deg_jra55_iaf_omip2_cycle1 catalog with 7 dataset(s) from 1769 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle40': <1deg_jra55_iaf_omip2spunup_cycle40 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle10': <1deg_jra55_iaf_omip2spunup_cycle10 catalog with 3 dataset(s) from 915 asset(s)>,
'025deg_jra55_ryf9091_gadi': <025deg_jra55_ryf9091_gadi catalog with 6 dataset(s) from 8951 asset(s)>,
'025deg_jra55_iaf_omip2_cycle6': <025deg_jra55_iaf_omip2_cycle6 catalog with 8 dataset(s) from 1830 asset(s)>,
'025deg_jra55_iaf_omip2_cycle4': <025deg_jra55_iaf_omip2_cycle4 catalog with 7 dataset(s) from 1769 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle6': <1deg_jra55_iaf_omip2spunup_cycle6 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle8': <1deg_jra55_iaf_omip2spunup_cycle8 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle19': <1deg_jra55_iaf_omip2spunup_cycle19 catalog with 3 dataset(s) from 915 asset(s)>,
'025deg_jra55_iaf_omip2_cycle2': <025deg_jra55_iaf_omip2_cycle2 catalog with 7 dataset(s) from 1769 asset(s)>,
'1deg_jra55_iaf_omip2_cycle4': <1deg_jra55_iaf_omip2_cycle4 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle31': <1deg_jra55_iaf_omip2spunup_cycle31 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle37': <1deg_jra55_iaf_omip2spunup_cycle37 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle29': <1deg_jra55_iaf_omip2spunup_cycle29 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2_cycle2': <1deg_jra55_iaf_omip2_cycle2 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2_cycle1': <1deg_jra55_iaf_omip2_cycle1 catalog with 11 dataset(s) from 2013 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle17': <1deg_jra55_iaf_omip2spunup_cycle17 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_ryf9091_gadi': <1deg_jra55_ryf9091_gadi catalog with 11 dataset(s) from 9677 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle9': <1deg_jra55_iaf_omip2spunup_cycle9 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle38': <1deg_jra55_iaf_omip2spunup_cycle38 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle43': <1deg_jra55_iaf_omip2spunup_cycle43 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle34': <1deg_jra55_iaf_omip2spunup_cycle34 catalog with 10 dataset(s) from 1281 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle44': <1deg_jra55_iaf_omip2spunup_cycle44 catalog with 3 dataset(s) from 915 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle4': <1deg_jra55_iaf_omip2spunup_cycle4 catalog with 11 dataset(s) from 1989 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle7': <1deg_jra55_iaf_omip2spunup_cycle7 catalog with 4 dataset(s) from 927 asset(s)>}
So to load the data we want we need to execute essentially the same search again (now on each of the datastores) to filter for only the datasets containing temp_global_ave at monthly frequency.
esm_datastore_dict_filtered = {
name: datastore.search(frequency="1mon", variable="temp_global_ave")
for name, datastore in esm_datastore_dict.items()
}
esm_datastore_dict_filtered
{'1deg_jra55_iaf_omip2spunup_cycle18': <1deg_jra55_iaf_omip2spunup_cycle18 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle33': <1deg_jra55_iaf_omip2spunup_cycle33 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle25': <1deg_jra55_iaf_omip2spunup_cycle25 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle2': <1deg_jra55_iaf_omip2spunup_cycle2 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle11': <1deg_jra55_iaf_omip2spunup_cycle11 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle45': <1deg_jra55_iaf_omip2spunup_cycle45 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle5': <1deg_jra55_iaf_omip2_cycle5 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle41': <1deg_jra55_iaf_omip2spunup_cycle41 catalog with 1 dataset(s) from 305 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle36': <1deg_jra55_iaf_omip2spunup_cycle36 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle26': <1deg_jra55_iaf_omip2spunup_cycle26 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55_ryf_ENFull': <01deg_jra55_ryf_ENFull catalog with 1 dataset(s) from 10 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle30': <1deg_jra55_iaf_omip2spunup_cycle30 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle15': <1deg_jra55_iaf_omip2spunup_cycle15 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle12': <1deg_jra55_iaf_omip2spunup_cycle12 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle22': <1deg_jra55_iaf_omip2spunup_cycle22 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle35': <1deg_jra55_iaf_omip2spunup_cycle35 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle13': <1deg_jra55_iaf_omip2spunup_cycle13 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55_ryf_LNFull': <01deg_jra55_ryf_LNFull catalog with 1 dataset(s) from 14 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle24': <1deg_jra55_iaf_omip2spunup_cycle24 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle3': <1deg_jra55_iaf_omip2spunup_cycle3 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle42': <1deg_jra55_iaf_omip2spunup_cycle42 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle5': <1deg_jra55_iaf_omip2spunup_cycle5 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle16': <1deg_jra55_iaf_omip2spunup_cycle16 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle39': <1deg_jra55_iaf_omip2spunup_cycle39 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55v13_ryf9091_qian_wthp': <01deg_jra55v13_ryf9091_qian_wthp catalog with 1 dataset(s) from 240 asset(s)>,
'1deg_jra55_iaf_omip2_cycle3': <1deg_jra55_iaf_omip2_cycle3 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle6': <1deg_jra55_iaf_omip2_cycle6 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle27': <1deg_jra55_iaf_omip2spunup_cycle27 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle14': <1deg_jra55_iaf_omip2spunup_cycle14 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle3': <025deg_jra55_iaf_omip2_cycle3 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle1': <1deg_jra55_iaf_omip2spunup_cycle1 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55v13_ryf9091_qian_wthmp': <01deg_jra55v13_ryf9091_qian_wthmp catalog with 1 dataset(s) from 200 asset(s)>,
'025deg_jra55_iaf_omip2_cycle5': <025deg_jra55_iaf_omip2_cycle5 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle20': <1deg_jra55_iaf_omip2spunup_cycle20 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle32': <1deg_jra55_iaf_omip2spunup_cycle32 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle21': <1deg_jra55_iaf_omip2spunup_cycle21 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle23': <1deg_jra55_iaf_omip2spunup_cycle23 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle28': <1deg_jra55_iaf_omip2spunup_cycle28 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle1': <025deg_jra55_iaf_omip2_cycle1 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle40': <1deg_jra55_iaf_omip2spunup_cycle40 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle10': <1deg_jra55_iaf_omip2spunup_cycle10 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_ryf9091_gadi': <025deg_jra55_ryf9091_gadi catalog with 1 dataset(s) from 325 asset(s)>,
'025deg_jra55_iaf_omip2_cycle6': <025deg_jra55_iaf_omip2_cycle6 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle4': <025deg_jra55_iaf_omip2_cycle4 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle6': <1deg_jra55_iaf_omip2spunup_cycle6 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle8': <1deg_jra55_iaf_omip2spunup_cycle8 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle19': <1deg_jra55_iaf_omip2spunup_cycle19 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle2': <025deg_jra55_iaf_omip2_cycle2 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle4': <1deg_jra55_iaf_omip2_cycle4 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle31': <1deg_jra55_iaf_omip2spunup_cycle31 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle37': <1deg_jra55_iaf_omip2spunup_cycle37 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle29': <1deg_jra55_iaf_omip2spunup_cycle29 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle2': <1deg_jra55_iaf_omip2_cycle2 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle1': <1deg_jra55_iaf_omip2_cycle1 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle17': <1deg_jra55_iaf_omip2spunup_cycle17 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_ryf9091_gadi': <1deg_jra55_ryf9091_gadi catalog with 1 dataset(s) from 78 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle9': <1deg_jra55_iaf_omip2spunup_cycle9 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle38': <1deg_jra55_iaf_omip2spunup_cycle38 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle43': <1deg_jra55_iaf_omip2spunup_cycle43 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle34': <1deg_jra55_iaf_omip2spunup_cycle34 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle44': <1deg_jra55_iaf_omip2spunup_cycle44 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle4': <1deg_jra55_iaf_omip2spunup_cycle4 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle7': <1deg_jra55_iaf_omip2spunup_cycle7 catalog with 1 dataset(s) from 61 asset(s)>}
To avoid this sort of code duplication, we could instead use the pass_query argument when we call to_source_dict to pass the catalog query on to the search method of Intake-ESM datastores.
esm_datastore_dict2 = catalog_filtered2.to_source_dict(pass_query=True)
esm_datastore_dict2
{'1deg_jra55_iaf_omip2spunup_cycle18': <1deg_jra55_iaf_omip2spunup_cycle18 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle33': <1deg_jra55_iaf_omip2spunup_cycle33 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle25': <1deg_jra55_iaf_omip2spunup_cycle25 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle2': <1deg_jra55_iaf_omip2spunup_cycle2 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle11': <1deg_jra55_iaf_omip2spunup_cycle11 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle45': <1deg_jra55_iaf_omip2spunup_cycle45 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle5': <1deg_jra55_iaf_omip2_cycle5 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle41': <1deg_jra55_iaf_omip2spunup_cycle41 catalog with 1 dataset(s) from 305 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle36': <1deg_jra55_iaf_omip2spunup_cycle36 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle26': <1deg_jra55_iaf_omip2spunup_cycle26 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55_ryf_ENFull': <01deg_jra55_ryf_ENFull catalog with 1 dataset(s) from 10 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle30': <1deg_jra55_iaf_omip2spunup_cycle30 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle15': <1deg_jra55_iaf_omip2spunup_cycle15 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle12': <1deg_jra55_iaf_omip2spunup_cycle12 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle22': <1deg_jra55_iaf_omip2spunup_cycle22 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle35': <1deg_jra55_iaf_omip2spunup_cycle35 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle13': <1deg_jra55_iaf_omip2spunup_cycle13 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55_ryf_LNFull': <01deg_jra55_ryf_LNFull catalog with 1 dataset(s) from 14 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle24': <1deg_jra55_iaf_omip2spunup_cycle24 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle3': <1deg_jra55_iaf_omip2spunup_cycle3 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle42': <1deg_jra55_iaf_omip2spunup_cycle42 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle5': <1deg_jra55_iaf_omip2spunup_cycle5 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle16': <1deg_jra55_iaf_omip2spunup_cycle16 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle39': <1deg_jra55_iaf_omip2spunup_cycle39 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55v13_ryf9091_qian_wthp': <01deg_jra55v13_ryf9091_qian_wthp catalog with 1 dataset(s) from 240 asset(s)>,
'1deg_jra55_iaf_omip2_cycle3': <1deg_jra55_iaf_omip2_cycle3 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle6': <1deg_jra55_iaf_omip2_cycle6 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle27': <1deg_jra55_iaf_omip2spunup_cycle27 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle14': <1deg_jra55_iaf_omip2spunup_cycle14 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle3': <025deg_jra55_iaf_omip2_cycle3 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle1': <1deg_jra55_iaf_omip2spunup_cycle1 catalog with 1 dataset(s) from 61 asset(s)>,
'01deg_jra55v13_ryf9091_qian_wthmp': <01deg_jra55v13_ryf9091_qian_wthmp catalog with 1 dataset(s) from 200 asset(s)>,
'025deg_jra55_iaf_omip2_cycle5': <025deg_jra55_iaf_omip2_cycle5 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle20': <1deg_jra55_iaf_omip2spunup_cycle20 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle32': <1deg_jra55_iaf_omip2spunup_cycle32 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle21': <1deg_jra55_iaf_omip2spunup_cycle21 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle23': <1deg_jra55_iaf_omip2spunup_cycle23 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle28': <1deg_jra55_iaf_omip2spunup_cycle28 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle1': <025deg_jra55_iaf_omip2_cycle1 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle40': <1deg_jra55_iaf_omip2spunup_cycle40 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle10': <1deg_jra55_iaf_omip2spunup_cycle10 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_ryf9091_gadi': <025deg_jra55_ryf9091_gadi catalog with 1 dataset(s) from 325 asset(s)>,
'025deg_jra55_iaf_omip2_cycle6': <025deg_jra55_iaf_omip2_cycle6 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle4': <025deg_jra55_iaf_omip2_cycle4 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle6': <1deg_jra55_iaf_omip2spunup_cycle6 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle8': <1deg_jra55_iaf_omip2spunup_cycle8 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle19': <1deg_jra55_iaf_omip2spunup_cycle19 catalog with 1 dataset(s) from 61 asset(s)>,
'025deg_jra55_iaf_omip2_cycle2': <025deg_jra55_iaf_omip2_cycle2 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle4': <1deg_jra55_iaf_omip2_cycle4 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle31': <1deg_jra55_iaf_omip2spunup_cycle31 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle37': <1deg_jra55_iaf_omip2spunup_cycle37 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle29': <1deg_jra55_iaf_omip2spunup_cycle29 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle2': <1deg_jra55_iaf_omip2_cycle2 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2_cycle1': <1deg_jra55_iaf_omip2_cycle1 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle17': <1deg_jra55_iaf_omip2spunup_cycle17 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_ryf9091_gadi': <1deg_jra55_ryf9091_gadi catalog with 1 dataset(s) from 78 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle9': <1deg_jra55_iaf_omip2spunup_cycle9 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle38': <1deg_jra55_iaf_omip2spunup_cycle38 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle43': <1deg_jra55_iaf_omip2spunup_cycle43 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle34': <1deg_jra55_iaf_omip2spunup_cycle34 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle44': <1deg_jra55_iaf_omip2spunup_cycle44 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle4': <1deg_jra55_iaf_omip2spunup_cycle4 catalog with 1 dataset(s) from 61 asset(s)>,
'1deg_jra55_iaf_omip2spunup_cycle7': <1deg_jra55_iaf_omip2spunup_cycle7 catalog with 1 dataset(s) from 61 asset(s)>}
Note
If we hadn’t suppressed warnings at the start of this notebook, we’d see a bunch of warnings from the previous cell telling us that the query on model was not passed on because there is no column “model” in the Intake-ESM datastores. The other queries on “variable” and “frequency” were passed on successfully so we’re left with only one dataset in each datastore.
Now that we have our appropriately filtered datastores, we can easily open and plot the data. There’s data from 60 different ACCESS-OM2 model runs in the following plot.
colors = {
"01deg_jra55v13_ryf9091": "C0",
"025deg_jra55_iaf_omip2": "C1",
"025deg_jra55_ryf9091_gadi": "C2",
"1deg_jra55_iaf_omip2": "C3",
"1deg_jra55_iaf_omip2spunup": "C4",
"1deg_jra55_ryf9091_gadi": "C5",
}
for idx, name in enumerate(sorted(esm_datastore_dict2.keys())):
label = name.split("_cycle")[0]
if not colors.get(label,False):
continue
# We have many more datasets in the catalog than when this
# tutorial was first created - this just skips over extra
# datasets and helps keeps the plot clean!
data = esm_datastore_dict2[name].to_dask(
progressbar=False, xarray_open_kwargs=dict(use_cftime=True),
)
data["temp_global_ave"].plot(color=colors[label], label=label)
plt.title("")
plt.grid()
# Remove duplicates in legend
handles, labels = plt.gca().get_legend_handles_labels()
by_label = dict(zip(labels, handles))
plt.legend(by_label.values(), by_label.keys())
<matplotlib.legend.Legend at 0x154d0a85ea90>
A multi-model example#
As another simple example, let’s use the ACCESS-NRI catalog to carry out an analysis comparing the SST climatology in the Nino-3.4 region from three data products:
An ACCESS-OM2 experiment:
1deg_jra55_iaf_omip2_cycle1An ACCESS-ESM1.5 experiment:
HI_C_05_r1An ACCESS-CM2 experiment:
bx944
First we’ll search directly for the products by their names and get the Intake-ESM datastores for those experiments. Here we use the to_source_dict method to load the datastores because there is more than one of them.
esm_datastore_dict3 = catalog.search(
name=[
"1deg_jra55_iaf_omip2_cycle1",
"HI_C_05_r1",
"bx944"
]
).to_source_dict()
Now we’ll search on monthly SST within each datastore and open each monthly SST dataset as an xarray Dataset (here we use the to_dask method because there is only one dataset remaining in the Intake-ESM datastore after the search is applied). We also rename the xt_ocean and yt_ocean to longitude and latitude which isn’t correct globally, but xt_ocean and yt_ocean can be interpretted as longitudes and latitudes in the region we’re interested in. The renaming is done simply to make things a little more convenient later on.
# Some useful keyword arguments to make opening with xarray faster
xarray_combine_by_coords_kwargs = dict(
compat="override",
data_vars="minimal",
coords="minimal",
)
xarray_open_kwargs = dict(
use_cftime=True,
)
dataset_dict = {
name: datastore.search(
realm="ocean",
variable="sst",
frequency="1mon"
).to_dask(
xarray_open_kwargs=xarray_open_kwargs,
xarray_combine_by_coords_kwargs=xarray_combine_by_coords_kwargs
).rename({"xt_ocean": "longitude", "yt_ocean": "latitude"})
for name, datastore in esm_datastore_dict3.items()
}
Now we can do our analysis on these data. To do this, we use two functions: the first computes the monthly climatological mean in the Nino-3.4 region over 1971-2000; and the second wraps the first to compute and plot the climatological mean for a dictionary of datasets containing the variable sst.
def compute_nino34_clim(sst):
"""
Compute the monthly climatological mean in the Nino-3.4 region over 1971-2000
"""
sst = sst.sel(time=slice("1971", "2000"))
sst = sst.assign_coords(
{"longitude": (sst["longitude"] + 360) % 360}
)
# NOTE: really, this should be area weighted
sst_nino34 = sst.where(
(sst.latitude < 5) &
(sst.latitude > -5) &
(sst.longitude > 190) &
(sst.longitude < 240),
drop=True
).mean(
set(sst.latitude.dims + sst.longitude.dims)
).compute()
return sst_nino34.groupby("time.month").mean("time")
def plot_nino34_clim(dataset_dict):
"""
Plot the monthly climatological mean of SST in the Nino-3.4 region over 1971-2000
"""
for idx, (name, ds) in enumerate(dataset_dict.items()):
nino34_clim = compute_nino34_clim(ds)["sst"]
# NOTE: there're better ways to deal with units, but this will do for this demo
if (nino34_clim > 273.15).any().item():
nino34_clim -= 273.15
nino34_clim.plot.line(x="month", color=f"C{idx}", add_legend=False, label=name)
plt.title("SST climatology in Nino-3.4 region")
plt.ylabel("SST")
plt.grid()
# Remove duplicates in legend
handles, labels = plt.gca().get_legend_handles_labels()
by_label = dict(zip(labels, handles))
plt.legend(by_label.values(), by_label.keys())
plot_nino34_clim(dataset_dict)
Maybe we’d also like to add some ACCESS-ESM1-5 CMIP6 data to our plot? That’s easy because the NCI CMIP6 Intake-ESM datastores are included in the ACCESS-NRI catalog.
cmip6_datastore = catalog.search(name="cmip6.*", model="ACCESS-ESM1-5").to_source()
Let’s search for and load the ACCESS-ESM1-5 historical run. In this Intake-ESM datastore (which was generated by NCI), each of the 40 ACCESS-ESM1-5 ensemble members are considered separate datasets. We’ll open them using to_dataset_dict and concantenate them into a single dataset.
cmip6_datastore_filtered = cmip6_datastore.search(
source_id="ACCESS-ESM1-5",
table_id="Omon",
variable_id="tos",
experiment_id="historical",
file_type="f"
)
cmip6_datastore_filtered
cmip6-fs38 catalog with 40 dataset(s) from 40 asset(s):
| unique | |
|---|---|
| path | 40 |
| file_type | 1 |
| realm | 1 |
| frequency | 1 |
| table_id | 1 |
| project_id | 1 |
| institution_id | 1 |
| source_id | 1 |
| experiment_id | 1 |
| member_id | 40 |
| variable_id | 1 |
| grid_label | 1 |
| version | 9 |
| time_range | 1 |
| derived_variable_id | 0 |
import xarray as xr
ds = xr.concat(
cmip6_datastore_filtered.to_dataset_dict(progressbar=False).values(),
dim="member"
)
Now we can add the CMIP6 ACCESS-ESM1-5 ensemble to our plot. Perhaps unsurprisingly, the added climatologies look very similar to the HI_C_05_r1 climatology (which uses the same model).
dataset_dict["CMIP6 ACCESS-ESM1.5 historical"] = ds.rename({"tos": "sst"})
plot_nino34_clim(dataset_dict)
client.close()
For further information on using the ACCESS-NRI Intake Catalog not covered in this tutorial, see the following resources:
https://github.com/COSIMA/cosima-recipes/blob/65df5974fd8d3f63b675ce4f666aa1decfe959c3/Tutorials/ACCESS-NRI_Intake_Catalog.ipynb
Debugging#
If you encounter an ESMDataSourceError when trying to load data, it is possible that you have not added the required storage flags to your NCI ARE instance. In order to check whether this is the case, we provide the following ipython magic command, which will intercept your code and check whether you have all the required storage flags. If not, it will wrap any errors your code raises with a MissingStorageWarning or MissingStorageError, depending on whether your code is expected to raise an error or not.
The following cells were run with only gdata/xp65 storage enabled
import intake
catalog = intake.cat.access_nri
catalog['01deg_jra55_ryf_Control'].unique().path[0] # Just grab the first path to demonstrate
'/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
This file is in cj50 - so we don’t expect loading it to work.
catalog['01deg_jra55_ryf_Control'].search(
path='/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
)
01deg_jra55_ryf_Control catalog with 1 dataset(s) from 1 asset(s):
| unique | |
|---|---|
| filename | 1 |
| path | 1 |
| file_id | 1 |
| frequency | 1 |
| start_date | 1 |
| end_date | 1 |
| variable | 55 |
| variable_long_name | 55 |
| variable_standard_name | 1 |
| variable_cell_methods | 2 |
| variable_units | 19 |
| realm | 1 |
| temporal_label | 1 |
| derived_variable | 0 |
catalog['01deg_jra55_ryf_Control'].search(
path='/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
).to_dask()
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:284, in ESMDataSource._open_dataset(self)
283 if self.threaded:
--> 284 datasets = dask.compute(*datasets)
285 if len(datasets) == 1 or not datasets[0].data_vars:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/dask/base.py:681, in compute(traverse, optimize_graph, scheduler, get, *args, **kwargs)
679 keys = list(flatten(expr.__dask_keys__()))
--> 681 results = schedule(expr, keys, **kwargs)
683 return repack(results)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:62, in _delayed_open_ds(*args, **kwargs)
60 @dask.delayed
61 def _delayed_open_ds(*args, **kwargs):
---> 62 return _open_dataset(*args, **kwargs)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:90, in _open_dataset(urlpath, varname, xarray_open_kwargs, preprocess, requested_variables, additional_attrs, expand_dims, data_format, storage_options)
89 elif fsspec.utils.can_be_local(urlpath):
---> 90 url = fsspec.open_local(urlpath, **storage_options)
91 else:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:533, in open_local(url, mode, **storage_options)
529 raise ValueError(
530 "open_local can only be used on a filesystem which"
531 " has attribute local_file=True"
532 )
--> 533 with of as files:
534 paths = [f.name for f in files]
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:190, in OpenFiles.__enter__(self)
189 break
--> 190 return [s.__enter__() for s in self]
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:190, in <listcomp>(.0)
189 break
--> 190 return [s.__enter__() for s in self]
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:105, in OpenFile.__enter__(self)
104 try:
--> 105 f = self.fs.open(self.path, mode=mode)
106 except FileNotFoundError as e:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/spec.py:1349, in AbstractFileSystem.open(self, path, mode, block_size, cache_options, compression, **kwargs)
1348 ac = kwargs.pop("autocommit", not self._intrans)
-> 1349 f = self._open(
1350 path,
1351 mode=mode,
1352 block_size=block_size,
1353 autocommit=ac,
1354 cache_options=cache_options,
1355 **kwargs,
1356 )
1357 if compression is not None:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/implementations/local.py:210, in LocalFileSystem._open(self, path, mode, block_size, **kwargs)
209 self.makedirs(self._parent(path), exist_ok=True)
--> 210 return LocalFileOpener(path, mode, fs=self, **kwargs)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/implementations/local.py:387, in LocalFileOpener.__init__(self, path, mode, autocommit, fs, compression, **kwargs)
386 self.blocksize = io.DEFAULT_BUFFER_SIZE
--> 387 self._open()
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/implementations/local.py:392, in LocalFileOpener._open(self)
391 if self.autocommit or "w" not in self.mode:
--> 392 self.f = open(self.path, mode=self.mode)
393 if self.compression:
FileNotFoundError: [Errno 2] No such file or directory: '/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
The above exception was the direct cause of the following exception:
ESMDataSourceError Traceback (most recent call last)
Cell In[7], line 3
1 catalog['01deg_jra55_ryf_Control'].search(
2 path='/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
----> 3 ).to_dask()
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:915, in esm_datastore.to_dask(self, **kwargs)
911 lens = self._aggr_lengths
912 raise ValueError(
913 f'Expected exactly one dataset. Received {len(self)} datasets. Please refine your search on {", ".join(lens.keys())} or use `.to_dataset_dict()`.'
914 )
--> 915 res = self.to_dataset_dict(**{**kwargs, 'progressbar': False})
916 if len(res) != 1: # extra check in case kwargs did modify something
917 lens = self._aggr_lengths
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/pydantic/_internal/_validate_call.py:39, in update_wrapper_attributes.<locals>.wrapper_function(*args, **kwargs)
37 @functools.wraps(wrapped)
38 def wrapper_function(*args, **kwargs):
---> 39 return wrapper(*args, **kwargs)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/pydantic/_internal/_validate_call.py:136, in ValidateCallWrapper.__call__(self, *args, **kwargs)
133 if not self.__pydantic_complete__:
134 self._create_validators()
--> 136 res = self.__pydantic_validator__.validate_python(pydantic_core.ArgsKwargs(args, kwargs))
137 if self.__return_pydantic_validator__:
138 return self.__return_pydantic_validator__(res)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:786, in esm_datastore.to_dataset_dict(self, xarray_open_kwargs, xarray_combine_by_coords_kwargs, preprocess, storage_options, progressbar, aggregate, skip_on_error, threaded, **kwargs)
784 except Exception as exc:
785 if not skip_on_error:
--> 786 raise exc
787 self.datasets = self._create_derived_variables(datasets, skip_on_error)
788 return self.datasets
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:782, in esm_datastore.to_dataset_dict(self, xarray_open_kwargs, xarray_combine_by_coords_kwargs, preprocess, storage_options, progressbar, aggregate, skip_on_error, threaded, **kwargs)
780 for task in gen:
781 try:
--> 782 key, ds = task.result()
783 datasets[key] = ds
784 except Exception as exc:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/concurrent/futures/_base.py:449, in Future.result(self, timeout)
447 raise CancelledError()
448 elif self._state == FINISHED:
--> 449 return self.__get_result()
451 self._condition.wait(timeout)
453 if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/concurrent/futures/_base.py:401, in Future.__get_result(self)
399 if self._exception:
400 try:
--> 401 raise self._exception
402 finally:
403 # Break a reference cycle with the exception in self._exception
404 self = None
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/concurrent/futures/thread.py:58, in _WorkItem.run(self)
55 return
57 try:
---> 58 result = self.fn(*self.args, **self.kwargs)
59 except BaseException as exc:
60 self.future.set_exception(exc)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:945, in _load_source(key, source)
944 def _load_source(key, source):
--> 945 return key, source.to_dask()
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:328, in ESMDataSource.to_dask(self)
326 def to_dask(self):
327 """Return xarray object (which will have chunks)"""
--> 328 self._load_metadata()
329 return self._ds
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake/source/base.py:84, in DataSourceBase._load_metadata(self)
82 """load metadata only if needed"""
83 if self._schema is None:
---> 84 self._schema = self._get_schema()
85 self.dtype = self._schema.dtype
86 self.shape = self._schema.shape
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:245, in ESMDataSource._get_schema(self)
243 def _get_schema(self) -> Schema:
244 if self._ds is None:
--> 245 self._open_dataset()
246 metadata: dict[str, typing.Any] = {'dims': {}, 'data_vars': {}, 'coords': ()}
247 self._schema = Schema(
248 datashape=None,
249 dtype=None,
(...)
252 extra_metadata=metadata,
253 )
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:320, in ESMDataSource._open_dataset(self)
317 self._ds.attrs[OPTIONS['dataset_key']] = self.key
319 except Exception as exc:
--> 320 raise ESMDataSourceError(
321 f"""Failed to load dataset with key='{self.key}'
322 You can use `cat['{self.key}'].df` to inspect the assets/files for this key.
323 """
324 ) from exc
ESMDataSourceError: Failed to load dataset with key='seaIce.1mon.d2:2.nc:5.ni:3600.nj:2700.mean'
You can use `cat['seaIce.1mon.d2:2.nc:5.ni:3600.nj:2700.mean'].df` to inspect the assets/files for this key.
This error is quite opaque - so let’s add our cell magic#
%%check_storage_enabled
esm_datasource = catalog['01deg_jra55_ryf_Control']
esm_datasource.search(
path='/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
).to_dask()
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:284, in ESMDataSource._open_dataset(self)
283 if self.threaded:
--> 284 datasets = dask.compute(*datasets)
285 if len(datasets) == 1 or not datasets[0].data_vars:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/dask/base.py:681, in compute(traverse, optimize_graph, scheduler, get, *args, **kwargs)
679 keys = list(flatten(expr.__dask_keys__()))
--> 681 results = schedule(expr, keys, **kwargs)
683 return repack(results)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:62, in _delayed_open_ds(*args, **kwargs)
60 @dask.delayed
61 def _delayed_open_ds(*args, **kwargs):
---> 62 return _open_dataset(*args, **kwargs)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:90, in _open_dataset(urlpath, varname, xarray_open_kwargs, preprocess, requested_variables, additional_attrs, expand_dims, data_format, storage_options)
89 elif fsspec.utils.can_be_local(urlpath):
---> 90 url = fsspec.open_local(urlpath, **storage_options)
91 else:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:533, in open_local(url, mode, **storage_options)
529 raise ValueError(
530 "open_local can only be used on a filesystem which"
531 " has attribute local_file=True"
532 )
--> 533 with of as files:
534 paths = [f.name for f in files]
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:190, in OpenFiles.__enter__(self)
189 break
--> 190 return [s.__enter__() for s in self]
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:190, in <listcomp>(.0)
189 break
--> 190 return [s.__enter__() for s in self]
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/core.py:105, in OpenFile.__enter__(self)
104 try:
--> 105 f = self.fs.open(self.path, mode=mode)
106 except FileNotFoundError as e:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/spec.py:1349, in AbstractFileSystem.open(self, path, mode, block_size, cache_options, compression, **kwargs)
1348 ac = kwargs.pop("autocommit", not self._intrans)
-> 1349 f = self._open(
1350 path,
1351 mode=mode,
1352 block_size=block_size,
1353 autocommit=ac,
1354 cache_options=cache_options,
1355 **kwargs,
1356 )
1357 if compression is not None:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/implementations/local.py:210, in LocalFileSystem._open(self, path, mode, block_size, **kwargs)
209 self.makedirs(self._parent(path), exist_ok=True)
--> 210 return LocalFileOpener(path, mode, fs=self, **kwargs)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/implementations/local.py:387, in LocalFileOpener.__init__(self, path, mode, autocommit, fs, compression, **kwargs)
386 self.blocksize = io.DEFAULT_BUFFER_SIZE
--> 387 self._open()
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/fsspec/implementations/local.py:392, in LocalFileOpener._open(self)
391 if self.autocommit or "w" not in self.mode:
--> 392 self.f = open(self.path, mode=self.mode)
393 if self.compression:
FileNotFoundError: [Errno 2] No such file or directory: '/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
The above exception was the direct cause of the following exception:
ESMDataSourceError Traceback (most recent call last)
Cell In[8], line 4
1 esm_datasource = catalog['01deg_jra55_ryf_Control']
2 esm_datasource.search(
3 path='/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'
----> 4 ).to_dask()
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:915, in esm_datastore.to_dask(self, **kwargs)
911 lens = self._aggr_lengths
912 raise ValueError(
913 f'Expected exactly one dataset. Received {len(self)} datasets. Please refine your search on {", ".join(lens.keys())} or use `.to_dataset_dict()`.'
914 )
--> 915 res = self.to_dataset_dict(**{**kwargs, 'progressbar': False})
916 if len(res) != 1: # extra check in case kwargs did modify something
917 lens = self._aggr_lengths
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/pydantic/_internal/_validate_call.py:39, in update_wrapper_attributes.<locals>.wrapper_function(*args, **kwargs)
37 @functools.wraps(wrapped)
38 def wrapper_function(*args, **kwargs):
---> 39 return wrapper(*args, **kwargs)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/pydantic/_internal/_validate_call.py:136, in ValidateCallWrapper.__call__(self, *args, **kwargs)
133 if not self.__pydantic_complete__:
134 self._create_validators()
--> 136 res = self.__pydantic_validator__.validate_python(pydantic_core.ArgsKwargs(args, kwargs))
137 if self.__return_pydantic_validator__:
138 return self.__return_pydantic_validator__(res)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:786, in esm_datastore.to_dataset_dict(self, xarray_open_kwargs, xarray_combine_by_coords_kwargs, preprocess, storage_options, progressbar, aggregate, skip_on_error, threaded, **kwargs)
784 except Exception as exc:
785 if not skip_on_error:
--> 786 raise exc
787 self.datasets = self._create_derived_variables(datasets, skip_on_error)
788 return self.datasets
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:782, in esm_datastore.to_dataset_dict(self, xarray_open_kwargs, xarray_combine_by_coords_kwargs, preprocess, storage_options, progressbar, aggregate, skip_on_error, threaded, **kwargs)
780 for task in gen:
781 try:
--> 782 key, ds = task.result()
783 datasets[key] = ds
784 except Exception as exc:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/concurrent/futures/_base.py:449, in Future.result(self, timeout)
447 raise CancelledError()
448 elif self._state == FINISHED:
--> 449 return self.__get_result()
451 self._condition.wait(timeout)
453 if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/concurrent/futures/_base.py:401, in Future.__get_result(self)
399 if self._exception:
400 try:
--> 401 raise self._exception
402 finally:
403 # Break a reference cycle with the exception in self._exception
404 self = None
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/concurrent/futures/thread.py:58, in _WorkItem.run(self)
55 return
57 try:
---> 58 result = self.fn(*self.args, **self.kwargs)
59 except BaseException as exc:
60 self.future.set_exception(exc)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/core.py:945, in _load_source(key, source)
944 def _load_source(key, source):
--> 945 return key, source.to_dask()
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:328, in ESMDataSource.to_dask(self)
326 def to_dask(self):
327 """Return xarray object (which will have chunks)"""
--> 328 self._load_metadata()
329 return self._ds
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake/source/base.py:84, in DataSourceBase._load_metadata(self)
82 """load metadata only if needed"""
83 if self._schema is None:
---> 84 self._schema = self._get_schema()
85 self.dtype = self._schema.dtype
86 self.shape = self._schema.shape
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:245, in ESMDataSource._get_schema(self)
243 def _get_schema(self) -> Schema:
244 if self._ds is None:
--> 245 self._open_dataset()
246 metadata: dict[str, typing.Any] = {'dims': {}, 'data_vars': {}, 'coords': ()}
247 self._schema = Schema(
248 datashape=None,
249 dtype=None,
(...)
252 extra_metadata=metadata,
253 )
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/intake_esm/source.py:320, in ESMDataSource._open_dataset(self)
317 self._ds.attrs[OPTIONS['dataset_key']] = self.key
319 except Exception as exc:
--> 320 raise ESMDataSourceError(
321 f"""Failed to load dataset with key='{self.key}'
322 You can use `cat['{self.key}'].df` to inspect the assets/files for this key.
323 """
324 ) from exc
ESMDataSourceError: Failed to load dataset with key='seaIce.1mon.d2:2.nc:5.ni:3600.nj:2700.mean'
You can use `cat['seaIce.1mon.d2:2.nc:5.ni:3600.nj:2700.mean'].df` to inspect the assets/files for this key.
---------------------------------------------------------------------------
MissingStorageError Traceback (most recent call last)
Cell In[8], line 1
----> 1 get_ipython().run_cell_magic('check_storage_enabled', '', "esm_datasource = catalog['01deg_jra55_ryf_Control']\nesm_datasource.search(\n path='/g/data/cj50/access-om2/raw-output/access-om2-01/01deg_jra55_ryf_Control/output976/ice/OUTPUT/iceh.2145-01.nc'\n).to_dask()\n")
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/IPython/core/interactiveshell.py:2543, in InteractiveShell.run_cell_magic(self, magic_name, line, cell)
2541 with self.builtin_trap:
2542 args = (magic_arg_s, cell)
-> 2543 result = fn(*args, **kwargs)
2545 # The code below prevents the output from being displayed
2546 # when using magics with decorator @output_can_be_silenced
2547 # when the last Python token in the expression is a ';'.
2548 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False):
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/access_nri_intake/ipython_magic/ast.py:133, in check_storage_enabled(line, cell)
131 reduced_tree = tree.visit(reducer)
132 visitor = CallListener(user_namespace, _err)
--> 133 reduced_tree.visit(visitor)
135 return None
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/module.py:89, in Module.visit(self, visitor)
82 def visit(self: _ModuleSelfT, visitor: CSTVisitorT) -> _ModuleSelfT:
83 """
84 Returns the result of running a visitor over this module.
85
86 :class:`Module` overrides the default visitor entry point to resolve metadata
87 dependencies declared by 'visitor'.
88 """
---> 89 result = super(Module, self).visit(visitor)
90 if isinstance(result, RemovalSentinel):
91 return self.with_changes(body=(), header=(), footer=())
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/base.py:228, in CSTNode.visit(self, visitor)
221 # TODO: provide traversal where children are not replaced
222 # visit children (optionally)
223 if should_visit_children:
224 # It's not possible to define `_visit_and_replace_children` with the correct
225 # return type in any sane way, so we're using this cast. See the
226 # explanation above the declaration of `_visit_and_replace_children`.
227 with_updated_children = cast(
--> 228 _CSTNodeSelfT, self._visit_and_replace_children(visitor)
229 )
230 else:
231 with_updated_children = self
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/module.py:74, in Module._visit_and_replace_children(self, visitor)
71 def _visit_and_replace_children(self, visitor: CSTVisitorT) -> "Module":
72 return Module(
73 header=visit_sequence(self, "header", self.header, visitor),
---> 74 body=visit_body_sequence(self, "body", self.body, visitor),
75 footer=visit_sequence(self, "footer", self.footer, visitor),
76 encoding=self.encoding,
77 default_indent=self.default_indent,
78 default_newline=self.default_newline,
79 has_trailing_newline=self.has_trailing_newline,
80 )
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/internal.py:227, in visit_body_sequence(parent, fieldname, children, visitor)
217 def visit_body_sequence(
218 parent: "CSTNode",
219 fieldname: str,
220 children: Sequence[CSTNodeT],
221 visitor: "CSTVisitorT",
222 ) -> Sequence[CSTNodeT]:
223 """
224 A convenience wrapper for `visit_body_iterable` that returns a sequence
225 instead of an iterable.
226 """
--> 227 return tuple(visit_body_iterable(parent, fieldname, children, visitor))
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/internal.py:193, in visit_body_iterable(parent, fieldname, children, visitor)
191 visitor.on_visit_attribute(parent, fieldname)
192 for child in children:
--> 193 new_child = child.visit(visitor)
195 # Don't yield a child if we removed it.
196 if isinstance(new_child, RemovalSentinel):
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/base.py:228, in CSTNode.visit(self, visitor)
221 # TODO: provide traversal where children are not replaced
222 # visit children (optionally)
223 if should_visit_children:
224 # It's not possible to define `_visit_and_replace_children` with the correct
225 # return type in any sane way, so we're using this cast. See the
226 # explanation above the declaration of `_visit_and_replace_children`.
227 with_updated_children = cast(
--> 228 _CSTNodeSelfT, self._visit_and_replace_children(visitor)
229 )
230 else:
231 with_updated_children = self
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/statement.py:444, in SimpleStatementLine._visit_and_replace_children(self, visitor)
437 def _visit_and_replace_children(
438 self, visitor: CSTVisitorT
439 ) -> "SimpleStatementLine":
440 return SimpleStatementLine(
441 leading_lines=visit_sequence(
442 self, "leading_lines", self.leading_lines, visitor
443 ),
--> 444 body=visit_sequence(self, "body", self.body, visitor),
445 trailing_whitespace=visit_required(
446 self, "trailing_whitespace", self.trailing_whitespace, visitor
447 ),
448 )
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/internal.py:177, in visit_sequence(parent, fieldname, children, visitor)
167 def visit_sequence(
168 parent: "CSTNode",
169 fieldname: str,
170 children: Sequence[CSTNodeT],
171 visitor: "CSTVisitorT",
172 ) -> Sequence[CSTNodeT]:
173 """
174 A convenience wrapper for `visit_iterable` that returns a sequence instead of an
175 iterable.
176 """
--> 177 return tuple(visit_iterable(parent, fieldname, children, visitor))
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/internal.py:159, in visit_iterable(parent, fieldname, children, visitor)
157 visitor.on_visit_attribute(parent, fieldname)
158 for child in children:
--> 159 new_child = child.visit(visitor)
160 if isinstance(new_child, FlattenSentinel):
161 yield from new_child
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/base.py:228, in CSTNode.visit(self, visitor)
221 # TODO: provide traversal where children are not replaced
222 # visit children (optionally)
223 if should_visit_children:
224 # It's not possible to define `_visit_and_replace_children` with the correct
225 # return type in any sane way, so we're using this cast. See the
226 # explanation above the declaration of `_visit_and_replace_children`.
227 with_updated_children = cast(
--> 228 _CSTNodeSelfT, self._visit_and_replace_children(visitor)
229 )
230 else:
231 with_updated_children = self
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/statement.py:349, in Expr._visit_and_replace_children(self, visitor)
347 def _visit_and_replace_children(self, visitor: CSTVisitorT) -> "Expr":
348 return Expr(
--> 349 value=visit_required(self, "value", self.value, visitor),
350 semicolon=visit_sentinel(self, "semicolon", self.semicolon, visitor),
351 )
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/internal.py:81, in visit_required(parent, fieldname, node, visitor)
76 """
77 Given a node, visits the node using `visitor`. If removal is attempted by the
78 visitor, an exception is raised.
79 """
80 visitor.on_visit_attribute(parent, fieldname)
---> 81 result = node.visit(visitor)
82 if isinstance(result, RemovalSentinel):
83 raise TypeError(
84 f"We got a RemovalSentinel while visiting a {type(node).__name__}. This "
85 + "node's parent does not allow it to be removed."
86 )
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_nodes/base.py:219, in CSTNode.visit(self, visitor)
214 """
215 Visits the current node, its children, and all transitive children using
216 the given visitor's callbacks.
217 """
218 # visit self
--> 219 should_visit_children = visitor.on_visit(self)
221 # TODO: provide traversal where children are not replaced
222 # visit children (optionally)
223 if should_visit_children:
224 # It's not possible to define `_visit_and_replace_children` with the correct
225 # return type in any sane way, so we're using this cast. See the
226 # explanation above the declaration of `_visit_and_replace_children`.
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/libcst/_visitors.py:123, in CSTVisitor.on_visit(self, node)
121 visit_func = getattr(self, f"visit_{type(node).__name__}", None)
122 if visit_func is not None:
--> 123 retval = visit_func(node)
124 else:
125 retval = True
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/access_nri_intake/ipython_magic/ast.py:168, in CallListener.visit_Call(self, node)
166 # Check if it's an esm_datastore with a load method
167 if isinstance(instance, esm_datastore):
--> 168 check_permissions(instance, method_name, self._err)
File /g/data/xp65/public/apps/med_conda/envs/analysis3-25.11/lib/python3.11/site-packages/access_nri_intake/ipython_magic/ast.py:65, in check_permissions(esm_datastore, method_name, err)
60 warnings.warn("\n".join(error_msg), category=MissingStorageWarning)
61 else:
62 # We don't raise from err here, as it's already propagated out to our
63 # stack trace in the `result = ip.run_cell(cell); _err = result.error_in_exec if result.error_in_exec else None`
64 # `check_load_calls` magic. So we just raise a new error
---> 65 raise MissingStorageError(error_msg).with_traceback(None)
67 return None
MissingStorageError: Unable to access projects cj50 - check your group memberships
This is likely the source of any ESMDataSourceErrors or missing data