Skip to content

Commit

Permalink
[processing][gdal] Better error messages when invalid parameters are …
Browse files Browse the repository at this point in the history
…passed
  • Loading branch information
nyalldawson committed May 6, 2018
1 parent 787dd34 commit f4599f1
Show file tree
Hide file tree
Showing 28 changed files with 142 additions and 34 deletions.
6 changes: 5 additions & 1 deletion python/plugins/processing/algs/gdal/AssignProjection.py
Expand Up @@ -29,7 +29,8 @@

from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsProcessingParameterRasterLayer,
from qgis.core import (QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterCrs,
QgsProcessingOutputRasterLayer)
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
Expand Down Expand Up @@ -78,6 +79,9 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

fileName = inLayer.source()

crs = self.parameterAsCrs(parameters, self.CRS, context).authid()
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/ClipRasterByExtent.py
Expand Up @@ -30,6 +30,7 @@
from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterEnum,
Expand Down Expand Up @@ -110,6 +111,9 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException('Invalid input layer {}'.format(parameters[self.INPUT] if self.INPUT in parameters else 'INPUT'))

bbox = self.parameterAsExtent(parameters, self.EXTENT, context, inLayer.crs())
if self.NODATA in parameters and parameters[self.NODATA] is not None:
nodata = self.parameterAsDouble(parameters, self.NODATA, context)
Expand Down
3 changes: 3 additions & 0 deletions python/plugins/processing/algs/gdal/ClipRasterByMask.py
Expand Up @@ -31,6 +31,7 @@

