[QGIS-Developer] Access QgsVectorLayer from child algorithm
Simon Gröchenig
simon.groechenig at salzburgresearch.at
Wed Nov 24 02:14:13 PST 2021
Hi developers,
I am developing a Python processing algorithm with some child
algorithms. I am struggling to find a way to access a child algorithm's
output vector layer. I want to use isChildAlgorithm=True in order to
correctly set the feedback progress.
* If I use processing.run(...) with setting the parameter
isChildAlgorithm to False (= default), the vector layer (via sink) is
returned as a QgsVectorLayer.
* If I set isChildAlgorithm to True, only the dest_id is returned as a
string. I did not find a solution on how I retrieve the corresponding
QgsVectorLayer.
* Is it intentional that the vector layer is returned as QgsVectorLayer
or str (dest_id), depending on the isChildAlgorithm parameter?
* How can I access output QgsVectorLayer from a child algorithm?
This is a minimum example where you can modify the is_child_algorithm
parameter:
parameters = {
'INPUT': QgsVectorLayer('Point?crs=epsg:31258', 'locations', "memory"),
'DISTANCE': 10,
'OUTPUT': 'TEMPORARY_OUTPUT'
}
result = processing.run("native:buffer", parameters,
is_child_algorithm=False )
vector_layer = result['OUTPUT']
print(str(type(vector_layer)))
Best regards
Simon
--
Simon Gröchenig MSc
MTA - Mobility & Transport Analytics
Salzburg Research Forschungsgesellschaft mbH
Jakob-Haringer-Straße 5/3 | 5020 Salzburg, Austria
T: +43.662.2288-314
simon.groechenig at salzburgresearch.at
http://www.salzburgresearch.at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20211124/83d2efd0/attachment.html>
More information about the QGIS-Developer
mailing list