From 6e77c76d8dc52d12302bf0638c3fe2144cdb29c6 Mon Sep 17 00:00:00 2001 From: clausmichele <31700619+clausmichele@users.noreply.github.com> Date: Wed, 11 Oct 2023 14:29:05 +0200 Subject: [PATCH] fix: reduce_spatial (#164) * fix reduce_spatial * Fix context * Revert "fix reduce_spatial" This reverts commit f1fdac3d2b51777ec1dc9dbd2b60b7613364a3c6. * Revert "Revert "fix reduce_spatial"" This reverts commit b3d45dd64ecb443fd8b45aba3d68ec66e9a585f9. * Revert "Fix context" This reverts commit c8fbcfc5b0b7dbcd29291dde5137d84159fb651a. --- .../process_implementations/cubes/reduce.py | 3 +- tests/test_reduce.py | 36 ++++++++++++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/openeo_processes_dask/process_implementations/cubes/reduce.py b/openeo_processes_dask/process_implementations/cubes/reduce.py index 0998fc81..5641edc4 100644 --- a/openeo_processes_dask/process_implementations/cubes/reduce.py +++ b/openeo_processes_dask/process_implementations/cubes/reduce.py @@ -54,9 +54,8 @@ def reduce_spatial( spatial_dims = data.openeo.spatial_dims if data.openeo.spatial_dims else None return data.reduce( reducer, - dimension=spatial_dims, + dim=spatial_dims, keep_attrs=True, - context=context, positional_parameters=positional_parameters, named_parameters=named_parameters, ) diff --git a/tests/test_reduce.py b/tests/test_reduce.py index 3c3804da..5bc4ed8c 100644 --- a/tests/test_reduce.py +++ b/tests/test_reduce.py @@ -5,7 +5,10 @@ import xarray as xr from openeo_pg_parser_networkx.pg_schema import ParameterReference -from openeo_processes_dask.process_implementations.cubes.reduce import reduce_dimension +from openeo_processes_dask.process_implementations.cubes.reduce import ( + reduce_dimension, + reduce_spatial, +) from tests.general_checks import general_output_checks from tests.mockdata import create_fake_rastercube @@ -39,3 +42,34 @@ def test_reduce_dimension( ) xr.testing.assert_equal(output_cube, input_cube.mean(dim="t")) + + +@pytest.mark.parametrize("size", [(30, 30, 20, 4)]) +@pytest.mark.parametrize("dtype", [np.float32]) +def test_reduce_spatial( + temporal_interval, bounding_box, random_raster_data, process_registry +): + input_cube = create_fake_rastercube( + data=random_raster_data, + spatial_extent=bounding_box, + temporal_extent=temporal_interval, + bands=["B02", "B03", "B04", "B08"], + backend="dask", + ) + + _process = partial( + process_registry["sum"].implementation, + ignore_nodata=True, + data=ParameterReference(from_parameter="data"), + ) + + output_cube = reduce_spatial(data=input_cube, reducer=_process) + + general_output_checks( + input_cube=input_cube, + output_cube=output_cube, + verify_attrs=False, + verify_crs=True, + ) + + xr.testing.assert_equal(output_cube, input_cube.sum(dim=["x", "y"]))