5 votos

Obtención de nombres de salida de algoritmos de procesamiento a través de PyQGIS

La llamada a los resultados de los algoritmos de procesamiento para trazarlos en la pantalla varía según el proveedor utilizado.

Un ejemplo con el proveedor de QGIS:

 tmpggis = processing.runalg("qgis:reprojectlayer",vektor,"EPSG:4326",None)
out = tmpggis["OUTPUT"]
qgisLyr = QgsRasterLayer(out, "Orfeo")
QgsMapLayerRegistry.instance().addMapLayer(qgisLyr)
 

Entonces, para QGIS es: ["SALIDA"] - mayúsculas

Para GRASS es: ["output"] - letras minúsculas

¿Cuál es el nombre de salida para otros proveedores, como Orfeo Toolbox, SAGA, etc.?

6voto

Elliott Maynard Puntos 11

También puede depender del algoritmo. Por ejemplo, el Ordinary Kriging de SAGA devuelve dos salidas (VARIANCE y PREDICTION), pero otros de la SAGA algoritmo de salidas se denominan OUTPUT. Así, usted no sólo tiene que utilizar un único nombre de salida para todos los algoritmos en un proveedor.

Sin embargo, hay una manera de conseguir la salida de los nombres de los parámetros de cualquier algoritmo de Procesamiento. Podemos definir la siguiente función (por ejemplo, en el QGIS consola de Python):

import processing

def getAlgOutputNames( algName ):
    for output in processing.Processing.getAlgorithm(algName).outputs:
        print output.name

Usted puede llamar a la función de esta manera, dándole algoritmo de nombres que usted está interesado en:

>>> getAlgOutputNames("grass7:v.surf.idw")
output
>>> getAlgOutputNames("qgis:creategrid")
OUTPUT
>>> getAlgOutputNames("saga:ordinarykriging")
PREDICTION
VARIANCE
>>> getAlgOutputNames("gdalogr:clipvectorsbypolygon")
OUTPUT_LAYER
>>> getAlgOutputNames("lidartools:lasmerge")
OUTPUT_LASLAZ
>>> getAlgOutputNames("taudem:dinfinityavalancherunout")
-rz
-dfs
>>>getAlgOutputNames("otb:radiometricindices")
-out

Nota: Recuerde que usted puede conseguir algoritmo de nombres llamando processing.alglist() de la QGIS consola de Python.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X