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.
    • UPDATE: Global attributes listed in a CV’s required_global_attributes section that also have sections in the CV that are JSON objects will have their values validated against the keys in those objects. This enables the validation of experiment_id and source_id regardless of whether _cmip6_option or _cmip7_option were set.

      If you do not want experiment_id, source_id, or other attributes to be validated, then the workaround suggested here is to remove those attributes from required_global_attributes.

      Validation of source_id and source will still happen if the attribute further_info_url is set to a non-empty string.

Closed Issues

GitHub