Suite

Comment calculer les statistiques zonales à partir d'un raster multi-canaux pour chaque polygone à l'aide de python ?


Je souhaite calculer les statistiques zonales à partir d'un raster multicanal pour une couche de polygones. Lorsque j'utilise cet extrait de code :

vectorlayer=qgis.utils.iface.mapCanvas().layer(0) rasterfile = qgis.utils.iface.mapCanvas().layer(1).source() zonalstats = qgis.analysis.QgsZonalStatistics(vectorlayer,rasterfile,"Zonal_ ") zonalstats.calculateStatistics(Aucun)

il met à jour les noms de champ mais les valeurs sont NUL dans la table attributaire. Donc, si je veux que les valeurs soient mises à jour, comment puis-je le faire ?


Je ne sais pas pourquoi vous obtenez NUL valeurs mais le code suivant a fonctionné pour moi (notez que j'appelle l'outil QGIS Zonal Statistics à partir du Traitement brancher et je veux charger le résultat):

vectorlayer = qgis.utils.iface.mapCanvas().layer(0) rasterfile = qgis.utils.iface.mapCanvas().layer(1).source() processing.runandload('qgis:zonalstatistics', rasterfile, 3, vectorlayer, "Zonal_", True, None)

Ce qui suit est le description de l'aide pour les paramètres souhaités que vous pouvez éditer dans votre code :

>>>processing.alghelp("qgis:zonalstatistics") ALGORITHME : statistiques zonales INPUT_RASTER  RASTER_BAND  INPUT_VECTOR  COLUMN_PREFIX  GLOBAL_EXTENT  OUTPUT_LAYER 

J'espère que cela t'aides!


Voir la vidéo: 15 Pythonin peruskurssi: Ehtolauseet Pythonissa (Octobre 2021).