77
88import shapely .geometry .base
99
10+ import openeo .rest .datacube
1011from openeo .api .process import Parameter
1112from openeo .internal .documentation import openeo_process
1213from openeo .internal .graph_building import PGNode
@@ -59,7 +60,7 @@ def process(
5960 ** kwargs ,
6061 ) -> VectorCube :
6162 """
62- Generic helper to create a new DataCube by applying a process.
63+ Generic helper to create a new VectorCube by applying a process.
6364
6465 :param process_id: process id of the process.
6566 :param args: argument dictionary for the process.
@@ -559,7 +560,7 @@ def apply_dimension(
559560 )
560561 return self .process (process_id = "apply_dimension" , arguments = arguments )
561562
562- def vector_to_raster (self , target_data_cube ) :
563+ def vector_to_raster (self , target ) -> openeo . rest . datacube . DataCube :
563564 """
564565 Converts this vector cube into a :py:class:`~openeo.rest.datacube.DataCube`.
565566 The bounding polygon of homogenous areas of pixels is constructed.
@@ -570,7 +571,21 @@ def vector_to_raster(self, target_data_cube):
570571
571572 .. versionadded:: 0.28.0
572573 """
573- from openeo .rest .datacube import DataCube
574-
575- pg_node = PGNode (process_id = "vector_to_raster" , arguments = {"data" : self , "target_data_cube" : target_data_cube })
576- return DataCube (pg_node , connection = self ._connection , metadata = self .metadata )
574+ # TODO: this parameter sniffing is a temporary workaround until
575+ # the `target` parameter name rename has fully settled
576+ # https://github.com/Open-EO/openeo-python-driver/issues/274
577+ # After that has settled, it is still useful to verify assumptions about this non-standard process.
578+ try :
579+ process_spec = self .connection .describe_process ("vector_to_raster" )
580+ target_parameter = process_spec ["parameters" ][1 ]["name" ]
581+ assert "target" in target_parameter
582+ except Exception :
583+ target_parameter = "target"
584+
585+ pg_node = PGNode (
586+ process_id = "vector_to_raster" ,
587+ arguments = {"data" : self , target_parameter : target },
588+ )
589+ # TODO: the correct metadata has to be passed here:
590+ # replace "geometry" dimension with spatial dimensions of the target cube
591+ return openeo .rest .datacube .DataCube (pg_node , connection = self ._connection , metadata = self .metadata )
0 commit comments