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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions