@@ -118,9 +118,12 @@ def displayName(self):
118
118
def processAlgorithm (self , parameters , context , feedback ):
119
119
expression = self .parameterAsString (parameters , self .EXPRESSION , context )
120
120
layers = self .parameterAsLayerList (parameters , self .LAYERS , context )
121
+
122
+ if not layers :
123
+ raise QgsProcessingException (self .tr ("No layers selected" ))
124
+
121
125
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 }
124
127
125
128
for lyr in QgsProcessingUtils .compatibleRasterLayers (context .project ()):
126
129
name = lyr .name ()
@@ -142,15 +145,13 @@ def processAlgorithm(self, parameters, context, feedback):
142
145
bbox = QgsProcessingUtils .combineLayerExtents (layers )
143
146
144
147
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 ())
151
151
152
152
def _cellsize (layer ):
153
153
return (layer .extent ().xMaximum () - layer .extent ().xMinimum ()) / layer .width ()
154
+
154
155
cellsize = self .parameterAsDouble (parameters , self .CELLSIZE , context ) or min ([_cellsize (lyr ) for lyr in layersDict .values ()])
155
156
width = math .floor ((bbox .xMaximum () - bbox .xMinimum ()) / cellsize )
156
157
height = math .floor ((bbox .yMaximum () - bbox .yMinimum ()) / cellsize )
2 commit comments
nirvn commentedon Feb 8, 2018
@alexbruy , I'm pretty sure this caused the following regression: https://issues.qgis.org/issues/18060
alexbruy commentedon Feb 8, 2018
@nirvn no, raster calculator was broken even before it. This just fixed one of the issues, reported in another tickets. Reverted now.