Skip to content

Commit ee8b74f

Browse files
author
Giovanni Manghi
committedOct 21, 2014
fix processing gdal_rasterize to allow write vector values in a existing raster layer
1 parent 4bcde11 commit ee8b74f

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed
 

‎python/plugins/processing/algs/gdal/rasterize.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from processing.core.parameters import ParameterTableField
3232
from processing.core.parameters import ParameterSelection
3333
from processing.core.parameters import ParameterNumber
34+
from processing.core.parameters import ParameterBoolean
3435
from processing.core.outputs import OutputRaster
3536
from processing.algs.gdal.GdalUtils import GdalUtils
3637

@@ -42,6 +43,7 @@ class rasterize(GdalAlgorithm):
4243
DIMENSIONS = 'DIMENSIONS'
4344
WIDTH = 'WIDTH'
4445
HEIGHT = 'HEIGHT'
46+
WRITEOVER = 'WRITEOVER'
4547
RTYPE = 'RTYPE'
4648
OUTPUT = 'OUTPUT'
4749

@@ -56,8 +58,10 @@ def defineCharacteristics(self):
5658
self.addParameter(ParameterVector(self.INPUT, 'Input layer'))
5759
self.addParameter(ParameterTableField(self.FIELD, 'Attribute field',
5860
self.INPUT))
61+
self.addParameter(ParameterBoolean(self.WRITEOVER,
62+
'Write values inside an existing raster layer(*)', False))
5963
self.addParameter(ParameterSelection(self.DIMENSIONS,
60-
'Set output raster size', ['Output size in pixels',
64+
'Set output raster size (ignored if above option is checked)', ['Output size in pixels',
6165
'Output resolution in map units per pixel'], 1))
6266
self.addParameter(ParameterNumber(self.WIDTH, 'Horizontal', 0.0,
6367
99999999.999999, 100.0))
@@ -69,22 +73,24 @@ def defineCharacteristics(self):
6973
self.addOutput(OutputRaster(self.OUTPUT, 'Output layer'))
7074

7175
def processAlgorithm(self, progress):
76+
writeOver = self.getParameterValue(self.WRITEOVER)
77+
7278
arguments = []
7379
arguments.append('-a')
7480
arguments.append(str(self.getParameterValue(self.FIELD)))
75-
76-
arguments.append('-ot')
77-
arguments.append(self.TYPE[self.getParameterValue(self.RTYPE)])
78-
79-
dimType = self.getParameterValue(self.DIMENSIONS)
80-
if dimType == 0:
81-
# size in pixels
82-
arguments.append('-ts')
83-
else:
84-
# resolution in map units per pixel
85-
arguments.append('-tr')
86-
arguments.append(str(self.getParameterValue(self.WIDTH)))
87-
arguments.append(str(self.getParameterValue(self.HEIGHT)))
81+
82+
if not writeOver:
83+
arguments.append('-ot')
84+
arguments.append(self.TYPE[self.getParameterValue(self.RTYPE)])
85+
dimType = self.getParameterValue(self.DIMENSIONS)
86+
if dimType == 0:
87+
# size in pixels
88+
arguments.append('-ts')
89+
else:
90+
# resolution in map units per pixel
91+
arguments.append('-tr')
92+
arguments.append(str(self.getParameterValue(self.WIDTH)))
93+
arguments.append(str(self.getParameterValue(self.HEIGHT)))
8894

8995
arguments.append('-l')
9096
arguments.append(

0 commit comments

Comments
 (0)
Please sign in to comment.