Skip to content

Commit f580c72

Browse files
committed
fixup! Issue #666 load_stac: fallback temporal dimension when no cube:dimensions
1 parent bea069b commit f580c72

File tree

3 files changed

+14
-26
lines changed

3 files changed

+14
-26
lines changed

openeo/metadata.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -692,8 +692,8 @@ def get_temporal_dimension(self, stac_obj: pystac.STACObject) -> Union[TemporalD
692692
name, extent = temporal_dims[0]
693693
return TemporalDimension(name=name, extent=extent)
694694
elif isinstance(stac_obj, pystac.Collection) and stac_obj.extent.temporal:
695-
# No explicit "cube:dimensions": fallback from "extent"
696-
# and openEO API recommendation to use "t" as dimension name
695+
# No explicit "cube:dimensions": build fallback from "extent.temporal",
696+
# with dimension name "t" (openEO API recommendation).
697697
extent = [Rfc3339(propagate_none=True).normalize(d) for d in stac_obj.extent.temporal.intervals[0]]
698698
return TemporalDimension(name="t", extent=extent)
699699
else:

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"pyproj>=3.2.0", # Pyproj is an optional, best-effort runtime dependency
3131
"dirty_equals>=0.8.0",
3232
"pyarrow>=10.0.1", # For Parquet read/write support in pandas
33+
"dateutil>=2.7.0",
3334
]
3435

3536
docs_require = [

tests/test_util.py

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import unittest.mock as mock
88
from typing import List, Union
99

10+
import dateutil.tz
1011
import pyproj
1112
import pytest
1213
import shapely.geometry
@@ -87,21 +88,12 @@ def test_datetime(self):
8788
assert "2020-03-17T12:34:56Z" == rfc3339.datetime([2020, 3, 17, 12, 34, 56])
8889
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(2020, 3, 17, 12, 34, 56)
8990
assert "2020-03-17T12:34:00Z" == rfc3339.datetime(2020, 3, 17, 12, 34)
90-
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(
91-
(2020, "3", 17, "12", "34", 56)
92-
)
93-
assert "2020-09-17T12:34:56Z" == rfc3339.datetime(
94-
[2020, "09", 17, "12", "34", 56]
95-
)
96-
assert "2020-09-17T12:34:56Z" == rfc3339.datetime(
97-
2020, "09", "17", "12", "34", 56
98-
)
99-
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(
100-
dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=None)
101-
)
102-
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(
103-
dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=dt.timezone.utc)
104-
)
91+
assert "2020-03-17T12:34:56Z" == rfc3339.datetime((2020, "3", 17, "12", "34", 56))
92+
assert "2020-09-17T12:34:56Z" == rfc3339.datetime([2020, "09", 17, "12", "34", 56])
93+
assert "2020-09-17T12:34:56Z" == rfc3339.datetime(2020, "09", "17", "12", "34", 56)
94+
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=None))
95+
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=dt.timezone.utc))
96+
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=dateutil.tz.UTC))
10597
assert "2020-03-17T12:34:56Z" == rfc3339.datetime(
10698
dt.datetime(
10799
*(2020, 3, 17, 12, 34, 56),
@@ -125,15 +117,10 @@ def test_normalize(self):
125117
"2020-03-17T12:34:56.44546546Z"
126118
)
127119
assert "2020-03-17" == rfc3339.normalize(dt.date(2020, 3, 17))
128-
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(
129-
dt.datetime(2020, 3, 17, 12, 34, 56)
130-
)
131-
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(
132-
dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=None)
133-
)
134-
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(
135-
dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=dt.timezone.utc)
136-
)
120+
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(dt.datetime(2020, 3, 17, 12, 34, 56))
121+
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=None))
122+
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=dt.timezone.utc))
123+
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(dt.datetime(2020, 3, 17, 12, 34, 56, tzinfo=dateutil.tz.UTC))
137124
assert "2020-03-17T12:34:56Z" == rfc3339.normalize(
138125
dt.datetime(
139126
*(2020, 3, 17, 12, 34, 56),

0 commit comments

Comments
 (0)