from qgis.core import (QgsRasterFileWriter,
QgsProcessing,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterFeatureSource,
QgsProcessingParameterRasterLayer,
Expand Down Expand Up @@ -124,6 +125,8 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

maskLayer, maskLayerName = self.getOgrCompatibleSource(self.MASK, parameters, context, feedback, executing)

Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/ColorRelief.py
Expand Up @@ -27,6 +27,7 @@

import os
from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
Expand Down Expand Up @@ -102,6 +103,9 @@ def commandName(self):
def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments = ['color-relief']
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(inLayer.source())
arguments.append(self.parameterAsFile(parameters, self.COLOR_TABLE, context))

Expand Down
6 changes: 5 additions & 1 deletion python/plugins/processing/algs/gdal/OgrToPostGis.py
Expand Up @@ -25,7 +25,8 @@

__revision__ = '$Format:%H$'

from qgis.core import (QgsProcessingParameterFeatureSource,
from qgis.core import (QgsProcessingException,
QgsProcessingParameterFeatureSource,
QgsProcessingParameterString,
QgsProcessingParameterEnum,
QgsProcessingParameterCrs,
Expand Down Expand Up @@ -189,6 +190,9 @@ def getConnectionString(self, parameters, context):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
ogrLayer, layername = self.getOgrCompatibleSource(self.INPUT, parameters, context, feedback, executing)
if not layername:
raise QgsProcessingException(self.invalidSourceError(parameters, self.INPUT))

shapeEncoding = self.parameterAsString(parameters, self.SHAPE_ENCODING, context)
ssrs = self.parameterAsCrs(parameters, self.S_SRS, context).authid()
tsrs = self.parameterAsCrs(parameters, self.T_SRS, context).authid()
Expand Down
5 changes: 4 additions & 1 deletion python/plugins/processing/algs/gdal/aspect.py
Expand Up @@ -27,7 +27,8 @@

import os

from qgis.core import (QgsRasterFileWriter,
from qgis.core import (QgsProcessingException,
QgsRasterFileWriter,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
Expand Down Expand Up @@ -102,6 +103,8 @@ def commandName(self):
def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments = ['aspect']
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))
arguments.append(inLayer.source())

out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/contour.py
Expand Up @@ -30,6 +30,7 @@
from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsProcessing,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
Expand Down Expand Up @@ -126,6 +127,9 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

fieldName = self.parameterAsString(parameters, self.FIELD_NAME, context)
if self.NODATA in parameters and parameters[self.NODATA] is not None:
nodata = self.parameterAsDouble(parameters, self.NODATA, context)
Expand Down
7 changes: 6 additions & 1 deletion python/plugins/processing/algs/gdal/fillnodata.py
Expand Up @@ -28,6 +28,7 @@
import os

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
QgsProcessingParameterNumber,
Expand Down Expand Up @@ -116,7 +117,11 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments.append('-of')
arguments.append(QgsRasterFileWriter.driverForExtension(os.path.splitext(out)[1]))

arguments.append(self.parameterAsRasterLayer(parameters, self.INPUT, context).source())
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if raster is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(raster.source())
arguments.append(out)

commands = []
Expand Down
6 changes: 5 additions & 1 deletion python/plugins/processing/algs/gdal/gdal2tiles.py
Expand Up @@ -26,7 +26,8 @@
__revision__ = '$Format:%H$'


from qgis.core import (QgsProcessingParameterDefinition,
from qgis.core import (QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterCrs,
QgsProcessingParameterEnum,
Expand Down Expand Up @@ -219,6 +220,9 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments.append('-n')

inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(inLayer.source())
arguments.append(self.parameterAsString(parameters, self.OUTPUT, context))

Expand Down
7 changes: 6 additions & 1 deletion python/plugins/processing/algs/gdal/gdal2xyz.py
Expand Up @@ -26,6 +26,7 @@
__revision__ = '$Format:%H$'

from qgis.core import (QgsProcessing,
QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
QgsProcessingParameterBoolean,
Expand Down Expand Up @@ -82,7 +83,11 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
if self.parameterAsBool(parameters, self.CSV, context):
arguments.append('-csv')

arguments.append(self.parameterAsRasterLayer(parameters, self.INPUT, context).source())
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if raster is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(raster.source())
arguments.append(self.parameterAsFileOutput(parameters, self.OUTPUT, context))

commands = []
Expand Down
6 changes: 5 additions & 1 deletion python/plugins/processing/algs/gdal/gdaladdo.py
Expand Up @@ -29,7 +29,8 @@

from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsProcessingParameterRasterLayer,
from qgis.core import (QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterEnum,
QgsProcessingParameterString,
QgsProcessingParameterBoolean,
Expand Down Expand Up @@ -110,6 +111,9 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

fileName = inLayer.source()

arguments = []
Expand Down
9 changes: 7 additions & 2 deletions python/plugins/processing/algs/gdal/gdalinfo.py
Expand Up @@ -28,7 +28,8 @@
import os

from qgis.PyQt.QtGui import QIcon
from qgis.core import (QgsProcessingParameterRasterLayer,
from qgis.core import (QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBoolean,
QgsProcessingParameterFileDestination)
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
Expand Down Expand Up @@ -97,7 +98,11 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments.append('-nogcp')
if self.parameterAsBool(parameters, self.NO_METADATA, context):
arguments.append('-nomd')
arguments.append(self.parameterAsRasterLayer(parameters, self.INPUT, context).source())
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if raster is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(raster.source())
return [self.commandName(), GdalUtils.escapeAndJoin(arguments)]

def processAlgorithm(self, parameters, context, feedback):
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/hillshade.py
Expand Up @@ -29,6 +29,7 @@
import os

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
Expand Down Expand Up @@ -129,6 +130,9 @@ def commandName(self):
def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments = ['hillshade']
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(inLayer.source())

out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
Expand Down
3 changes: 3 additions & 0 deletions python/plugins/processing/algs/gdal/nearblack.py
Expand Up @@ -30,6 +30,7 @@
from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBoolean,
Expand Down Expand Up @@ -97,6 +98,8 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments = []
arguments.append(inLayer.source())
Expand Down
6 changes: 5 additions & 1 deletion python/plugins/processing/algs/gdal/ogrinfo.py
Expand Up @@ -26,7 +26,8 @@
__revision__ = '$Format:%H$'


from qgis.core import (QgsProcessingParameterVectorLayer,
from qgis.core import (QgsProcessingException,
QgsProcessingParameterVectorLayer,
QgsProcessingParameterBoolean,
QgsProcessingParameterFileDestination)
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
Expand Down Expand Up @@ -81,6 +82,9 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments.append('-nomd')

inLayer = self.parameterAsVectorLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidSourceError(parameters, self.INPUT))

connectionString = GdalUtils.ogrConnectionString(inLayer.source(), context)
arguments.append(connectionString)
return arguments
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/pct2rgb.py
Expand Up @@ -30,6 +30,7 @@
from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
QgsProcessingParameterBoolean,
Expand Down Expand Up @@ -83,6 +84,9 @@ def commandName(self):
def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments = []
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(inLayer.source())

out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/polygonize.py
Expand Up @@ -31,6 +31,7 @@
from qgis.PyQt.QtCore import QFileInfo

from qgis.core import (QgsProcessing,
QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
QgsProcessingParameterString,
Expand Down Expand Up @@ -91,6 +92,9 @@ def commandName(self):
def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments = []
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(inLayer.source())

outFile = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/proximity.py
Expand Up @@ -30,6 +30,7 @@
from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
Expand Down Expand Up @@ -136,6 +137,9 @@ def commandName(self):

def getConsoleCommands(self, parameters, context, feedback, executing=True):
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

distance = self.parameterAsDouble(parameters, self.MAX_DISTANCE, context)
replaceValue = self.parameterAsDouble(parameters, self.REPLACE, context)
if self.NODATA in parameters and parameters[self.NODATA] is not None:
Expand Down
7 changes: 6 additions & 1 deletion python/plugins/processing/algs/gdal/rgb2pct.py
Expand Up @@ -31,6 +31,7 @@
from qgis.PyQt.QtGui import QIcon

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterNumber,
QgsProcessingParameterRasterDestination)
Expand Down Expand Up @@ -87,7 +88,11 @@ def getConsoleCommands(self, parameters, context, feedback, executing=True):
out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
arguments.append('-of')
arguments.append(QgsRasterFileWriter.driverForExtension(os.path.splitext(out)[1]))
arguments.append(self.parameterAsRasterLayer(parameters, self.INPUT, context).source())
raster = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if raster is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(raster.source())
arguments.append(out)

if isWindows():
Expand Down
4 changes: 4 additions & 0 deletions python/plugins/processing/algs/gdal/roughness.py
Expand Up @@ -28,6 +28,7 @@
import os

from qgis.core import (QgsRasterFileWriter,
QgsProcessingException,
QgsProcessingParameterDefinition,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterBand,
Expand Down Expand Up @@ -91,6 +92,9 @@ def commandName(self):
def getConsoleCommands(self, parameters, context, feedback, executing=True):
arguments = ['roughness']
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
if inLayer is None:
raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

arguments.append(inLayer.source())

out = self.parameterAsOutputLayer(parameters, self.OUTPUT, context)
Expand Down

0 comments on commit f4599f1

Please sign in to comment.