Skip to content

Commit c09c301

Browse files
committedJan 23, 2018
[processing] throw error if no layers selected in raster calculator
algorithm (refs #17920)
1 parent d7e1813 commit c09c301

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed
 

‎python/plugins/processing/algs/qgis/RasterCalculator.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,12 @@ def displayName(self):
118118
def processAlgorithm(self, parameters, context, feedback):
119119
expression = self.parameterAsString(parameters, self.EXPRESSION, context)
120120
layers = self.parameterAsLayerList(parameters, self.LAYERS, context)
121+
122+
if not layers:
123+
raise QgsProcessingException(self.tr("No layers selected"))
124+
121125
layersDict = {}
122-
if layers:
123-
layersDict = {os.path.basename(lyr.source().split(".")[0]): lyr for lyr in layers}
126+
layersDict = {os.path.basename(lyr.source().split(".")[0]): lyr for lyr in layers}
124127

125128
for lyr in QgsProcessingUtils.compatibleRasterLayers(context.project()):
126129
name = lyr.name()
@@ -142,15 +145,13 @@ def processAlgorithm(self, parameters, context, feedback):
142145
bbox = QgsProcessingUtils.combineLayerExtents(layers)
143146

144147
if bbox.isNull():
145-
if layersDict:
146-
bbox = list(layersDict.values())[0].extent()
147-
for lyr in layersDict.values():
148-
bbox.combineExtentWith(lyr.extent())
149-
else:
150-
raise QgsProcessingException(self.tr("No layers selected"))
148+
bbox = list(layersDict.values())[0].extent()
149+
for lyr in layersDict.values():
150+
bbox.combineExtentWith(lyr.extent())
151151

152152
def _cellsize(layer):
153153
return (layer.extent().xMaximum() - layer.extent().xMinimum()) / layer.width()
154+
154155
cellsize = self.parameterAsDouble(parameters, self.CELLSIZE, context) or min([_cellsize(lyr) for lyr in layersDict.values()])
155156
width = math.floor((bbox.xMaximum() - bbox.xMinimum()) / cellsize)
156157
height = math.floor((bbox.yMaximum() - bbox.yMinimum()) / cellsize)

2 commit comments

Comments
 (2)

nirvn commented on Feb 8, 2018

@nirvn
Contributor

@alexbruy , I'm pretty sure this caused the following regression: https://issues.qgis.org/issues/18060

alexbruy commented on Feb 8, 2018

@alexbruy
ContributorAuthor

@nirvn no, raster calculator was broken even before it. This just fixed one of the issues, reported in another tickets. Reverted now.

Please sign in to comment.