Skip to content

Commit a99837e

Browse files
committed
Issue #346 ProcessArgs porting of apply_kernel
for less boilerplate code and better error messages drop now-unused workaround for R-client bug Open-EO/openeo-r-client#65
1 parent 7ba05dd commit a99837e

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

openeo_driver/ProcessGraphDeserializer.py

+7-15
Original file line numberDiff line numberDiff line change
@@ -1516,21 +1516,13 @@ def filter_bands(args: Dict, env: EvalEnv) -> Union[DriverDataCube, DriverVector
15161516

15171517

15181518
@process
1519-
def apply_kernel(args: Dict, env: EvalEnv) -> DriverDataCube:
1520-
image_collection = extract_arg(args, 'data')
1521-
kernel = np.asarray(extract_arg(args, 'kernel'))
1522-
factor = args.get('factor', 1.0)
1523-
border = args.get('border', 0)
1524-
if not isinstance(image_collection, DriverDataCube):
1525-
raise ProcessParameterInvalidException(
1526-
parameter="data", process="apply_kernel",
1527-
reason=f"Invalid data type {type(image_collection)!r} expected raster-cube."
1528-
)
1529-
if border == "0":
1530-
# R-client sends `0` border as a string
1531-
border = 0
1532-
replace_invalid = args.get('replace_invalid', 0)
1533-
return image_collection.apply_kernel(kernel=kernel, factor=factor, border=border, replace_invalid=replace_invalid)
1519+
def apply_kernel(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1520+
cube: DriverDataCube = args.get_required("data", expected_type=DriverDataCube)
1521+
kernel = np.asarray(args.get_required("kernel", expected_type=list))
1522+
factor = args.get_optional("factor", default=1.0, expected_type=(int, float))
1523+
border = args.get_optional("border", default=0, expected_type=int)
1524+
replace_invalid = args.get_optional("replace_invalid", default=0, expected_type=(int, float))
1525+
return cube.apply_kernel(kernel=kernel, factor=factor, border=border, replace_invalid=replace_invalid)
15341526

15351527

15361528
@process

tests/test_views_execute.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3156,7 +3156,7 @@ def test_execute_no_cube_dynamic_args(api):
31563156
assert kwargs["factor"] == 7.75
31573157

31583158

3159-
@pytest.mark.parametrize(["border", "expected"], [(0, 0), ("0", 0), ])
3159+
@pytest.mark.parametrize(["border", "expected"], [(0, 0)])
31603160
def test_execute_apply_kernel_border(api, border, expected):
31613161
pg = {
31623162
"lc1": {'process_id': 'load_collection', 'arguments': {'id': 'S2_FOOBAR'}},

0 commit comments

Comments
 (0)