CMOR 3.11.0 released!!!
Update CMOR3 with CF CRS container variable; Numerous edge case fixes, license reformulation for CMIP7
Features
- Added the function
cmor_set_crs
used for creating a CF Coordinate Reference System (CRS) container variable. This is similar to the container variable created bycmor_set_grid_mapping
but is namedcrs
instead of the grid mapping name and supports text value attributes. - The
license
attribute can now be generated from a template in the CV file. It requires the user to provide alicense_id
in their input JSON, which determines what license type and URL will be used when generating the license string. The attributeslicense_id
,license_type
, andlicense_url
are not included in the global attributes of a file unless they are listed in the CV’srequired_global_attributes
list.
Bugfixes
- Removed erroneous warning message that says zero time steps were written for a time axis if
cmor_write
was used to write all time steps without setting the ntimes_passed parameter. - Invalid JSON in user input or tables will be caught and throw an error instead of silently causing segmentation faults.
- The minimum supported CMOR version in the header of tables will now be compared as separate major and minor integers against the current CMOR version instead of as a float.
Changes
- Time axis intervals will now be checked when passing time values with
cmor_write
. - To use zstandard compression, the user must disable deflation with
cmor_set_deflate
and then provide a valid zstandard compression level within the range [-131072, 22] usingcmor_set_zstandard
. Performing only one of the two actions will result in no zstandard compression being applied. cmor_write
will throw an error if variable or zfactor data contains NaN values.- Calendars in the CF 1.12 release that are not supported by CMOR (i.e
utc
,tai
,all_leap
, and366_day
) will throw an error message asking users to use another, more common calendar. cmor_time_varying_grid_coordinate
has been deprecated, and will be removed in a future release.
Closed Issues
- warning on timesteps written (#697)
- Adding/augmenting functions to write a CF Coordinate Reference System (CRS) “container variable” (#774)
- Time interval not checked when adding time steps with cmor_write (#791)
- CMOR 3.10 issue with CV structure (#795)
- Correct unexpected behavior of cmor.set_deflate(0,0,0) (#798)
- Correct unexpected behavior of cmor.variable accepting missing_value argument that doesn’t match the data array provided (#802)
- Correct segfault due to poorly defined project_CV.json file (#803)
- Update license_id entry - CMOR 3.10 changes break test (#811)
- Update calendar support to match full CF 1.12 list (#813)
- Test that use
cmor_time_varying_grid_coordinate
incorrectly use it withcmor_write
(#814) - license_id warning truncation bug; and license CV behavior tweaks (#816)
- Catch poorly formatted table and user_input .json files - generate error pointing to errored file (#818)