Releases: PCMDI/cmor
Releases · PCMDI/cmor
CMOR 3.9.0
Features
- Added the functions
cmor_set_quantize
andcmor_set_zstandard
for exposing the data quantization and Zstandard compression utilities of the netCDF library since version 4.9.0. - MacOS arm64 builds for use on Apple silicon (M-series CPUs).
Bugfixes
- The attribute
realm
will not be written to files if it is not specified in therequired_global_attributes
of a controlled vocabulary.
Changes
- End of support for Python 3.8.
- Compatibility with the Numpy 2.0 C API.
- Use netCDF's default chunking rather than setting chunk size to 1 for coordinates/axis such as
time
to enhance performance of reading netCDF variables.
Closed Issues
CMOR 3.8.0
CMOR 3.8.0 is the first release built to work natively with the mip-cmor-tables, CMIP6Plus_CVs, input4MIPs_CVs and obs4MIPs_CVs. The software has been generalized to allow more broad usage following the new CVs templates noted above.
Changes
- CMOR will throw an error if it processes a JSON file that contains null values. Used to avoid segfaults.
- When processing attributes in variable entries, any JSON list values will be converted into a space-separated lists string. Used for the dimensions and modeling_realm variable attributes.
- Modeling realm strings were being split by spaces and only had the first word found stored in the realm attribute of the file. This has been fixed by storing the whole realm string.
- The
further_info_url
attribute is no longer created automatically unless it is listed in the CV'srequired_global_attributes
list.
Closed Issues
CMOR 3.7.3
Changes
- CMOR now supports Python 3.12.
Bugfixes
- Fixed error caused when
cmor_write
writes arrays with more than 231-1 elements. - Fixed segmentation fault casued when the value for
further_info_url
in the user input is an empty string or only whitespace. - Fixed implicit declaration compilation error in
cmor.c
.
Closed Issues
CMOR 3.7.2
Changes
testsrunner
is no longer being used for running CMIP6 CV tests, which are now a part ofmake test
.- CDMS2 is no longer supported.
Bugfixes
- Removed deprecated NumPy types
numpy.float
andnumpy.int
, which caused errors with NumPy >=1.24.
Closed Issues
CMOR 3.7.1
Changes
- End of support for Python 3.7.
- CMOR now supports Python 3.11.
- The Python 3.11 build of CMOR will not support CDMS2.
Bugfixes
- Fixed issue with Python 3.10 build of PrePARE where it was skipping files due to an issue with the
check_filename
function. - CMOR failed when doing multiple writes to a dataset with seasonal forecast time coordinates ('reftime' and 'leadtime'). Fixed by checking if the 'leadtime' coordinate already exists.
Closed Issues
CMOR 3.7.0
Features
- CMOR automatically sets attributes in a dataset using the registered data listed in a project CV's source_id entry (e.g.
Tables/CMIP6_CVs.json
orTables/input4MIPs.json
), reducing the input requirements from a user. This feature can be overridden by setting the attributes in the user input file (e.g.user_input.json
). - Added ability to write
reftime
andleadtime
coordinates to datasets for forecast data.
Changes
- End of support for Python 3.6.
- CMOR now supports Python 3.10.
- The CCLRC license has been replaced with a BSD-3 license.
- Updated warning and error messages from retired listserv email address [email protected] to [email protected].
- Updated CMOR and CF versions listed in the Fortran wrapper.
Bugfixes
- PrePARE would crash if the
experiment_id
attribute is not present in a dataset. It will now check for the presence ofexperiment_id
before further processing the dataset. - PrePARE was generating errors when processing
cell_methods
values that contained multiple comments, which are substrings in parentheses embeded in the values. PrePARE can now handlecell_methods
values containg mulitple comments. - Fixed error caused by an error message exceeding the maximum string size when an attribute value cannot be validated with a list of values from the CV.
- Corrected typo in udunits initialization message.
Closed Issues
- Remove Python 3.6 build
- Issue with json-c and Python 3.6 builds
- implement lead time coordinate
- Illegal instruction error when region attribute is not found in the CV
- Python 3.10 support
- PrePARE UnicodeDecodeError when scanning dummy NO_ATTRIBUTES.nc netCDF file
- Typo correct in UDUNIT initialization
- PrePARE is having issues handling handling cell_methods values containing multiple comments
- License template update
- Cleaning up CMOR input file vs registered content sources
- Update CMOR mailing list email address
- Add BSD-3 license to repo
CMOR 3.6.1
CMIP6_CVs-6.2.55.1/DREQ-01.00.33/CMOR-3.6.1
Changes
- End of support for Python 2.7.
- CMOR now supports Python 3.9.
Bugfixes
- Fixed handling of Unicode string values in
cmor.axis
for the Python API.
Closed Issues
CMOR 3.6.0
CMIP6_CVs-6.2.52.2/DREQ-01.00.31/CMOR-3.6.0
Features
- Added the option
--hide-progress
to PrePARE to remove the number of files completed while processing files. - Added the option
--no-text-color
to PrePARE to remove the color code from the terminal output. - Added the option
--version
to PrePARE to output the version of CMOR/PrePARE in use.
Changes
- CMOR now supports Python 3.8.
- Changed
Control Vocabulary
toControlled Vocabulary
. - Improved error messages for supported data types in pywrapper.py.
- Removed gfortran 4.8.5 requirement for OSX.
- CMOR will now allow axis values to be within 1.e-6 fractional error for
valid_min
andvalid_max
. cmor_CV_checkSourceID
will throw an error ifsource
is not found in asource_id
section of the CV.- In the function
cmor_CV_checkParentExpID
, ifparent_experiment_id
is "" or not found in the variable file, then it will be set to "no parent" if that is the valid value forparent_experiment_id
in the CV. - When
parent_experiment_id
is a value other than "no parent" in the functioncmor_CV_checkParentExpID
, it will check the attributesparent_activity_id
,branch_method
,branch_time_in_child
,branch_time_in_parent
,parent_time_units
,parent_variant_label
,parent_source_id
, andparent_mip_era
, and only return an error after going through all of them.
Bugfixes
- Improved how comments in the
cell_methods
attribute are handled. - Fixed error message for
false_northing
incmor_set_grid_attribute
- Fixed issue with PrePARE not counting errors for attribute errors.
- Fixed errors when processing the
nwdFracLut
variable in theEmon
table. - PrePARE will now check if
external_variables
exists when values are present incell_measures
. - PrePARE will now give an error if the
activity_id
is wrong.
Closed Issues
- Python 3.8 support
- Change "Control Vocabulary" to "Controlled Vocabulary"
- in PrePARE, logfile-friendly output format
- Handling comments in "cell_methods" in PrePARE
- Copy-&-paste error in error message on
false_northing
andprojection_y_coordinate
in cmor_grids.c
- Error message mis-match
- Recursive directory output issue / error vs warning
- Remove fortran compiler 4.8.5 requirement for OSX
- Error that doesn't cause failure when producing mrsos for Lmon
- nwdFracLut in Emon
- Unclear why Files SKIPPED
- Wrong activity_id warning (should be error?), etc..
- add --version command line argument to PrePARE
- Error handling in cmor_CV.c
3.5.0
CMIP6_CVs-6.2.35.3/DREQ-01.00.31/CMOR-3.5.0
Changes
- CMOR now supports Python 3.6 and 3.7.
- PrePARE will stop if CMIP6_coordinate.json, CMIP6_formula_terms.json, and CMIP6_CV.json are missing from the table directory.
- Changed missing value replacement history message to include "corresponding data".
- The UUID library ossuuid has been replaced with libuuid
- CMOR will now use the json-c library installed from conda-forge instead of building its own library.
- In the Python API, CMOR will throw an error if the number of time steps being passed to
cmor.write
is less thanntimes_passed
. - If the number of timesteps written is less than the length of the time axis, CMOR will give a warning when closing.
- cdms2 has been replaced with Netcdf4 for use in PrePARE.
Bugfixes
- Fixed bug in PrePARE where it crashes when it does not find the
_FillValue
attribute in a file. - Fixed error caused by variables having both a singleton dimension and a generic level.
- Fixed bugs in PrePARE where it was not processing the attribute
cell_measures
correctly. - Fixed bug caused by
cmor.write
in the Python API when the number of time steps passed is less than thentimes_passed
argument. - Fixed bug when handling the
olevhalf
dimension. - Fixed error caused by variables having multiple singleton dimensions.
- Fixed bug when using CMOR in Append mode for instantaneous variables.
- Fixed bug caused by multiple instances of CMOR running a file permissions test by writing a test file. Each test file will now have the instance's PID in the file name.
- Fixed bug where the frequency of the variable used in the last call to
cmor_write
is applied to the output file name of all variables when callingcmor_close_variable
orcmor_close
.
Closed Issues
- Update cmor3 for python3
- PrePARE missing _FillValue exit
- cmor should stop if coordinates table is not present
- singleton and generic level
- PrePARE cell_measures changed in 3.4.0
- cmor.write segfault related to timesteps
- Question about handling of missing values in cmor_variable.c
- Bug in treating olevhalf
- switch from ossuuid to libuuid
- Two or more singleton dimensions (bs550aer)
- vendorizing json-c
- Append mode for instantaneous variables
- not passing enough times as data passes
- not writing enough times should issue a warning at exit
- Builds breaking from cdms2 issue related to libnetcdf
- Falsely alerting missing write permissions cmor.c#L1683
- CMOR using incorrect frequencies for variables when closing programs with multiple frequencies.
CMOR 3.4.0
CMIP6_CVs-6.2.15.0/DREQ-01.00.29/CMOR-3.4.0