En esta pregunta de gis.stackexchange.com se responde la manera de ejecutar la Processing tool UI en PyGIS 2 y en esta otra en PyQGIS 3. Para ejemplificar cómo funciona, ya que el segundo caso adolece del código completo, se va a probar con el procedimiento del post anterior.
En el primer caso se tiene el código siguiente:1 2 3 4 5 6 7 8 9 10 11 12 | # Import both Processing and CommanderWindow # classes from the Processing framework. from processing.core.Processing import Processing from processing.gui.CommanderWindow import CommanderWindow # Then get the algorithm you're interested in (for instance, Join Attributes): alg = Processing.getAlgorithm("saga:polygonselfintersection") # Instantiate the commander window and open the algorithm's interface cw = CommanderWindow(iface.mainWindow(), iface.mapCanvas()) if alg is not None: cw.runAlgorithm(alg) |
cuya ejecución en la Python Console resulta tal como se esperaba:
En PyQGIS 3 el procedimiento se ha simplificado bastante; tal como se evidencia en el código a continuación:
1 2 3 4 | import processing initial_params={} results = processing.execAlgorithmDialog("saga:polygonselfintersection", initial_params) |
La ejecución del código anterior en la Python Console también produce el resultado esperado; evidenciado en la imagen siguiente:
No hay comentarios:
Publicar un comentario