Skip to content

Commit

Permalink
Align "target_dimension" in "aggregate_spatial" with spec
Browse files Browse the repository at this point in the history
  • Loading branch information
soxofaan committed Nov 28, 2024
1 parent 4451991 commit 06b9ed2
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 12 deletions.
1 change: 0 additions & 1 deletion openeo_driver/ProcessGraphDeserializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1226,7 +1226,6 @@ def _period_to_intervals(start, end, period) -> List[Tuple[pd.Timestamp, pd.Time
def aggregate_spatial(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
cube = args.get_required("data", expected_type=DriverDataCube)
reduce_pg = args.get_deep("reducer", "process_graph", expected_type=dict)
# TODO: drop `target_dimension`? see https://github.com/Open-EO/openeo-processes/issues/366
target_dimension = args.get_optional("target_dimension", default=None)

geoms = args.get_required("geometries")
Expand Down
8 changes: 4 additions & 4 deletions openeo_driver/datacube.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,10 +184,10 @@ def aggregate_temporal(
self._not_implemented()

def aggregate_spatial(
self,
geometries: Union[shapely.geometry.base.BaseGeometry, str, "DriverVectorCube"],
reducer: dict,
target_dimension: str = "result",
self,
geometries: Union[shapely.geometry.base.BaseGeometry, str, "DriverVectorCube"],
reducer: dict,
target_dimension: Optional[str] = None,
) -> Union["AggregatePolygonResult", "AggregatePolygonSpatialResult", "DriverVectorCube"]:
# TODO: drop `target_dimension`? see https://github.com/Open-EO/openeo-processes/issues/366
self._not_implemented()
Expand Down
2 changes: 1 addition & 1 deletion openeo_driver/dry_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ def aggregate_spatial(
self,
geometries: Union[BaseGeometry, str, DriverVectorCube],
reducer: dict,
target_dimension: str = "result",
target_dimension: Optional[str] = None,
) -> "DryRunDataCube":
# TODO #71 #114 EP-3981 normalize to vector cube instead of GeometryCollection
geoms_is_empty = isinstance(geometries, DriverVectorCube) and len(geometries.get_geometries()) == 0
Expand Down
19 changes: 13 additions & 6 deletions openeo_driver/dummy/dummy_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,13 @@
from openeo_driver.datastructs import StacAsset
from openeo_driver.delayed_vector import DelayedVector
from openeo_driver.dry_run import SourceConstraint
from openeo_driver.errors import JobNotFoundException, JobNotFinishedException, ProcessGraphNotFoundException, \
PermissionsInsufficientException
from openeo_driver.errors import (
JobNotFoundException,
JobNotFinishedException,
ProcessGraphNotFoundException,
PermissionsInsufficientException,
FeatureUnsupportedException,
)
from openeo_driver.jobregistry import JOB_STATUS
from openeo_driver.save_result import AggregatePolygonResult, AggregatePolygonSpatialResult
from openeo_driver.users import User
Expand Down Expand Up @@ -232,11 +237,13 @@ def save_result(self, filename: str, format: str, format_options: dict = None) -
return filename

def aggregate_spatial(
self,
geometries: Union[BaseGeometry, str, DriverVectorCube],
reducer: dict,
target_dimension: str = "result",
self,
geometries: Union[BaseGeometry, str, DriverVectorCube],
reducer: dict,
target_dimension: Optional[str] = None,
) -> Union[AggregatePolygonResult, AggregatePolygonSpatialResult, DriverVectorCube]:
if target_dimension:
raise FeatureUnsupportedException("Argument `target_dimension` not supported in aggregate_spatial")

# TODO: support more advanced reducers too
assert isinstance(reducer, dict) and len(reducer) == 1
Expand Down

0 comments on commit 06b9ed2

Please sign in to comment.