@@ -1516,21 +1516,13 @@ def filter_bands(args: Dict, env: EvalEnv) -> Union[DriverDataCube, DriverVector
1516
1516
1517
1517
1518
1518
@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 )
1534
1526
1535
1527
1536
1528
@process
0 commit comments