Skip to content

Commit 021da12

Browse files
committedJun 6, 2016
[BUGFIX][Processing] RScript: Insert None value as NULL
1 parent 2a746f4 commit 021da12

File tree

1 file changed

+47
-29
lines changed

1 file changed

+47
-29
lines changed
 

‎python/plugins/processing/algs/r/RAlgorithm.py

Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -373,37 +373,46 @@ def getImportCommands(self):
373373

374374
for param in self.parameters:
375375
if isinstance(param, ParameterRaster):
376-
value = param.value
377-
value = value.replace('\\', '/')
378-
if self.passFileNames:
379-
commands.append(param.name + ' = "' + value + '"')
380-
elif self.useRasterPackage:
381-
commands.append(param.name + ' = ' + 'brick("' + value
382-
+ '")')
376+
if param.value is None:
377+
commands.append(param.name + '= NULL')
383378
else:
384-
commands.append(param.name + ' = ' + 'readGDAL("' + value
385-
+ '")')
379+
value = param.value
380+
value = value.replace('\\', '/')
381+
if self.passFileNames:
382+
commands.append(param.name + ' = "' + value + '"')
383+
elif self.useRasterPackage:
384+
commands.append(param.name + ' = ' + 'brick("' + value
385+
+ '")')
386+
else:
387+
commands.append(param.name + ' = ' + 'readGDAL("' + value
388+
+ '")')
386389
elif isinstance(param, ParameterVector):
387-
value = param.getSafeExportedLayer()
388-
value = value.replace('\\', '/')
389-
filename = os.path.basename(value)
390-
filename = filename[:-4]
391-
folder = os.path.dirname(value)
392-
if self.passFileNames:
393-
commands.append(param.name + ' = "' + value + '"')
390+
if param.value is None:
391+
commands.append(param.name + '= NULL')
394392
else:
395-
commands.append(param.name + ' = readOGR("' + folder
396-
+ '",layer="' + filename + '")')
393+
value = param.getSafeExportedLayer()
394+
value = value.replace('\\', '/')
395+
filename = os.path.basename(value)
396+
filename = filename[:-4]
397+
folder = os.path.dirname(value)
398+
if self.passFileNames:
399+
commands.append(param.name + ' = "' + value + '"')
400+
else:
401+
commands.append(param.name + ' = readOGR("' + folder
402+
+ '",layer="' + filename + '")')
397403
elif isinstance(param, ParameterTable):
398-
value = param.value
399-
if not value.lower().endswith('csv'):
400-
raise GeoAlgorithmExecutionException(
401-
'Unsupported input file format.\n' + value)
402-
if self.passFileNames:
403-
commands.append(param.name + ' = "' + value + '"')
404+
if param.value is None:
405+
commands.append(param.name + '= NULL')
404406
else:
405-
commands.append(param.name + ' <- read.csv("' + value
406-
+ '", head=TRUE, sep=",")')
407+
value = param.value
408+
if not value.lower().endswith('csv'):
409+
raise GeoAlgorithmExecutionException(
410+
'Unsupported input file format.\n' + value)
411+
if self.passFileNames:
412+
commands.append(param.name + ' = "' + value + '"')
413+
else:
414+
commands.append(param.name + ' <- read.csv("' + value
415+
+ '", head=TRUE, sep=",")')
407416
elif isinstance(param, ParameterExtent):
408417
if param.value:
409418
tokens = unicode(param.value).split(',')
@@ -413,12 +422,21 @@ def getImportCommands(self):
413422
else:
414423
commands.append(param.name + ' = NULL')
415424
elif isinstance(param, ParameterCrs):
416-
commands.append(param.name + ' = "' + param.value + '"')
425+
if param.value is None:
426+
commands.append(param.name + '= NULL')
427+
else:
428+
commands.append(param.name + ' = "' + param.value + '"')
417429
elif isinstance(param, (ParameterTableField, ParameterTableMultipleField, ParameterString,
418430
ParameterFile)):
419-
commands.append(param.name + '="' + param.value + '"')
431+
if param.value is None:
432+
commands.append(param.name + '= NULL')
433+
else:
434+
commands.append(param.name + '="' + param.value + '"')
420435
elif isinstance(param, (ParameterNumber, ParameterSelection)):
421-
commands.append(param.name + '=' + unicode(param.value))
436+
if param.value is None:
437+
commands.append(param.name + '= NULL')
438+
else:
439+
commands.append(param.name + '=' + unicode(param.value))
422440
elif isinstance(param, ParameterBoolean):
423441
if param.value:
424442
commands.append(param.name + '=TRUE')

0 commit comments

Comments
 (0)
Please sign in to comment.