Skip to content

Conversation

@lewisjared
Copy link
Contributor

Summary

  • Fix validate_cmec_bundles to check that bundle dimensions are a subset of diagnostic facets, rather than requiring exact equality
  • Different data requirements (CMIP6 vs obs4MIPs) have different group_by fields that get prepended as dimensions via prepend_dimensions, so bundle dimensions legitimately vary per execution

Fixes the regional-historical-trend/obs4mips test case where the bundle produces (source_id, variable_id, region, metric) but facets also includes grid_label and member_id from the CMIP6 group_by.

Test plan

  • TestValidateCmecBundles unit tests pass (3/3)
  • All pre-commit hooks pass

Add CMIP7 as an alternative data source for all 16 ESMValTool
diagnostics using OR-logic (tuple-of-tuples) in data_requirements.

Infrastructure:
- Add CMIP7 to FACETS mapping in recipe.py with ESMValCore-native facets
- Add CMIP7 to drs/rootpath config in build_cmd
- Add get_cmip_source_type() helper for update_recipe methods
- Add CMIP7 to build_execution_result source type detection

Per-diagnostic pattern:
- CMIP7 requirements use frequency instead of table_id in filters
- Use variant_label instead of member_id in group_by
- Use SourceDatasetType.CMIP7 for AddSupplementaryDataset
- update_recipe methods use get_cmip_source_type() dynamically

Special handling:
- cloud_scatterplots: rename get_cmip6_data_requirements to
  get_cmip_data_requirements, use dynamic project in suptitle
- climate_at_global_warming_levels: custom cmip7_matching_facets
  without table_id
- regional diagnostics: add CMIP7 as third OR-alternative alongside
  CMIP6/obs4MIPs, plus CMIP7 test data specs
Replace repo/tag_or_commit/url in CondaDiagnosticProvider with a
pip_packages attribute that handles all dev installs uniformly.
Pin ESMValCore to main branch commit 71ab2196 which adds CMIP7 support.
…branding

ESMValCore dev version replaced rootpath/drs/search_esgf config with
a projects-style format using LocalDataSource. Update config generation
to match. Also add 3D atmospheric variables (ta, ua, va, hus, etc.)
to VARIABLE_BRANDING with vertical_label 'al', and fix symlink
re-creation in prepare_climate_data.
CMIP7 test cases used table_id: "Amon" which excludes areacella (an fx
variable). Replace with frequency: ["fx", "mon"] to match the CMIP6
test case pattern, ensuring fixed-field variables are fetched.
Use create_cmip7_filename() to generate proper CMIP7 filenames
(e.g., tas_tavg-h2m-hxy-u_mon_glb_gn_CanESM5_historical_r1i1p1f1_185001-201412.nc)
instead of keeping CMIP6 filenames. Update the ESMValTool CMIP7
filename_template to match the official MIP-DRS7 specification.
Different data requirements (e.g. CMIP6 vs obs4MIPs) have different
group_by fields, so bundle dimensions vary per execution. The validation
now checks that bundle dimensions are a subset of diagnostic facets
rather than requiring an exact match.

Fixes obs4MIPs test case for regional-historical-trend where the bundle
has (source_id, variable_id, region, metric) but facets also include
grid_label and member_id from the CMIP6 group_by.
@lewisjared lewisjared closed this Feb 10, 2026
@lewisjared lewisjared deleted the fix/validate-cmec-bundle-subset-check branch February 10, 2026 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant