Skip to content

Commit

Permalink
Make zonal statistics algorithm thread safe
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jun 8, 2018
1 parent b533dd8 commit fc5eb96
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions python/plugins/processing/algs/qgis/ZonalStatistics.py
Expand Up @@ -63,6 +63,14 @@ def groupId(self):

def __init__(self):
super().__init__()
self.bandNumber = None
self.columnPrefix = None
self.selectedStats = None
self.vectorLayer = None
self.raster_interface = None
self.raster_crs = None
self.raster_units_per_pixel_x = None
self.raster_units_per_pixel_y = None

def initAlgorithm(self, config=None):
self.STATS = OrderedDict([(self.tr('Count'), QgsZonalStatistics.Count),
Expand Down Expand Up @@ -99,12 +107,6 @@ def initAlgorithm(self, config=None):
self.tr('Zonal statistics'),
QgsProcessing.TypeVectorPolygon))

self.bandNumber = None
self.columnPrefix = None
self.selectedStats = None
self.vectorLayer = None
self.rasterLayer = None

def name(self):
return 'zonalstatistics'

Expand All @@ -122,12 +124,19 @@ def prepareAlgorithm(self, parameters, context, feedback):
self.selectedStats |= self.STATS[keys[i]]

self.vectorLayer = self.parameterAsVectorLayer(parameters, self.INPUT_VECTOR, context)
self.rasterLayer = self.parameterAsRasterLayer(parameters, self.INPUT_RASTER, context)
rasterLayer = self.parameterAsRasterLayer(parameters, self.INPUT_RASTER, context)
self.raster_interface = rasterLayer.dataProvider().clone()
self.raster_crs = rasterLayer.crs()
self.raster_units_per_pixel_x = rasterLayer.rasterUnitsPerPixelX()
self.raster_units_per_pixel_y = rasterLayer.rasterUnitsPerPixelY()
return True

def processAlgorithm(self, parameters, context, feedback):
zs = QgsZonalStatistics(self.vectorLayer,
self.rasterLayer,
self.raster_interface,
self.raster_crs,
self.raster_units_per_pixel_x,
self.raster_units_per_pixel_y,
self.columnPrefix,
self.bandNumber,
QgsZonalStatistics.Statistics(self.selectedStats))
Expand Down

0 comments on commit fc5eb96

Please sign in to comment.