From 87baca01a266d21d7545f275216c340be2572c0b Mon Sep 17 00:00:00 2001 From: Vincent Verelst Date: Fri, 15 Mar 2024 14:54:56 +0100 Subject: [PATCH] added vector_to_raster convenience method #550 --- openeo/rest/vectorcube.py | 14 ++++++++++++++ tests/rest/datacube/test_vectorcube.py | 19 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/openeo/rest/vectorcube.py b/openeo/rest/vectorcube.py index 8806d97bd..43605a745 100644 --- a/openeo/rest/vectorcube.py +++ b/openeo/rest/vectorcube.py @@ -558,3 +558,17 @@ def apply_dimension( } ) return self.process(process_id="apply_dimension", arguments=arguments) + + def vector_to_raster(self, target_data_cube): + """ + Converts this vector cube into a :py:class:`~openeo.rest.datacube.DataCube`. + The bounding polygon of homogenous areas of pixels is constructed. + + .. warning:: experimental process: not generally supported, API subject to change. + + :return: a :py:class:`~openeo.rest.datacube.DataCube` + """ + from openeo.rest.datacube import DataCube + + pg_node = PGNode(process_id="vector_to_raster", arguments={"data": self, "target_data_cube": target_data_cube}) + return DataCube(pg_node, connection=self._connection, metadata=self.metadata) diff --git a/tests/rest/datacube/test_vectorcube.py b/tests/rest/datacube/test_vectorcube.py index fbfbd298c..0bf2b9b4f 100644 --- a/tests/rest/datacube/test_vectorcube.py +++ b/tests/rest/datacube/test_vectorcube.py @@ -644,3 +644,22 @@ def test_vectorcube_execute_batch_validation( else: assert dummy_backend.validation_requests == [] assert caplog.messages == [] + + +def test_vector_to_raster(s2cube, vector_cube): + raster_cube = vector_cube.vector_to_raster(s2cube) + assert raster_cube.flat_graph() == { + "loadgeojson1": { + "process_id": "load_geojson", + "arguments": {"data": {"type": "Point", "coordinates": [1, 2]}, "properties": []}, + }, + "loadcollection1": { + "process_id": "load_collection", + "arguments": {"id": "S2", "spatial_extent": None, "temporal_extent": None}, + }, + "vectortoraster1": { + "process_id": "vector_to_raster", + "arguments": {"data": {"from_node": "loadgeojson1"}, "target_data_cube": {"from_node": "loadcollection1"}}, + "result": True, + }, + }