Skip to content

Commit 31928ed

Browse files
committed
Clean up ndvi in ProcessGraphDeserializer
related to #346
1 parent eac1f24 commit 31928ed

File tree

4 files changed

+10
-19
lines changed

4 files changed

+10
-19
lines changed

openeo_driver/ProcessGraphDeserializer.py

+6-15
Original file line numberDiff line numberDiff line change
@@ -1570,21 +1570,12 @@ def apply_kernel(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
15701570

15711571

15721572
@process
1573-
def ndvi(args: dict, env: EvalEnv) -> DriverDataCube:
1574-
image_collection = extract_arg(args, 'data')
1575-
if not isinstance(image_collection, DriverDataCube):
1576-
raise ProcessParameterInvalidException(
1577-
parameter="data", process="ndvi",
1578-
reason=f"Invalid data type {type(image_collection)!r} expected raster-cube."
1579-
)
1580-
if ComparableVersion("1.0.0").or_higher(env["version"]):
1581-
red = args.get("red")
1582-
nir = args.get("nir")
1583-
target_band = args.get("target_band")
1584-
return image_collection.ndvi(nir=nir, red=red, target_band=target_band)
1585-
else:
1586-
name = args.get("name", "ndvi")
1587-
return image_collection.ndvi(name=name)
1573+
def ndvi(args: ProcessArgs, env: EvalEnv) -> DriverDataCube:
1574+
cube = args.get_required("data", expected_type=DriverDataCube)
1575+
nir = args.get_optional("nir", default="nir")
1576+
red = args.get_optional("red", default="red")
1577+
target_band = args.get_optional("target_band", default=None)
1578+
return cube.ndvi(nir=nir, red=red, target_band=target_band)
15881579

15891580

15901581
@process

openeo_driver/datacube.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def timeseries(self, x, y, srs="EPSG:4326") -> dict:
199199
# TODO #47: remove this non-standard process
200200
self._not_implemented()
201201

202-
def ndvi(self, nir: str = "nir", red: str = "red", target_band: str = None) -> 'DriverDataCube':
202+
def ndvi(self, nir: str = "nir", red: str = "red", target_band: Optional[str] = None) -> "DriverDataCube":
203203
self._not_implemented()
204204

205205
def save_result(self, filename: str, format: str, format_options: dict = None) -> str:

openeo_driver/dry_run.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -759,8 +759,8 @@ def reduce_dimension(
759759
"reduce_dimension", arguments={}
760760
)
761761

762-
def ndvi(self, nir: str = "nir", red: str = "red", target_band: str = None) -> "DriverDataCube":
763-
if target_band == None and self.metadata.has_band_dimension():
762+
def ndvi(self, nir: str = "nir", red: str = "red", target_band: Optional[str] = None) -> "DryRunDataCube":
763+
if target_band is None and self.metadata.has_band_dimension():
764764
return self._process_metadata(
765765
self.metadata.reduce_dimension(dimension_name=self.metadata.band_dimension.name)
766766
)

tests/test_views_execute.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2779,7 +2779,7 @@ def test_user_defined_process_udp_vs_pdp_priority(api, udp_registry):
27792779
api.check_result("udp_ndvi.json")
27802780
dummy = dummy_backend.get_collection("S2_FOOBAR")
27812781
assert dummy.ndvi.call_count == 1
2782-
dummy.ndvi.assert_called_with(nir=None, red=None, target_band=None)
2782+
dummy.ndvi.assert_called_with(nir="nir", red="red", target_band=None)
27832783
assert dummy.reduce_dimension.call_count == 0
27842784

27852785
# Overload ndvi with UDP.

0 commit comments

Comments
 (0)