Repository navigation
2.4.0b1 (24/09/2026)
Beta Release v2.4.0b1
This beta release introduces the new coordinate-validation framework for CMIP7, ESGVOC global-attribute validation ncattvalid and improved time-axis checks.
It is intended for early testing by data providers before the final 2.4.0 release.
Highlights
Coordinate validation
- Added the new coordinate-validation framework introduced in PR #81.
- Added ESGVOC-backed CMIP7 coordinate validation.
- The complete coordinate catalogue is loaded once during checker setup and reused by the coordinate checks.
- Added validation for:
- ordinary one-dimensional coordinates;
- scalar and auxiliary coordinates;
- coordinate identity, dimensions, storage type, and structure;
- coordinate attributes and requested values;
- monotonicity and stored direction;
- physical ranges and configured valid minimum and maximum values;
- bounds and climatology variables;
- bounds dimensions, shape, type, values, containment, overlap, and direction;
- horizontal grids and grid topology;
- latitude and longitude coordinates;
- vertical coordinates;
- formula terms, computed standard names, and z-factor structure;
- text-valued auxiliary coordinates and their associations with data variables.
- Added the
COORD000toCOORD012result families:COORD000: ESGVOC catalogue initialization;COORD001: coordinate existence, identity, type, and structure;COORD002: data-variable dimension names and order;COORD003: required coordinate attributes;COORD004: recommended attributes and unexpected metadata;COORD004a: attributes allowed when unset;COORD005: coordinate monotonicity and direction;COORD006: configured valid minimum and maximum values;COORD007: requested coordinate and bounds values;COORD008: bounds and climatology structure and values;COORD009: recommended bounds and vertex naming;COORD010: coordinate and site associations;COORD011: horizontal grid topology;COORD012: vertical coordinates and formula terms.
- Coordinate identity and type are determined from ESGVOC rather than inferred from the file metadata.
- Missing, non-finite, and masked coordinate values are retained during validation and reported explicitly.
- A failure to initialize the ESGVOC coordinate catalogue now produces a single
COORD000result, while dependent checks are skipped cleanly. - Improved reporting so that structural errors remain required checks while naming and metadata recommendations use the configured lower severity.
- Removed redundant CMIP7
time.unitsandtime.boundsrules when the corresponding metadata is provided by ESGVOC.
Time-axis validation
- Fixed floating-point precision failures in
TIME001, including failures observed on long 1-hour time axes. - Improved time-squareness calculations for subdaily, daily, monthly, seasonal, annual, and multi-year frequencies.
- Added validation of regular bounds spacing and regular or climatological interval midpoints.
- Expected time bounds are now generated independently instead of trusting potentially invalid bounds from the file.
- Prevented invalid bounds from being used as the reference for subsequent time-axis checks.
- Improved the separation of responsibilities between time checks:
VAR005validates that time values are strictly increasing;TIME001validates time squareness, bounds spacing, and interval midpoints;TIME002validates time-bounds dimensions, shape, and containment;TIME003validates the filename time range.
- Improved climatological time validation, including representative midpoints and coverage-derived filename labels.
- Improved filename time-range validation for:
- climatological datasets;
- subdaily and coarse frequencies;
- label precision;
- project-specific climatology suffixes.
- Improved handling of representative timestamps so that no incorrect additional half-interval is applied.
- Added support for the
juliancalendar. - Added clearer and more consistent time-check reporting.
ESGVOC global-attribute validation
- ESGVOC
ncattvalidis now the source of truth for supported global-attribute definitions and allowed values. - Project TOML files retain:
- check severity;
- project-specific rules;
- conditional requirements;
- rules that are not available from ESGVOC.
- Attributes that are not currently represented by ESGVOC continue to be validated by the existing attribute suite.
- Preserved the existing
ATTR001toATTR004check identifiers. - Preserved the configured high, medium, and low severity levels.
- Required and recommended wording is now derived from the configured severity.
- Improved handling and reporting of:
- missing required attributes;
- invalid controlled-vocabulary terms;
- unavailable ESGVOC definitions;
- attributes that remain governed by project-specific configuration.
CMIP7 variable metadata
- CMIP7 branded-variable lookups now use the project-specific
branded_variablecollection. - Removed the CMIP7 dependency on the Universe
known_branded_variabledescriptor for these lookups. - Added fallback handling for project variable metadata.
- Improved registry identifier matching.
- Improved normalization of registry metadata, including compatibility between
unitsand the legacycf_unitsfield. - Preserved compatibility with existing project-specific validation where the required metadata is not available from the registry.
Mapping and configuration fixes
- Corrected
tasmaxandtasminmappings:Amon.tasmaxnow usestas_tmaxavg-h2m-hxy-u;Amon.tasminnow usestas_tminavg-h2m-hxy-u;- daily
tasmaxandtasmincontinue to usetas_tmax-h2m-hxy-uandtas_tmin-h2m-hxy-u.
- Corrected the
mrsosbranded-variable mapping. - Corrected the
simassbranded-variable mapping. - Added the missing
Omon.prsnmapping. - Updated branded-variable mappings for CMIP6, CMIP6Plus, and C3S-CMIP6.
- Updated time-unit patterns and supported calendar values.
- Added compatibility with both current and legacy ESGVOC unit metadata.