implement few suggested changes

This commit is contained in:
Giovanni Manghi 2019-10-02 08:35:31 +01:00 committed by Nyall Dawson
parent b31c4124f4
commit 75a1ad1e7b

View File

@ -21,10 +21,6 @@ __author__ = 'Alexander Bruy'
__date__ = 'September 2013' __date__ = 'September 2013'
__copyright__ = '(C) 2013, Alexander Bruy' __copyright__ = '(C) 2013, Alexander Bruy'
# This will get replaced with a git SHA1 when you do a git archive
__revision__ = '$Format:%H$'
import os import os
from qgis.PyQt.QtGui import QIcon from qgis.PyQt.QtGui import QIcon
@ -36,10 +32,7 @@ from qgis.core import (QgsRasterFileWriter,
QgsProcessingParameterRasterLayer, QgsProcessingParameterRasterLayer,
QgsProcessingParameterNumber, QgsProcessingParameterNumber,
QgsProcessingParameterString, QgsProcessingParameterString,
QgsProcessingParameterEnum, QgsProcessingParameterBoolean)
QgsProcessingParameterExtent,
QgsProcessingParameterBoolean,
QgsProcessingParameterRasterDestination)
from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
from processing.algs.gdal.GdalUtils import GdalUtils from processing.algs.gdal.GdalUtils import GdalUtils
@ -52,6 +45,7 @@ class rasterize_over(GdalAlgorithm):
FIELD = 'FIELD' FIELD = 'FIELD'
INPUT_RASTER = 'INPUT_RASTER' INPUT_RASTER = 'INPUT_RASTER'
ADD = 'ADD' ADD = 'ADD'
EXTRA = 'EXTRA'
def __init__(self): def __init__(self):
super().__init__() super().__init__()
@ -62,19 +56,29 @@ class rasterize_over(GdalAlgorithm):
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT, self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
self.tr('Input vector layer'))) self.tr('Input vector layer')))
self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT_RASTER, self.tr('Input raster layer'))) self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT_RASTER, self.tr('Input raster layer')))
self.addParameter(QgsProcessingParameterField(self.FIELD, self.addParameter(QgsProcessingParameterField(self.FIELD,
self.tr('Field to use for a burn-in value'), self.tr('Field to use for burn in value'),
None, None,
self.INPUT, self.INPUT,
QgsProcessingParameterField.Numeric, QgsProcessingParameterField.Numeric,
optional=False)) optional=False))
add_param = QgsProcessingParameterBoolean(self.ADD, add_param = QgsProcessingParameterBoolean(self.ADD,
self.tr('Adds the new value to the existing raster'), self.tr('Add burn in values to existing raster values'),
defaultValue=False) defaultValue=False)
add_param.setFlags(add_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) add_param.setFlags(add_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
self.addParameter(add_param) self.addParameter(add_param)
extra_param = QgsProcessingParameterString(self.EXTRA,
self.tr('Additional command-line parameters'),
defaultValue=None,
optional=True)
extra_param.setFlags(extra_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
self.addParameter(extra_param)
def name(self): def name(self):
return 'rasterize_over' return 'rasterize_over'
@ -108,6 +112,10 @@ class rasterize_over(GdalAlgorithm):
if self.parameterAsBool(parameters, self.ADD, context): if self.parameterAsBool(parameters, self.ADD, context):
arguments.append('-add') arguments.append('-add')
if self.EXTRA in parameters and parameters[self.EXTRA] not in (None, ''):
extra = self.parameterAsString(parameters, self.EXTRA, context)
arguments.append(extra)
arguments.append(ogrLayer) arguments.append(ogrLayer)
arguments.append(inLayer.source()) arguments.append(inLayer.source())