Changelog#
Versions follow Semantic Versioning (<major>.<minor>.<patch>).
Backward incompatible (breaking) changes will only be introduced in major versions with advance notice in the Deprecations section of releases.
CMIP Branded Variable Mapper v0.13.1 (2025-12-18)#
:new: Features#
- Added support for the vertical label
ols(#38)
CMIP Branded Variable Mapper v0.13.0 (2025-12-10)#
:warning: Breaking Changes#
- Updated generation of area labels. The labels are now set based on keywords only, all searching for
whereorarea: meanhas been removed. Most notably, this means the cell methodsarea: time: mean (over land and sea ice)will now get the area labellsiwhereas previously it was assignedu. (#36)
CMIP Branded Variable Mapper v0.12.0 (2025-09-25)#
:warning: Breaking Changes#
- Update horizontal label generation to be in line with Table F3 of the specification document as at September 24 2025.
The horizontal label "hxys" is now just "hs", "hys" is now "hyb". (#34)
CMIP Branded Variable Mapper v0.11.0 (2025-09-24)#
:warning: Breaking Changes#
- Added support for "tminavg" and "tmaxavg" in line with updates to Table F1 of Taylor et al. as at 22 September 2025
If you have a variable with "time4" as a dimension and "time: max" ("time: min") in the cell methods, the temporal label is now "tmaxavg" ("tminavg") rather than "ti" as it was previously.
In addition, if you have "time: max", "time: min" or "time: sum" in your cell methods but do not have a "time" dimension, your temporal label will now be "ti" rather than its previously value. (#35)
:wrench: Trivial/Internal Changes#
CMIP Branded Variable Mapper v0.10.0 (2025-08-27)#
:tada: Improvements#
- Added support for variables that are unmasked over both land and sea ice (see WCRP-CMIP/Variable-Registry#34) (#32)
CMIP Branded Variable Mapper v0.9.0 (2025-07-28)#
:warning: Breaking Changes#
- Updated to new branding logic as specified in Taylor et al. accessed on 2025-07-24.
This leads to the following changes:
- temporal labels
- if there is "time: max" in cell methods, the temporal label is now "tmax"
- if there is "time: min" in cell methods, the temporal label is now "tmin"
- vertical labels
- if there is "sdepth" in dimensions, the vertical label is now "sl"
- if there is "sdepth10cm" in dimensions, the vertical label is now "d10cm"
- "sdepth1" in dimensions is no longer supported so the vertical label would now be "u"
- if there is "sdepth100cm" in dimensions, the vertical label is now "d100cm"
- "sdepth10" in dimensions is no longer supported so the vertical label would now be "u"
- if there is "olevel" in dimensions, the vertical label is now "ol"
- if there is "olevhalf" in dimensions, the vertical label is now "olh"
- if there is "alevel" in dimensions, the vertical label is now "al"
- if there is "alevhalf" in dimensions, the vertical label is now "alh"
- if there is "oplayer4" in dimensions, the vertical label is now "op4"
- "oplev4" in dimensions is no longer supported so the vertical label would now be "u"
(#30)
CMIP Branded Variable Mapper v0.8.0 (2025-07-23)#
:warning: Breaking Changes#
- Updated minimum numpy version to 1.26.0, the earliest that is not in end-of-life. Fixed the numpy pin for Python 3.13 to >=2.1.0, the first numpy version which supported Python 3.13. (#27)
CMIP Branded Variable Mapper v0.7.1 (2025-07-23)#
:wrench: Trivial/Internal Changes#
CMIP Branded Variable Mapper v0.7.0 (2025-06-20)#
:warning: Breaking Changes#
- Updated to the new logic which has been specified for the algorithm.
This changes the outputs in a few key cases:
- dimensions of "sdepth10" now lead to a vertical label of "d100cm" for consistency with how "sdepth1" is handled
- support for more dimension levels (e.g. "depth300m", "depth700m") has been added
- the horizontal label "Ht" is now "ht" (fixed after there was a fix to a typo in the specification document)
(#21)
:new: Features#
- Extracted [cmip_branded_variable_mapper.area_label], [cmip_branded_variable_mapper.horiztonal_label], [cmip_branded_variable_mapper.temporal_label] and [cmip_branded_variable_mapper.vertical_label]. This does not affect the behaviour of [cmip_branded_variable_mapper.map_to_cmip_branded_variable] but it does clarify the logic and structure of the various pieces. (#23)
:bug: Bug Fixes#
- Fixed a bug in the temporal label generation. Previously, if a variable had "time" in its name (but was not actually equal to "time"), the temporal label would nonetheless be "tavg". This has now been fixed so that "ti" is returned for unrecognised dimensions, even if they contain "time" as a substring. (#22)
CMIP Branded Variable Mapper v0.6.0 (2025-04-22)#
:wrench: Trivial/Internal Changes#
CMIP Branded Variable Mapper v0.5.0 (2025-04-22)#
:bug: Bug Fixes#
- Fixed the functionality so that it returns the latest CMIP-7 branded variable names according to the newest updated table (See this table: https://docs.google.com/document/d/149Tkz37whSQMFVbEYZMYbdqIctHbufpbJ_VMlzHyKuY/edit?tab=t.0). (#18)
CMIP Branded Variable Mapper v0.4.0 (2025-04-16)#
:warning: Breaking Changes#
- renamed 'cmip_branded_variable_mapper/mapper_old.py' to 'cmip_branded_variable_mapper/mapper.py' and updated dictionary to match naming conventions in Appendix F of this paper draft as of April 14 2025 (#16)
:books: Improved Documentation#
- Updated the docs based on feedback (specifically, https://github.com/znicholls/CMIP-branded-variable-mapper/issues/4#issuecomment-2734688163). (#12)
CMIP Branded Variable Mapper v0.3.0 (2025-03-18)#
:warning: Breaking Changes#
-
- Renamed
cmip_branded_variable_mappertomap_to_cmip_branded_variable
- Renamed
- Changed the
dimensionsargument to betuple[str, ...]rather thanstr(to remove handling of whitespace and string searching)
(#9)
:tada: Improvements#
- Updated the mapping to be able to reproduce the expected translation for the old variable names (#8)
:books: Improved Documentation#
- Added documentation that shows how to use the API (#10)
CMIP Branded Variable Mapper v0.2.0 (2025-03-10)#
🆕 Features#
- Added basic functionality. Mapping for almost all varaibles is now supported. The failing cases are ones with basin in their dimensions. (#6)