Updates for writing CMIP7 datasets.

Features

  • The branding_suffix of variables will be tested against the branding_suffix template provided by the CV. Its components temporal_label, vertical_label, horizontal_label, and area_label will have their values validated by their corresponding sections in the CV.
  • mip_era and data_specs_version will be set from the CV if they are single string values.
  • frequency can be defined in the user input JSON or by calling cmor_set_cur_dataset_attribute prior to creating the time axis and variable that uses the axis.
  • Interval values for the frequencies are acquired from the CV if the current dataset has a frequency. If the interval value used for the time axis doesn’t match the interval values of the frequency used by the variable, then CMOR will throw an error.
  • region can be defined in the user input JSON or by calling cmor_set_cur_dataset_attribute prior to calling cmor_write.
  • Table attributes type, positive, valid_max, valid_min, ok_max_mean_abs, and ok_min_mean_abs can be acquired from the header of tables and used as the default for a table’s variable entries. The are overwritten by a variable entry’s own version of these attributes if present.
  • variable_title and brand_description can now be variable attributes if defined in the variable entry.
  • _cmip7_option should be set in the user input JSON to enable CMIP7 global attribute checking similar to CMIP6 but without subexperiment tests. parent_mip_era will be set to CMIP7 for all datasets that are written with _cmip7_option set.

Bugfixes

  • Resolved compiler warnings when building CMOR library source.
  • Resolved the issue where quantization was applied to axis, grid, and zfactor values rather than just the variable matrix. Quantization will now only be applied to the variable matrix.

Changes

  • Updated quantization feature to meet CF compliance.
  • If a global attribute is required and has a section in the CV that is an object with key and single string value pairs, then that attribute’s value will be compared against the keys in that object.

Closed Issues

GitHub