Skip to content

Commit 421dfb2

Browse files
committed
Merge pull request #1881 from gioman/fix_processing_gdal_dstnodata
fix processing gdalwarp dstnodata
2 parents 91c4e7a + 1fe580c commit 421dfb2

File tree

2 files changed

+23
-11
lines changed

2 files changed

+23
-11
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ def defineCharacteristics(self):
5656
self.addParameter(ParameterVector(self.MASK, self.tr('Mask layer'),
5757
[ParameterVector.VECTOR_TYPE_POLYGON]))
5858
self.addParameter(ParameterString(self.NO_DATA,
59-
self.tr("Nodata value, leave as 'none' to take the nodata value from input"),
60-
'none'))
59+
self.tr("Nodata value, leave blank to take the nodata value from input"),
60+
'-9999'))
6161
self.addParameter(ParameterBoolean(self.ALPHA_BAND,
6262
self.tr('Create and output alpha band'), False))
6363
self.addParameter(ParameterBoolean(self.KEEP_RESOLUTION,
@@ -78,8 +78,9 @@ def processAlgorithm(self, progress):
7878
arguments.append('-q')
7979
arguments.append('-of')
8080
arguments.append(GdalUtils.getFormatShortNameFromFilename(out))
81-
arguments.append('-dstnodata')
82-
arguments.append(noData)
81+
if len(noData) > 0:
82+
arguments.append('-dstnodata')
83+
arguments.append(noData)
8384

8485
if keepResolution:
8586
r = gdal.Open(self.getParameterValue(self.INPUT))

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

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class warp(GdalAlgorithm):
4444
METHOD = 'METHOD'
4545
METHOD_OPTIONS = ['near', 'bilinear', 'cubic', 'cubicspline', 'lanczos']
4646
TR = 'TR'
47+
NO_DATA = 'NO_DATA'
4748
EXTRA = 'EXTRA'
4849
RTYPE = 'RTYPE'
4950

@@ -54,9 +55,12 @@ def defineCharacteristics(self):
5455
self.group = '[GDAL] Projections'
5556
self.addParameter(ParameterRaster(self.INPUT, self.tr('Input layer'), False))
5657
self.addParameter(ParameterCrs(self.SOURCE_SRS,
57-
self.tr('Source SRS'), 'EPSG:4326'))
58+
self.tr('Source SRS'), ''))
5859
self.addParameter(ParameterCrs(self.DEST_SRS,
59-
self.tr('Destination SRS'), 'EPSG:4326'))
60+
self.tr('Destination SRS'), ''))
61+
self.addParameter(ParameterString(self.NO_DATA,
62+
self.tr("Nodata value, leave blank to take the nodata value from input"),
63+
'-9999'))
6064
self.addParameter(ParameterNumber(self.TR,
6165
self.tr('Output file resolution in target georeferenced units (leave 0 for no change)'),
6266
0.0, None, 0.0))
@@ -70,14 +74,21 @@ def defineCharacteristics(self):
7074
self.addOutput(OutputRaster(self.OUTPUT, self.tr('Output layer')))
7175

7276
def processAlgorithm(self, progress):
77+
noData = str(self.getParameterValue(self.NO_DATA))
78+
srccrs = self.getParameterValue(self.SOURCE_SRS)
79+
dstcrs = self.getParameterValue(self.DEST_SRS)
7380
arguments = []
7481
arguments.append('-ot')
7582
arguments.append(self.TYPE[self.getParameterValue(self.RTYPE)])
76-
arguments.append('-s_srs')
77-
arguments.append(str(self.getParameterValue(self.SOURCE_SRS)))
78-
arguments.append('-t_srs')
79-
crsId = self.getParameterValue(self.DEST_SRS)
80-
arguments.append(str(crsId))
83+
if len(srccrs) > 0:
84+
arguments.append('-s_srs')
85+
arguments.append(srccrs)
86+
if len(dstcrs) > 0:
87+
arguments.append('-t_srs')
88+
arguments.append(dstcrs)
89+
if len(noData) > 0:
90+
arguments.append('-dstnodata')
91+
arguments.append(noData)
8192
arguments.append('-r')
8293
arguments.append(
8394
self.METHOD_OPTIONS[self.getParameterValue(self.METHOD)])

0 commit comments

Comments
 (0)