Necesito calcular algunas estadísticas zonales a partir de archivos raster para algunos polígonos en un shapefile. Estoy utilizando el siguiente código que funciona:
eligibleLayer = QgsVectorLayer("/home/usr/Desktop/polygons.shp", "polygons", "ogr")
for raster in findRasters(windMapsDirectory, '*.tif'):
(infilepath, infilename) = os.path.split(raster)
windMapName = infilename
list1 = re.split('\W+',windMapName)
list2 = re.split("_", list1[0])
list3 = list2[2]
string1 = ''.join(list3)
if string1 == 'K':
zoneStat = QgsZonalStatistics(eligibleLayer, windMapName, 'K_', 1)
zoneStat.calculateStatistics(None)
El problema es que sólo necesito la media de las estadísticas zonales (sin recuento ni suma). He intentado utilizar:
if string1 == 'K':
zoneStat = QgsZonalStatistics(eligibleLayer, windMapName, 'K_', 1, QgsZonalStatistics.Mean)
Sin embargo, obtengo el siguiente error: el objeto de tipo 'QgsZonalStatistics' no tiene el atributo 'Mean' . Estoy utilizando QGIS 2.8.6.
0 votos
¿Has probado a llamar a otros atributos con este método?
0 votos
¿Qué ocurre si sustituye
QgsZonalStatistics.Mean
conzoneStat.Mean
?0 votos
Si sustituyo QgsZonalStatistics.Mean por zoneStat.Mean, obtengo: el nombre 'zoneStat' no está definido. También si intento llamar a QgsZonalStatistics.Sum, obtengo: type object 'QgsZonalStatistics' has no attribute 'Sum'.
0 votos
Y si sustituye
QgsZonalStatistics.Mean
conQgsZonalStatistics.Statistic.Mean
?0 votos
Obtengo lo mismo: el objeto de tipo 'QgsZonalStatistics' no tiene atributo 'Statistic'.