Skip to content

Commit edf7346

Browse files
authored
[processing] use a vector feature source for gdal clip raster by mask (#5351)
1 parent 5b74bdf commit edf7346

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

python/plugins/processing/algs/gdal/ClipRasterByMask.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from qgis.core import (QgsRasterFileWriter,
3333
QgsProcessing,
3434
QgsProcessingParameterDefinition,
35-
QgsProcessingParameterVectorLayer,
35+
QgsProcessingParameterFeatureSource,
3636
QgsProcessingParameterRasterLayer,
3737
QgsProcessingParameterEnum,
3838
QgsProcessingParameterString,
@@ -65,9 +65,9 @@ def __init__(self):
6565
def initAlgorithm(self, config=None):
6666
self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT,
6767
self.tr('Input layer')))
68-
self.addParameter(QgsProcessingParameterVectorLayer(self.MASK,
69-
self.tr('Mask layer'),
70-
[QgsProcessing.TypeVectorPolygon]))
68+
self.addParameter(QgsProcessingParameterFeatureSource(self.MASK,
69+
self.tr('Mask layer'),
70+
[QgsProcessing.TypeVectorPolygon]))
7171
self.addParameter(QgsProcessingParameterNumber(self.NODATA,
7272
self.tr('Assign a specified nodata value to output bands'),
7373
type=QgsProcessingParameterNumber.Double,
@@ -119,8 +119,7 @@ def group(self):
119119
def getConsoleCommands(self, parameters, context, feedback):
120120
inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
121121

122-
maskLayer = self.parameterAsVectorLayer(parameters, self.MASK, context)
123-
connectionString = GdalUtils.ogrConnectionString(maskLayer.source(), context)
122+
maskLayer, maskLayerName = self.getOgrCompatibleSource(self.MASK, parameters, context, feedback)
124123

125124
nodata = self.parameterAsDouble(parameters, self.NODATA, context)
126125
options = self.parameterAsString(parameters, self.OPTIONS, context)
@@ -140,10 +139,7 @@ def getConsoleCommands(self, parameters, context, feedback):
140139
arguments.append('-tap')
141140

142141
arguments.append('-cutline')
143-
arguments.append(connectionString)
144-
if maskLayer.subsetString():
145-
arguments.append('-cwhere')
146-
arguments.append(maskLayer.subsetString())
142+
arguments.append(maskLayer)
147143

148144
if self.parameterAsBool(parameters, self.CROP_TO_CUTLINE, context):
149145
arguments.append('-crop_to_cutline')

0 commit comments

Comments
 (0)