<div dir="ltr"><div>Dear QGIS Users,</div><div><br></div><div>I am trying to run a script in python console to calculate zonal statistics but it always throws an error. This is the script that I am running:</div><div><br></div>

<div><div>import qgis.analysis</div><div>vectorlayer=r'E:\filepath\vector.shp'</div><div>rasterfile = r'E:\filepath\raster.tif'</div><div>zonalstats = qgis.analysis.QgsZonalStatistics(vectorlayer,rasterfile,str(1), 1)</div>

<div>zonalstats.calculateStatistics(None)</div></div><div><br></div><div>The error says:</div><div><br></div><div>TypeError: arguments dit not match any overloaded call: QgsZonalStatistics(QgsVectorLayer, QString, QString attributePrefix="", int rasterBand=1): argument 1 has unexpected type 'str'</div>

<div>QgsZonalStatistics(QgsZonalStatistics): argument 1 has unexpected type 'str'</div><div><br></div><div>However, if I load my raster and vector file in QGIS and run the script below, it is working properly:</div>

<div><br></div><div><div>import qgis.analysis</div><div>vectorlayer=qgis.utils.iface.mapCanvas().layer(0)</div><div>rasterfile = qgis.utils.iface.mapCanvas().layer(1).source()</div><div>zonalstats = qgis.analysis.QgsZonalStatistics(vectorlayer,rasterfile,str(1), 1)</div>

<div>zonalstats.calculateStatistics(None)</div></div><div><br></div><div>Thanks in advance for any help.</div><div>-Leo</div></div>