@@ -574,15 +574,15 @@ def to_legacy_save_result(self) -> Union["AggregatePolygonResult", "JSONResult"]
574
574
575
575
cube = self ._cube
576
576
# TODO: more flexible temporal/band dimension detection?
577
- if cube .dims == (self .DIM_GEOMETRY , "t" ):
577
+ if cube .dims == (self .DIM_GEOMETRY , self . DIM_TIME ):
578
578
# Add single band dimension
579
579
cube = cube .expand_dims ({"bands" : ["band" ]}, axis = - 1 )
580
- if cube .dims == (self .DIM_GEOMETRY , "t" , "bands" ):
581
- cube = cube . transpose ( "t" , self . DIM_GEOMETRY , " bands" )
582
- timeseries = {
583
- t . item (): t_slice . values . tolist ()
584
- for t , t_slice in zip ( cube . coords [ "t" ], cube )
585
- }
580
+ if cube .dims == (self .DIM_GEOMETRY , self . DIM_TIME , "bands" ):
581
+ timeseries = {} # {timestamp: List[List[]]} (geometries, bands)
582
+ for t , t_slice in cube . groupby ( self . DIM_TIME ):
583
+ t : numpy . generic = t
584
+ t_slice : xarray . DataArray = t_slice # (geometries, bands )
585
+ timeseries [ t . item ()] = t_slice . values . tolist ()
586
586
return AggregatePolygonResult (timeseries = timeseries , regions = self )
587
587
elif cube .dims == (self .DIM_GEOMETRY , "bands" ):
588
588
# This covers the legacy `AggregatePolygonSpatialResult` code path,
0 commit comments