pydata / pydata/xarray

Support CF Aggregation Variables

Open
#11,072 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement topic-backends
Dominant language
Python
Stars
4.2k
Forks
1.4k
Avg merge
2d 15h
Merged PRs (30d)
14

Description

Is your feature request related to a problem?

New and fresh from the 1.13 CF conventions released in December 2025 : the « Aggregation variable », a new syntax for creating ncml-like aggregation within valid files (mostly netCDF).

https://cfconventions.org/Data/cf-conventions/cf-conventions-1.13/cf-conventions.html#aggregation-variables

The idea is to explicitly map external variables (i.e. in another file) to section of a "virtual" variable in the main file.

Describe the solution you'd like

Would be nice if xarray was able to open these transparently, with the correct combination of combine_by_coords and such.

Describe alternatives you've considered

As this is a I/O thing, I thought it would be best to be done here, instead of cf-xarray which concerns itself with more advance/high-level stuff. And making xr.open_dataset transparent to this seems a more user-friendly idea than having an extra function from an external package handle this.

Additional context

This new thing was a standalone extension to the CF conventions (under the name CFA) since 2023 (at least) and is already implemented by package cf-python.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the CF 1.13 aggregation-variables specification linked in the issue, then inspect the existing xr.open_dataset and combine_by_coords behavior. Done means aggregation variables can be opened transparently with the correct combination of external data, without requiring a separate user-facing function.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.