Skip to content

Commit f2fc33b

Browse files
committed
more grass-sextante improvements (mainly fine tuning some algorithms)
1 parent 6637268 commit f2fc33b

14 files changed

+38
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
diff --git a/grass/description/r.neighbors.txt b/grass/description/r.neighbors.txt
2+
index 076ad54..5d7017e 100644
3+
--- a/grass/description/r.neighbors.txt
4+
+++ b/grass/description/r.neighbors.txt
5+
@@ -5,4 +5,6 @@
6+
ParameterSelection|method|Neighborhood operation|average;median;mode;minimum;maximum;stddev;sum;variance;diversity;interspersion
7+
ParameterNumber|size|Neighborhood size|1.0|None|3
8+
ParameterBoolean|-c|Use circular neighborhood|False
9+
+*ParameterBoolean|-a|Do not align output with the input|False
10+
+*ParameterFile|weight|File containing weights|False
11+
OutputRaster|output|Name for output raster map

python/plugins/sextante/grass/GrassAlgorithm.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@ def processAlgorithm(self, progress):
269269
elif isinstance(param, ParameterSelection):
270270
idx = int(param.value)
271271
command+=(" " + param.name + "=" + str(param.options[idx]));
272+
elif isinstance(param, ParameterSelection):
273+
command+=(" " + param.name + "=" + str(param.value));
272274
else:
273275
command+=(" " + param.name + "=" + str(param.value));
274276

@@ -331,7 +333,7 @@ def processAlgorithm(self, progress):
331333
def postProcessResults(self):
332334
name = self.commandLineName().replace('.','_')[len('grass:'):]
333335
try:
334-
module = importlib.import_module('sextante.grass.postproc.' + name)
336+
module = importlib.import_module('sextante.grass.ext.' + name)
335337
except ImportError:
336338
return
337339
if hasattr(module, 'postProcessResults'):
@@ -396,4 +398,14 @@ def getTempFilename(self):
396398

397399
def commandLineName(self):
398400
return "grass:" + self.name[:self.name.find(" ")]
401+
402+
def checkParameterValuesBeforeExecuting(self):
403+
name = self.commandLineName().replace('.','_')[len('grass:'):]
404+
try:
405+
module = importlib.import_module('sextante.grass.ext.' + name)
406+
except ImportError:
407+
return
408+
if hasattr(module, 'checkParameterValuesBeforeExecuting'):
409+
func = getattr(module,'checkParameterValuesBeforeExecuting')
410+
return func(self)
399411

Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
r.cross
22
r.cross - Creates a cross product of the category values from multiple raster map layers.
33
Raster (r.*)
4-
ParameterMultipleInput|input|Names of 2-30 input raster maps|3.0|False
4+
ParameterMultipleInput|input|Input raster layers|3.0|False
55
ParameterBoolean|-z|Non-zero data only|False
6-
OutputRaster|output|Name for output raster map
6+
OutputRaster|output|Output layer

python/plugins/sextante/grass/description/r.neighbors.txt

+2
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ ParameterRaster|input|Name of input raster map|False
55
ParameterSelection|method|Neighborhood operation|average;median;mode;minimum;maximum;stddev;sum;variance;diversity;interspersion
66
ParameterNumber|size|Neighborhood size|1.0|None|3
77
ParameterBoolean|-c|Use circular neighborhood|False
8+
*ParameterBoolean|-a|Do not align output with the input|False
9+
*ParameterFile|weight|File containing weights|False
810
OutputRaster|output|Name for output raster map

python/plugins/sextante/grass/description/v.to.rast.attribute.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ v.to.rast.attribute - Converts (rasterize) a vector layer into a raster layer.
33
Vector (v.*)
44
ParameterVector|input|Input vector layer|-1|False
55
ParameterSelection|use|Source of raster values|attr
6-
ParameterTableField|column|Name of column for 'attr' parameter (data type must be numeric)|input
6+
ParameterTableField|column|Name of column for 'attr' parameter (data type must be numeric)|input|0
77
OutputRaster|output|Rasterized layer

python/plugins/sextante/parameters/ParameterFile.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,32 @@
2727

2828
class ParameterFile(Parameter):
2929

30-
def __init__(self, name="", description="", isFolder = False):
30+
def __init__(self, name="", description="", isFolder = False, optional = True):
3131
Parameter.__init__(self, name, description)
3232
self.value = None
3333
self.isFolder = isFolder
34+
self.optional = optional
3435

3536
def getValueAsCommandLineParameter(self):
3637
return "\"" + str(self.value) + "\""
3738

3839
def serialize(self):
3940
return self.__module__.split(".")[-1] + "|" + self.name + "|" + self.description +\
40-
"|" + str(self.isFolder)
41+
"|" + str(self.isFolder) + "|" + str(self.optional)
4142

4243
def setValue(self, obj):
4344
self.value = str(obj)
4445
if self.value.strip() == "":
45-
return False
46+
if not self.optional:
47+
return False
4648
return True
4749

4850
def deserialize(self, s):
4951
tokens = s.split("|")
50-
return ParameterFile(tokens[0], tokens[1], tokens[2] == str(True))
52+
if len(tokens) == 4:
53+
return ParameterFile(tokens[0], tokens[1], tokens[2] == str(True), tokens[3] == str(True))
54+
else:
55+
return ParameterFile(tokens[0], tokens[1], tokens[2] == str(True))
5156

5257
def getAsScriptCode(self):
5358
if self.isFolder:

0 commit comments

Comments
 (0)