@@ -118,12 +118,9 @@ 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
-
125
121
layersDict = {}
126
- layersDict = {os .path .basename (lyr .source ().split ("." )[0 ]): lyr for lyr in layers }
122
+ if layers :
123
+ layersDict = {os .path .basename (lyr .source ().split ("." )[0 ]): lyr for lyr in layers }
127
124
128
125
for lyr in QgsProcessingUtils .compatibleRasterLayers (context .project ()):
129
126
name = lyr .name ()
@@ -145,13 +142,15 @@ def processAlgorithm(self, parameters, context, feedback):
145
142
bbox = QgsProcessingUtils .combineLayerExtents (layers )
146
143
147
144
if bbox .isNull ():
148
- bbox = list (layersDict .values ())[0 ].extent ()
149
- for lyr in layersDict .values ():
150
- bbox .combineExtentWith (lyr .extent ())
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" ))
151
151
152
152
def _cellsize (layer ):
153
153
return (layer .extent ().xMaximum () - layer .extent ().xMinimum ()) / layer .width ()
154
-
155
154
cellsize = self .parameterAsDouble (parameters , self .CELLSIZE , context ) or min ([_cellsize (lyr ) for lyr in layersDict .values ()])
156
155
width = math .floor ((bbox .xMaximum () - bbox .xMinimum ()) / cellsize )
157
156
height = math .floor ((bbox .yMaximum () - bbox .yMinimum ()) / cellsize )
0 commit comments