Skip to content

Pretty _repr_html_ of cube dimension metadata - #955

Draft
soxofaan wants to merge 13 commits into
masterfrom
issue827-cube-metadata-viz
Draft

soxofaan wants to merge 13 commits into
masterfrom
issue827-cube-metadata-viz

Conversation

@soxofaan

@soxofaan soxofaan commented Oct 9, 2026

Copy link
Copy Markdown
Member

for #827

@soxofaan
soxofaan force-pushed the issue827-cube-metadata-viz branch from c24bb72 to fbbf322 Compare October 9, 2026 13:01
@soxofaan

soxofaan commented Oct 9, 2026

Copy link
Copy Markdown
Member Author

Current state of the visualization (just table for now):

image

note that the temporal and spatial extents are still the unfiltered extents of the original collection, instead of the actual cube extents

@soxofaan soxofaan changed the title Rudimentary _repr_html_ of cube dimension metadata Pretty _repr_html_ of cube dimension metadata Oct 9, 2026
@soxofaan
soxofaan requested a balanced review from Copilot October 9, 2026 21:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Temporal extent handling and HTML rendering contain runtime failures for supported metadata and open-ended intervals.

7 open findings
What changed in this PR

Adds richer Jupyter rendering for cube metadata, addressing #827, while tracking temporal extents through filtering operations.

Changes:

  • Adds HTML dimension tables to raster and vector cube representations.
  • Introduces temporal interval intersection and extent markers.
  • Adds rendering tests and a changelog entry.
File Description
CHANGELOG.md Documents the Jupyter representation.
openeo/​dates.py Adds datetime migration note.
openeo/​metadata/​__init__.py Adds rendering and temporal filtering.
openeo/​metadata/​_extents.py Defines special extent markers.
openeo/​metadata/​_jupyter.py Renders dimension metadata tables.
openeo/​rest/​_datacube.py Names process-graph HTML output.
openeo/​rest/​datacube.py Combines metadata and graph rendering.
openeo/​rest/​vectorcube.py Adds metadata rendering to vector cubes.
openeo/​util.py Adds datetime migration notes.
openeo/​utils/​datetime.py Implements datetime intervals.
tests/​metadata/​test_jupyter.py Tests table rendering.
tests/​metadata/​test_metadata.py Tests metadata HTML output.
tests/​rest/​datacube/​test_datacube.py Tests cube HTML composition.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread openeo/metadata/__init__.py Outdated
Comment thread openeo/metadata/_jupyter.py
Comment thread openeo/utils/datetime.py Outdated
Comment thread openeo/utils/datetime.py
Comment thread openeo/metadata/__init__.py
Comment thread openeo/metadata/_extents.py Outdated
Comment thread openeo/rest/vectorcube.py
@soxofaan
soxofaan force-pushed the issue827-cube-metadata-viz branch from 54f4316 to 9b9f13f Compare October 12, 2026 10:19
@soxofaan
soxofaan requested a balanced review from Copilot October 12, 2026 10:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread openeo/utils/datetime.py Outdated
Comment thread openeo/metadata/__init__.py
@soxofaan
soxofaan force-pushed the issue827-cube-metadata-viz branch 2 times, most recently from 281ce2b to a2ab17a Compare October 12, 2026 13:16
@soxofaan
soxofaan requested a balanced review from Copilot October 12, 2026 13:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Half-open temporal filters can currently produce a non-empty metadata extent when the query contains no matching instants.

5 open findings
2 resolved since last review

🧠 Review effort: Balanced

Comment thread openeo/metadata/__init__.py Outdated
Comment thread openeo/metadata/__init__.py Outdated
Comment thread openeo/utils/datetime.py
Comment thread openeo/utils/datetime.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Dynamic temporal bounds can raise errors, and successive filters lose exclusive-end semantics.

1 open finding
5 resolved since last review

🧠 Review effort: Balanced

Comment thread openeo/metadata/__init__.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Successive temporal filters lose end-exclusive semantics and can produce an incorrect non-empty extent.

1 open finding
1 resolved since last review

🧠 Review effort: Balanced

Comment thread openeo/metadata/__init__.py

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Parameterized resampling replaces an unknown coordinate system with EPSG:4326, allowing incorrect spatial metadata filtering.

1 open issue

Review effort: Balanced

Comment thread openeo/metadata/__init__.py
soxofaan added a commit that referenced this pull request Oct 22, 2026
@soxofaan
soxofaan force-pushed the issue827-cube-metadata-viz branch from 140eba7 to d591b11 Compare October 22, 2026 09:27
@soxofaan
soxofaan requested a balanced review from Copilot October 22, 2026 09:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Three resampling test assertions still expect values incompatible with the new unknown-value sentinel.

3 open issues
1 resolved since last review

Review effort: Balanced

Comment thread tests/rest/datacube/test_datacube.py Outdated
Comment thread tests/rest/datacube/test_datacube.py Outdated
Comment thread tests/rest/datacube/test_datacube.py Outdated
@soxofaan
soxofaan force-pushed the issue827-cube-metadata-viz branch from 682af00 to 6ebb220 Compare October 22, 2026 09:40
soxofaan added a commit that referenced this pull request Oct 22, 2026
soxofaan added a commit that referenced this pull request Oct 22, 2026
soxofaan added a commit that referenced this pull request Oct 22, 2026
@soxofaan
soxofaan requested a balanced review from Copilot October 22, 2026 09:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Public metadata API changes need maintainer compatibility review, and an unresolved metadata correctness issue remains.

1 open issue
3 resolved since last review

Review effort: Balanced

Comment thread openeo/metadata/__init__.py Outdated
soxofaan added a commit that referenced this pull request Oct 23, 2026
Normalize the dimension CRS (e.g. "EPSG:4326") before comparing it with
the bbox CRS, so equivalent CRS notations no longer fall back to a
non-concrete extent. Add `normalize_crs_or_passthrough` helper that
leaves unparseable CRS values untouched instead of raising.

ref #827 #955
soxofaan and others added 13 commits October 23, 2026 17:50
Trying to keep all this into account:
- keep existing public API
- support for parameterized/dynamic `filter_temporal`
- handle empty temporal extent properly
- calculate real temporal intersection
- don't require metadata


refs #827, #949
(re)group test functions in relevant test classes
for better overview and easier future evolution

refs #949 #827 #955
…cubes with z dimension'

Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Normalize the dimension CRS (e.g. "EPSG:4326") before comparing it with
the bbox CRS, so equivalent CRS notations no longer fall back to a
non-concrete extent. Add `normalize_crs_or_passthrough` helper that
leaves unparseable CRS values untouched instead of raising.

ref #827 #955
@soxofaan
soxofaan force-pushed the issue827-cube-metadata-viz branch from fac20d5 to 035e70a Compare October 23, 2026 15:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Public metadata API changes and cross-cutting extent propagation need final maintainer validation beyond the notebook-rendering feature.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants