There is currently a limitation in the CoverageJSON schema whereby certain logically independent axes cannot be modelled as first‑class dimensions within a single coverage. Instead, these cases are typically forced into the use of coverage collections.
This issue proposes adding support for an additional explicit dimension in the CoverageJSON schema, to allow such axes to be represented directly and consistently alongside existing dimensions (e.g. x, y, z, t).
A common and concrete example is ensemble data. Ensembles represent a dimension that users frequently need to subset across (e.g. selecting specific ensemble members, computing statistics across members, or visualising individual members).
From a user and client perspective, ensemble behaves like a true dimension:
- Users expect to subset, slice, or aggregate across ensemble members in the same way as they would across time or vertical levels.
- Clients often want to request a single ensemble member or a small subset of members efficiently.
- Downstream processing frequently treats ensemble as an axis over which operations are performed.
Modelling ensemble as a coverage collection rather than a dimension is inefficient and semantically awkward in this case:
- It requires clients to iterate over multiple coverages to perform what is conceptually a single subsetting operation.
- It complicates request syntax and client logic, especially for APIs that already support dimension‑based subsetting.
- It prevents clear expression of the full multidimensional structure of the data within a single coverage object.
An example of a proposed update to the CoverageJSON schema is attached to this issue. This example illustrates how an additional dimension 'e' (extra) could be declared explicitly within a single coverage, including its coordinates and size, while remaining consistent with the existing schema structure and conventions.
This change would improve expressiveness for multidimensional datasets, reduce client‑side complexity, and better align the schema with common usage patterns for ensemble and other similar data types.
extended_covjson_schema_example.json
There is currently a limitation in the CoverageJSON schema whereby certain logically independent axes cannot be modelled as first‑class dimensions within a single coverage. Instead, these cases are typically forced into the use of coverage collections.
This issue proposes adding support for an additional explicit dimension in the CoverageJSON schema, to allow such axes to be represented directly and consistently alongside existing dimensions (e.g. x, y, z, t).
A common and concrete example is ensemble data. Ensembles represent a dimension that users frequently need to subset across (e.g. selecting specific ensemble members, computing statistics across members, or visualising individual members).
From a user and client perspective, ensemble behaves like a true dimension:
Modelling ensemble as a coverage collection rather than a dimension is inefficient and semantically awkward in this case:
An example of a proposed update to the CoverageJSON schema is attached to this issue. This example illustrates how an additional dimension 'e' (extra) could be declared explicitly within a single coverage, including its coordinates and size, while remaining consistent with the existing schema structure and conventions.
This change would improve expressiveness for multidimensional datasets, reduce client‑side complexity, and better align the schema with common usage patterns for ensemble and other similar data types.
extended_covjson_schema_example.json