¿Está realizando cálculos de ráster múltiples de QGIS modeler con datos de CSV externos?

20

Necesito realizar múltiples cálculos en un conjunto de rásteres basados en valores en un archivo de metadatos CSV.

Estoy usando el modelador gráfico QGIS y puedo llamar a un campo específico en un CSV con las entradas Table y Table Field .

Como tengo varios rásteres y cada ráster tiene un valor correspondiente en el CSV, ¿cómo llamo a la fila específica? (similar a una búsqueda, por ejemplo).

No quiero agregar una secuencia de comandos si no tengo que hacerlo por facilidad de uso.

    
pregunta HDunn 10.12.2015 - 08:40

1 respuesta

2

Publicación muy antigua, pero creo que una posible solución es, desafortunadamente para su caso, usar un script en su modelador que:

  • Recupera los nombres de todas las capas ráster cargadas.
  • Iterar a través de los metadatos que contienen una columna con nombres de ráster.
  • Hace coincidir los nombres de ráster cargados con los de los metadatos.
  • Si se encuentran coincidencias, se extrae el valor correspondiente del ráster.
  1. Puedes crear un script desde:

    Processing Toolbox > Scripts > Tools > Create new script
    

    Luego use algo como lo siguiente que:

    ##Example=name
    ##Table=table
    ##Field=Field Table
    ##Output_value=output Number
    
    from qgis.core import QgsMapLayer, QgsMapLayerRegistry
    import csv
    
    raster_list = [layer.name() for layer in QgsMapLayerRegistry.instance().mapLayers().values() if layer.type() == QgsMapLayer.RasterLayer]
    with open(Table) as f:
        reader = csv.reader(f)
        for row in reader:
            for raster in raster_list:
                if raster in row[0]:
                    Output_value = row[1]
                    print Output_value
    
  1. Luego agregue el script a su modelador (hice un ejemplo simple con solo dos entradas):

    Siejecutoestemodeloutilizandoelscriptanterior,simplementeimprimeelvalordesalidadelosmetadatosquecorrespondenalnombredelráster:

  • Dependiendo de cómo se construya su modelo y, posiblemente, de ajustar el script, puede realizar sus múltiples cálculos de trama.
  • respondido por el Joseph 06.07.2017 - 14:54

    Lea otras preguntas en las etiquetas