@@ -1379,10 +1379,11 @@ def mask(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1379
1379
1380
1380
1381
1381
@process
1382
- def mask_polygon (args : dict , env : EvalEnv ) -> DriverDataCube :
1383
- mask = extract_arg (args , 'mask' )
1384
- replacement = args .get ('replacement' , None )
1385
- inside = args .get ('inside' , False )
1382
+ def mask_polygon (args : ProcessArgs , env : EvalEnv ) -> DriverDataCube :
1383
+ cube = args .get_required ("data" , expected_type = DriverDataCube )
1384
+ mask = args .get_required ("mask" )
1385
+ replacement = args .get_optional ("replacement" , default = None )
1386
+ inside = args .get_optional ("inside" , default = False )
1386
1387
1387
1388
# TODO #114: instead of if-elif-else chain: generically "cast" to VectorCube first (e.g. for wide input
1388
1389
# support: GeoJSON, WKT, ...) and then convert to MultiPolygon?
@@ -1402,8 +1403,9 @@ def mask_polygon(args: dict, env: EvalEnv) -> DriverDataCube:
1402
1403
if polygon .area == 0 :
1403
1404
reason = "mask {m!s} has an area of {a!r}" .format (m = polygon , a = polygon .area )
1404
1405
raise ProcessParameterInvalidException (parameter = 'mask' , process = 'mask_polygon' , reason = reason )
1405
- image_collection = extract_arg (args , 'data' ).mask_polygon (mask = polygon , replacement = replacement , inside = inside )
1406
- return image_collection
1406
+
1407
+ cube = cube .mask_polygon (mask = polygon , replacement = replacement , inside = inside )
1408
+ return cube
1407
1409
1408
1410
1409
1411
def _extract_temporal_extent (args : dict , field = "extent" , process_id = "filter_temporal" ) -> Tuple [str , str ]:
0 commit comments