Skip to content

Backend portability: Dimension naming is recommended, not required #588

Description

@emmanuelmathot

Gap 1 — Dimension naming is recommended, not required

The openEO documentation (Data Cubes) presents t, bands, x, y as the canonical dimension names. This is also what most backends return, and is the outcome of the discussion in #208. However, the spec itself only recommends these names — it does not require them, and at least one backend we tested uses time instead of t.

The practical consequence: a single call like

cube.reduce_dimension(dimension="t", reducer="first")

raises a validation error on a backend that exposes the dimension as time. Conversely, dimension="time" is rejected on a spec-aligned backend that says "valid dimensions are bands, x, y". The same applies to apply_dimension(dimension="bands" | "spectral", ...).

Clients can work around this by reading the cube's dimensions() at build time or by keeping a per-endpoint lookup. Neither is a portability story a UDP library should have to carry.

Suggested direction. Either:

  • Promote the existing recommendation to a requirement for common dimension types (temporal → t, bands → bands, spatial → x / y), or
  • Add a spec-level compliance test and mark backends that deviate as non-conformant, or
  • At minimum, provide a standard way (process or capability field) to query the canonical dimension names a backend uses, so clients don't have to introspect every cube.

Prior discussion: #208 (closed) established the names as a recommendation but explicitly acknowledged that backends may not follow it.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions