Skip to content
Matthew Mizielinski edited this page Nov 21, 2023 · 3 revisions

Welcome to the mip-cmor-tables wiki!

These pages give a quick intro on how to use the tables contained here with CMOR. CMOR, the Climate Model Output Rewriter, requires a number of sets of files in order to function;

  • MIP tables containing variable definitions
  • Auxilliary files defining valid coordinates (MIP_coordinates.json), vertical coordinate formula components (MIP_formula_terms.json) and grid information (MIP_grids.json),
  • Controlled Vocabularies

In an attempt to make these tables usable for a range of projects they are generic, i.e. not explicitly tied to a particular project, with the intention that multiple projects can make use of these tables to support comparability. Note that this is a somewhat experimental approach and there may be issues we have not clearly developed processes or policies for.

A note on using the mip-cmor-tables with CMOR v3.7.x

There are two changes being introduced to the structure of the MIP tables that will aid validation of their structure longer term, which CMOR v3.7.x cannot cope with. These are;

  1. The dimensions for each variable are expressed as a list of strings rather than a single space separated string (e.g. the dimensions for tas are now ["longitude", "latitude", "time", "height2m"] rather than "longitude latitude time height2m".
  2. The modeling_realm entry for each variable is also a list rather than a space separated string.

In order to use the MIP tables with CMOR v3.7 these fields need to be restructured. This Jupyter Notebook runs through that process, writing out a revised version to a Tables_3.7.3 directory when run. To avoid excessive maintenance cost and confusion in the longer term these tables are not retained within this repository, but need to be generated independently.

Once the developments needed to ensure CMOR can handle these tables as they are (expected in v3.8.0) the need to rewrite the tables will be removed.

Quick start guide for CMIP6Plus

The first project to make use of these tables is CMIP6Plus, a follow on to the CMIP6 project. One thing to be aware of when preparing data for CMIP6Plus is that the assignment of variables to MIP tables has been changed -- this was performed by looking at the modelling realm, frequency / temporal sampling as well as spatial shape of the variables and automatically assigning them to a new table. A mapping between CMIP6 variables and those in these tables can be found in this Jupyter notebook.

The CMIP6Plus_CV.json is automatically generated from the CVs and can be found within the CMIP6Plus_CVs repository (under the CVs directory). Changes to the CVs, i.e. for registering models, should be requested through the issue tracker on that repository.

To make use of the tables with CMOR consider the following alongside the API documentation;

  • inpath argument to cmor_setup call specifies the base directory for tables and CVs. This should be the location of the MIP tables themselves.
  • JSON input file fields:
    • _controlled_volcabulary_file takes the relative path (relative to inpath) for the CVs file
    • _AXIS_ENTRY_FILE takes the relative path to MIP_coordinate.json, e.g. "../Auxillary_files/MIP_coordinate.json"
    • _FORMULA_VAR_VILE takes the relative path to MIP_formula_terms.json, e.g. "../Auxillary_files/MIP_formula_terms.json"

Note that setting the entry "_cmip6_option" to "CMIP6" currently enforces compliance with all controlled vocabulary fields. Without this certain fields may vary relative to to controlled vocabularies.