Open-EO / Open-EO/openeo-python-client

Simpler or more predictable dimension detection with `load_stac`?

Open
#743 2 comments 0 reactions 1 assignee View on GitHub

@soxofaan is already working on this.

Since Feb 27, 2025.

  • #739 by @soxofaan — open
api compliancy collect feedback documentation STAC and load_stac usability
Dominant language
Python
Stars
217
Forks
56
Avg merge
1d 22h
Merged PRs (30d)
2

Description

We recently had various discussion that working with load_stac based cubes can hard because it is not always clear if certain dimensions are present. Which causes confusion down the line, e.g. "can I drop the time dimension?" or "should I re-add this dimension before merge_cubes"?

STAC is pretty flexible, and it is not always very clear if a load_stac'ed datacube is expected to have a temporal dimension for example. Moreover in openEO, it's also important to know the dimension names to properly handle openEO processes like reduce_dimension/apply_dimension/..., and this has to be consistent both at client and backend side.

With the STAC datacube extension it is possible to explicitly list and name dimensions, which seems to be the source of truth for this problem. Note that this extension allows to explicitly omit a dimension, and as such should not be assumed to be present in the data cube.

However, when this datacube extension is not available in the STAC metadata, it seems best, based on discussion with users, to just naively assume a typical 4D EO datacube:

  • spatial dimensions "x" and "y"
  • temporal dimension "t"
  • band dimension "bands"

(based on the openEO recommendation on openEO collection dimension names)

Contributor guide

No contributing guide indexed for this repository

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.