Skip to content

Conversation

@rbeucher
Copy link
Member

@rbeucher rbeucher commented Dec 16, 2025

Draft: CMIP7 Vocabulary Integration Setup

🚧 This is a Draft Pull Request 🚧

This PR is created as a draft to establish the foundation for CMIP7 vocabulary integration in ACCESS-MOPPy. It is not ready for merge and serves as a preparation step for upcoming CMIP7 support.

Purpose

This draft PR addresses the initial setup required to integrate CMIP7 controlled vocabularies into ACCESS-MOPPy by updating the CMIP7_CVs submodule configuration.

Changes Made

  • Updated CMIP7_CVs submodule: Configured to point to the production branch of WCRP-CMIP/CMIP7-CVs

Next Steps

This draft establishes the groundwork for:

  1. CMIP7Vocabulary Class Implementation: Create a new vocabulary processor class similar to CMIP6Vocabulary but adapted for CMIP7 specifications
  2. CMIP7 Table Integration: Support for CMIP7 CMOR tables and coordinate files
  3. Metadata Generation: CMIP7-compliant global attributes and metadata handling
  4. Backward Compatibility: Ensure existing CMIP6 functionality remains unaffected
  5. Testing Framework: Comprehensive tests for CMIP7 vocabulary processing

Current Status

  • ✅ CMIP7_CVs submodule updated to production branch
  • ⏳ CMIP7Vocabulary class implementation (pending)
  • ⏳ CMIP7 table support (pending)
  • ⏳ Integration tests (pending)
  • ⏳ Documentation updates (pending)

Implementation Plan

Phase 1: Core CMIP7Vocabulary Class

  • Create CMIP7Vocabulary class in vocabulary_processors.py
  • Adapt directory paths for CMIP7_CVs and cmip7-cmor-tables
  • Implement CMIP7-specific controlled vocabulary loading
  • Handle CMIP7 experiment, source, and variable metadata

Phase 2: CMIP7 Table Support

  • Update table loading for CMIP7 format
  • Implement CMIP7 coordinate handling
  • Support new CMIP7 variable attributes and properties
  • Handle CMIP7-specific external variables

Phase 3: Metadata Generation

  • Update global attributes for CMIP7 compliance
  • Implement CMIP7 license handling
  • Support new tracking ID format if applicable
  • Update further_info_url for CMIP7

Phase 4: Testing & Validation

  • Unit tests for CMIP7Vocabulary class
  • Integration tests with real CMIP7 data
  • Backward compatibility tests for CMIP6
  • Performance benchmarking

Technical Considerations

Key Differences from CMIP6

  • Different controlled vocabulary structure
  • Updated metadata requirements
  • New experiment and source definitions
  • Modified licensing and attribution

Compatibility

  • Maintain full backward compatibility with existing CMIP6 workflows
  • Implement version detection to automatically choose appropriate vocabulary
  • Ensure seamless transition for users

Review Notes

This PR is marked as draft because:

  • It only contains submodule updates, not the full CMIP7 implementation
  • The actual CMIP7Vocabulary class and related functionality are not yet implemented
  • Additional testing and validation are required before production use
  • Need community feedback on CMIP7 implementation approach

Please do not merge until all CMIP7 integration components are complete and thoroughly tested.

Related Issues

  • Link to relevant GitHub issues
  • Reference CMIP7 specification documents
  • Community discussion threads

Note: This draft PR sets up the foundation for CMIP7 support. Subsequent commits will add the complete CMIP7 vocabulary processing capabilities while maintaining backward compatibility with CMIP6.

@rbeucher rbeucher marked this pull request as draft December 16, 2025 23:50
@rbeucher
Copy link
Member Author

@rhaegar325 I'll push the changes progressively

@codecov
Copy link

codecov bot commented Dec 16, 2025

Codecov Report

❌ Patch coverage is 10.76555% with 373 lines in your changes missing coverage. Please review.
✅ Project coverage is 50.97%. Comparing base (c4e9e58) to head (45bfaa9).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
src/access_moppy/vocabulary_processors.py 11.46% 278 Missing ⚠️
src/access_moppy/utilities.py 8.91% 92 Missing ⚠️
src/access_moppy/base.py 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #149      +/-   ##
==========================================
- Coverage   57.55%   50.97%   -6.58%     
==========================================
  Files          18       18              
  Lines        2403     2819     +416     
==========================================
+ Hits         1383     1437      +54     
- Misses       1020     1382     +362     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

3 participants