5 votos

Error en el valor del parámetro al pasar un ráster a un bucle de iteración en PyQGIS

El objetivo general es recortar una trama (rlayer), característica por característica de un shapefile (vlayer). A continuación, ejecutar las estadísticas univariantes en cada MDE recortado. Pasar la respuesta a una tabla para la salida.

Sin embargo he caído en el primer obstáculo y no consigo que el clip funcione. Ejemplo de error:

Unable to execute algorithm
Wrong parameter value: <qgis._core.QgsRasterLayer object at 0x000000002455D9D8>

Mi código por el momento es:

#Load the required modules
from qgis.core import*
import qgis.utils
import processing
import os

#Load administrative polygons
vlayer = (iface.addVectorLayer
("C:/Users/geol-tdi/Documents/UK_NUTS.shp",
"nutspoly",
"ogr"))
if not vlayer:
    print "Vector layer failed to load!"

#Load raster for analysis
rlayer = (iface.addRasterLayer
("C:/Users/geol-tdi/Documents/Rasters/UKwheatPEC80div50.tif", 
"WheatD"))
if not rlayer:
    print "Raster layer failed to load!"

#Iteratively analyse admin polys. 
vlayer.selectAll()
features = vlayer.getFeatures()

for feature in features:
    vlayer.setSelectedFeatures([feature.id()])
    print "Feature ID %d: " % feature.id()
    processing.runalg('qgis:clip',rlayer, feature, None )  
    vlayer.removeSelection()

vlayer.removeSelection()

He probado variaciones como nombrar la característica seleccionada antes de pasarla al algoritmo pero eso también falla. La salida está actualmente configurada como NINGUNA para permitir probar/pasar el resultado al algoritmo de estadísticas univaraite cuando llegue allí.

Soy consciente de que probablemente sea un simple problema/error, pero soy relativamente nuevo en esto.

Tenga en cuenta que ya he probado v.rast.stats desde la caja de herramientas de procesamiento, no consigue escribir ninguna salida en el shapefile, por razones desconocidas.

3voto

Hameno Puntos 129

La capa de entrada y la capa de recorte de esa herramienta de procesamiento sólo recortan datos vectoriales, no datos ráster. Usted está intentando recortar una capa rasterizada.

Capa de entrada [vector: cualquiera] Capa de recorte [vector: cualquiera]

https://docs.qgis.org/2.8/en/docs/user_manual/processing_algs/qgis/vector_overlay_tools.html

Para recortar una trama por un vector, véase:

Recorte de una trama mediante un polígono irregular con Python

¿Cómo recortar un raster por un shapefile en pyqgis?

0 votos

Sabía que era una tontería... muchas gracias de verdad por su tiempo y sus excelentes enlaces.

0 votos

Sin embargo, sigo sin poder pasar el polígono seleccionado al algoritmo de recorte, ahora correcto, lo siento.

0 votos

Para cerrar esta pregunta, he cambiado de plano ya que todavía no he podido conseguir que el clip acepte el polígono pasado/seleccionado. Por lo tanto, he dividido los polígonos y estoy ejecutando las estadísticas de allí.

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