Revert "[processing] throw error if no layers selected in raster calculator"

This reverts commit c09c3018035eb7a4f47acbde7f3dae405ba444db.
This commit is contained in:
Alexander Bruy 2018-02-08 13:25:20 +02:00
parent b6ff401452
commit fcb50a6857

View File

@ -118,12 +118,9 @@ class RasterCalculator(QgisAlgorithm):
def processAlgorithm(self, parameters, context, feedback):
expression = self.parameterAsString(parameters, self.EXPRESSION, context)
layers = self.parameterAsLayerList(parameters, self.LAYERS, context)
if not layers:
raise QgsProcessingException(self.tr("No layers selected"))
layersDict = {}
layersDict = {os.path.basename(lyr.source().split(".")[0]): lyr for lyr in layers}
if layers:
layersDict = {os.path.basename(lyr.source().split(".")[0]): lyr for lyr in layers}
for lyr in QgsProcessingUtils.compatibleRasterLayers(context.project()):
name = lyr.name()
@ -145,13 +142,15 @@ class RasterCalculator(QgisAlgorithm):
bbox = QgsProcessingUtils.combineLayerExtents(layers)
if bbox.isNull():
bbox = list(layersDict.values())[0].extent()
for lyr in layersDict.values():
bbox.combineExtentWith(lyr.extent())
if layersDict:
bbox = list(layersDict.values())[0].extent()
for lyr in layersDict.values():
bbox.combineExtentWith(lyr.extent())
else:
raise QgsProcessingException(self.tr("No layers selected"))
def _cellsize(layer):
return (layer.extent().xMaximum() - layer.extent().xMinimum()) / layer.width()
cellsize = self.parameterAsDouble(parameters, self.CELLSIZE, context) or min([_cellsize(lyr) for lyr in layersDict.values()])
width = math.floor((bbox.xMaximum() - bbox.xMinimum()) / cellsize)
height = math.floor((bbox.yMaximum() - bbox.yMinimum()) / cellsize)