Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update SAGA ParameterMultipleInput parameters
  • Loading branch information
nyalldawson authored and alexbruy committed Nov 9, 2017
1 parent d9ac377 commit 7953936
Show file tree
Hide file tree
Showing 52 changed files with 81 additions and 77 deletions.
46 changes: 25 additions & 21 deletions python/plugins/processing/algs/saga/SagaAlgorithm.py
Expand Up @@ -28,18 +28,20 @@

import os
import importlib
from copy import deepcopy
from qgis.core import (QgsProcessingUtils,
QgsProcessingException,
QgsMessageLog,
QgsProcessing,
QgsProcessingParameterRasterLayer,
QgsProcessingParameterFeatureSource,
QgsProcessingParameterBoolean,
QgsProcessingParameterNumber,
QgsProcessingParameterEnum)
QgsProcessingParameterEnum,
QgsProcessingParameterMultipleLayers)
from processing.core.ProcessingConfig import ProcessingConfig
from processing.core.parameters import (getParameterFromString,
ParameterExtent,
ParameterMultipleInput,
ParameterFixedTable)
from processing.core.outputs import (getOutputFromString,
OutputVector,
Expand Down Expand Up @@ -162,13 +164,13 @@ def processAlgorithm(self, parameters, context, feedback):
else:
raise QgsProcessingException(
self.tr('Unsupported file format'))
elif isinstance(param, ParameterMultipleInput):
elif isinstance(param, QgsProcessingParameterMultipleLayers):
if param.name() not in parameters or parameters[param.name()] is None:
continue
layers = param.value.split(';')
layers = self.parameterAsLayerList(parameters, param.name(), context)
if layers is None or len(layers) == 0:
continue
if param.datatype == ParameterMultipleInput.TYPE_RASTER:
if param.layerType() == QgsProcessing.TypeRaster:
for i, layerfile in enumerate(layers):
if layerfile.endswith('sdat'):
layerfile = param.value[:-4] + "sgrd"
Expand All @@ -178,16 +180,18 @@ def processAlgorithm(self, parameters, context, feedback):
if exportCommand is not None:
commands.append(exportCommand)
param.value = ";".join(layers)
elif param.datatype in [dataobjects.TYPE_VECTOR_ANY,
dataobjects.TYPE_VECTOR_LINE,
dataobjects.TYPE_VECTOR_POLYGON,
dataobjects.TYPE_VECTOR_POINT]:
for layerfile in layers:
layer = QgsProcessingUtils.mapLayerFromString(layerfile, context, False)
if layer:
filename = dataobjects.exportVectorLayer(layer)
self.exportedLayers[layerfile] = filename
elif not layerfile.endswith('shp'):
else:
temp_params = deepcopy(parameters)
for layer in layers:
temp_params[param.name()] = layer
layer_path = self.parameterAsCompatibleSourceLayerPath(temp_params, param.name(), context, 'shp',
feedback=feedback)
if layer_path:
if param.name() in self.exportedLayers:
self.exportedLayers[param.name()].append(layer_path)
else:
self.exportedLayers[param.name()] = [layer_path]
else:
raise QgsProcessingException(
self.tr('Unsupported file format'))

Expand All @@ -209,11 +213,11 @@ def processAlgorithm(self, parameters, context, feedback):
+ self.exportedLayers[value] + '"'
else:
command += ' -' + param.name() + ' "' + value + '"'
elif isinstance(param, ParameterMultipleInput):
elif isinstance(param, QgsProcessingParameterMultipleLayers):
s = parameters[param.name()]
for layer in list(self.exportedLayers.keys()):
s = s.replace(layer, self.exportedLayers[layer])
command += ' -' + param.name() + ' "' + s + '"'
command += ' -' + ';'.join(self.exportedLayers[param.name()]) + ' "' + s + '"'
elif isinstance(param, QgsProcessingParameterBoolean):
if parameters[param.name()]:
command += ' -' + param.name().strip() + " true"
Expand Down Expand Up @@ -343,10 +347,10 @@ def checkParameterValues(self, parameters, context):
files = []
if isinstance(param, QgsProcessingParameterRasterLayer):
files = [parameters[param.name()]]
elif (isinstance(param, ParameterMultipleInput) and
param.datatype == ParameterMultipleInput.TYPE_RASTER):
if param.value is not None:
files = param.value.split(";")
elif (isinstance(param, QgsProcessingParameterMultipleLayers) and
param.datatype == QgsProcessing.TypeRaster):
if parameters[param.name()] is not None:
files = parameters[param.name()]
for f in files:
layer = QgsProcessingUtils.mapLayerFromString(f, context)
if layer is None:
Expand Down
@@ -1,7 +1,7 @@
Add Grid Values to Points
shapes_grid
QgsProcessingParameterFeatureSource|SHAPES|Points|0|None|False
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterEnum|INTERPOL|Interpolation|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
QgsProcessingParameterVectorDestination|RESULT|Result
AllowUnmatching
@@ -1,7 +1,7 @@
Add Grid Values to Shapes
shapes_grid
QgsProcessingParameterFeatureSource|SHAPES|Shapes|-1|None|False
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterEnum|INTERPOL|Interpolation|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
QgsProcessingParameterVectorDestination|RESULT|Result
AllowUnmatching
@@ -1,5 +1,5 @@
Analytical Hierarchy Process
grid_analysis
ParameterMultipleInput|GRIDS|Input Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Input Grids|3|None|False
QgsProcessingParameterFeatureSource|TABLE|Pairwise Comparisons Table|5|None|False
QgsProcessingParameterRasterDestination|OUTPUT|Output Grid
@@ -1,6 +1,6 @@
Artificial Neural Network Classification (OpenCV)
imagery_opencv
ParameterMultipleInput|FEATURES|Features|3|False
QgsProcessingParameterMultipleLayers|FEATURES|Features|3|None|False
QgsProcessingParameterBoolean|NORMALIZE|Normalize|False
QgsProcessingParameterFeatureSource|TRAIN_AREAS|Training Areas|2|None|False
QgsProcessingParameterFeatureSource|TRAIN_CLASS|Class Identifier|5|None|False
Expand Down
@@ -1,9 +1,9 @@
Bioclimatic Variables
climate_tools
ParameterMultipleInput|TMEAN|Mean Temperature|3|False
ParameterMultipleInput|TMIN|Minimum Temperature|3|False
ParameterMultipleInput|TMAX|Maximum Temperature|3|False
ParameterMultipleInput|P|Precipitation|3|False
QgsProcessingParameterMultipleLayers|TMEAN|Mean Temperature|3|None|False
QgsProcessingParameterMultipleLayers|TMIN|Minimum Temperature|3|None|False
QgsProcessingParameterMultipleLayers|TMAX|Maximum Temperature|3|None|False
QgsProcessingParameterMultipleLayers|P|Precipitation|3|None|False
QgsProcessingParameterRasterDestination|BIO_01|Annual Mean Temperature
QgsProcessingParameterRasterDestination|BIO_02|Mean Diurnal Range
QgsProcessingParameterRasterDestination|BIO_03|Isothermality
Expand Down
@@ -1,6 +1,6 @@
Boosting Classification (OpenCV)
imagery_opencv
ParameterMultipleInput|FEATURES|Features|3|False
QgsProcessingParameterMultipleLayers|FEATURES|Features|3|None|False
QgsProcessingParameterBoolean|NORMALIZE|Normalize|False
QgsProcessingParameterFeatureSource|TRAIN_AREAS|Training Areas|-1|None|False
QgsProcessingParameterFeatureSource|TRAIN_CLASS|Class Identifier|5|None|False
Expand Down
@@ -1,6 +1,6 @@
Categorical Coincidence
statistics_grid
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterRasterDestination|CATEGORIES|Number of Categories
QgsProcessingParameterRasterDestination|COINCIDENCE|Coincidence
QgsProcessingParameterRasterDestination|MAJ_COUNT|Dominance of Majority
Expand Down
@@ -1,6 +1,6 @@
K-Means Clustering for Grids
imagery_classification
ParameterMultipleInput|GRIDS|Grids|3.0|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3.0|None|False
QgsProcessingParameterEnum|METHOD|Method|[0] Iterative Minimum Distance (Forgy 1965);[1] Hill-Climbing (Rubin 1967);[2] Combined Minimum Distance / Hillclimbing
QgsProcessingParameterNumber|NCLUSTER|Clusters|QgsProcessingParameterNumber.Integer|10|False|2|None
QgsProcessingParameterNumber|MAXITER|Maximum Iterations|QgsProcessingParameterNumber.Integer|0|False|0|None
Expand Down
@@ -1,4 +1,4 @@
Covered Distance
grid_analysis
ParameterMultipleInput|INPUT|Grids|3|False
QgsProcessingParameterMultipleLayers|INPUT|Grids|3|None|False
QgsProcessingParameterRasterDestination|RESULT|Covered Distance
@@ -1,6 +1,6 @@
Decision Tree Classification (OpenCV)
imagery_opencv
ParameterMultipleInput|FEATURES|Features|3|False
QgsProcessingParameterMultipleLayers|FEATURES|Features|3|None|False
QgsProcessingParameterBoolean|NORMALIZE|Normalize|False
QgsProcessingParameterFeatureSource|TRAIN_AREAS|Training Areas|-1|None|False
QgsProcessingParameterFeatureSource|TRAIN_CLASS|Class Identifier|5|None|False
Expand Down
@@ -1,6 +1,6 @@
Fast Region Growing Algorithm
imagery_rga
ParameterMultipleInput|INPUT|Input Grids|3|False
QgsProcessingParameterMultipleLayers|INPUT|Input Grids|3|None|False
QgsProcessingParameterRasterLayer|START|Seeds Grid|None|False
QgsProcessingParameterRasterLayer|REP|Smooth Rep|None|True
QgsProcessingParameterRasterDestination|RESULT|Segmente
Expand Down
@@ -1,5 +1,5 @@
Fuzzy Intersection (AND)
grid_calculus
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterEnum|TYPE|Operator Type|[0] min(a, b) (non-interactive);[1] a * b;[2] max(0, a + b - 1)
QgsProcessingParameterRasterDestination|AND|Intersection
@@ -1,5 +1,5 @@
Fuzzy Union (OR)
grid_calculus
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterEnum|TYPE|Operator Type|[0] max(a, b) (non-interactive);[1] a + b - a * b;[2] min(1, a + b)
QgsProcessingParameterRasterDestination|OR|Union
@@ -1,6 +1,6 @@
GWR for Multiple Predictor Grids
statistics_regression
ParameterMultipleInput|PREDICTORS|Predictors|3.0|False
QgsProcessingParameterMultipleLayers|PREDICTORS|Predictors|3.0|None|False
QgsProcessingParameterFeatureSource|POINTS|Points|0|None|False
ParameterTableField|DEPENDENT|Dependent Variable|POINTS|-1|False
QgsProcessingParameterEnum|RESOLUTION|Model Resolution|[0] same as predictors;[1] user defined|False|1
Expand Down
Expand Up @@ -2,7 +2,7 @@ Raster calculator|Grid Calculator
grid_calculus
AllowUnmatching
QgsProcessingParameterRasterLayer|GRIDS|Main input layer|None|False
ParameterMultipleInput|XGRIDS|Additional layers|3|True
QgsProcessingParameterMultipleLayers|XGRIDS|Additional layers|3|None|True
ParameterString|FORMULA|Formula|
QgsProcessingParameterEnum|RESAMPLING|Resampling Method|[0] Nearest Neighbour;[1] Bilinear Interpolation;[2] Bicubic Spline Interpolation;[3] B-Spline Interpolation|False|3
QgsProcessingParameterBoolean|USE_NODATA|Use NoData|False
Expand Down
@@ -1,6 +1,6 @@
Grid Statistics for Points
shapes_grid
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterFeatureSource|POINTS|Points|0|None|False
QgsProcessingParameterEnum|KERNEL_TYPE|Kernel Type|[0] square;[1] circle|False|0
QgsProcessingParameterNumber|KERNEL_SIZE|Kernel Size|QgsProcessingParameterNumber.Integer|1|False| 1|None
Expand Down
@@ -1,6 +1,6 @@
Grid Statistics for Polygons
shapes_grid
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterFeatureSource|POLYGONS|Polygons|2|None|False
QgsProcessingParameterEnum|METHOD|Method|[0] Standard;[1] Shape wise, supports overlapping polygons|False|1
QgsProcessingParameterEnum|NAMING|Grid Naming|[0] Grid number;[1] Grid name|False|1
Expand Down
@@ -1,6 +1,6 @@
Grid Values to Points
shapes_grid
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterFeatureSource|POLYGONS|Polygons|-1|None|True
QgsProcessingParameterBoolean|NODATA |Exclude NoData Cells|True
QgsProcessingParameterEnum|TYPE|Type|[0] nodes;[1] cells
Expand Down
@@ -1,4 +1,4 @@
Grids Product
grid_calculus
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterRasterDestination|RESULT|Product
@@ -1,4 +1,4 @@
Grids Sum
grid_calculus
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterRasterDestination|RESULT|Sum
@@ -1,6 +1,6 @@
ISODATA Clustering for Grids
imagery_classification
ParameterMultipleInput|FEATURES|Features|3|False
QgsProcessingParameterMultipleLayers|FEATURES|Features|3|None|False
QgsProcessingParameterRasterDestination|CLUSTER|Clusters
QgsProcessingParameterFeatureSource|STATISTICS|Statistics|5|None|False
QgsProcessingParameterBoolean|NORMALIZE|Normalize|False
Expand Down
@@ -1,6 +1,6 @@
K-Means Clustering for Grids
imagery_classification
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterRasterDestination|CLUSTER|Clusters
QgsProcessingParameterFeatureSource|STATISTICS|Statistics|5|None|False
QgsProcessingParameterEnum|METHOD|Method|[0] Iterative Minimum Distance (Forgy 1965);[1] Hill-Climbing (Rubin 1967);[2] Combined Minimum Distance / Hillclimbing|False|1
Expand Down
@@ -1,6 +1,6 @@
K-Nearest Neighbours Classification (OpenCV)
imagery_opencv
ParameterMultipleInput|FEATURES|Features|3|False
QgsProcessingParameterMultipleLayers|FEATURES|Features|3|None|False
QgsProcessingParameterBoolean|NORMALIZE|Normalize|False
QgsProcessingParameterFeatureSource|TRAIN_AREAS|Training Areas|-1|None|False
QgsProcessingParameterFeatureSource|TRAIN_CLASS|Class Identifier|5|None|False
Expand Down
@@ -1,5 +1,5 @@
Layer of extreme value
grid_analysis
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterEnum|CRITERIA|Method|[0] Maximum;[1] Minimum
QgsProcessingParameterRasterDestination|RESULT|Result
Expand Up @@ -2,6 +2,6 @@ Least Cost Paths
grid_analysis
QgsProcessingParameterFeatureSource|SOURCE|Source Point(s)|0|None|False
QgsProcessingParameterRasterLayer|DEM|Accumulated cost|None|False
ParameterMultipleInput|VALUES|Values|3|True
QgsProcessingParameterMultipleLayers|VALUES|Values|3|None|True
QgsProcessingParameterVectorDestination|POINTS|Profile (points)
QgsProcessingParameterVectorDestination|LINE|Profile (lines)
@@ -1,8 +1,8 @@
Maximum Entropy Presence Prediction
imagery_maxent
QgsProcessingParameterFeatureSource|PRESENCE|Presence Data|-1|None|False
ParameterMultipleInput|FEATURES_NUM|Numerical Features|3|True
ParameterMultipleInput|FEATURES_CAT|Categorical Features|3|True
QgsProcessingParameterMultipleLayers|FEATURES_NUM|Numerical Features|3|None|True
QgsProcessingParameterMultipleLayers|FEATURES_CAT|Categorical Features|3|None|True
QgsProcessingParameterRasterDestination|PREDICTION|Presence Prediction
QgsProcessingParameterRasterDestination|PROBABILITY|Presence Probability
QgsProcessingParameterNumber|BACKGROUND|Background Sample Density [Percent]|QgsProcessingParameterNumber.Double|1.000000|False| 0.000000| 100.000000
Expand Down
@@ -1,6 +1,6 @@
Merge Layers
shapes_tools
ParameterMultipleInput|INPUT|Input Layers|-1|True
QgsProcessingParameterMultipleLayers|INPUT|Input Layers|-1|None|True
QgsProcessingParameterBoolean|SRCINFO|Add source information|True
QgsProcessingParameterBoolean|MATCH|Match Fields by Name|True
QgsProcessingParameterVectorDestination|MERGED|Merged Layer
@@ -1,7 +1,7 @@
Mosaick raster layers|Mosaicking
grid_tools
AllowUnmatching
ParameterMultipleInput|GRIDS|Input Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Input Grids|3|None|False
ParameterString|NAME|Name|Mosaic
QgsProcessingParameterEnum|TYPE|Preferred data storage type|[0] 1 bit;[1] 1 byte unsigned integer;[2] 1 byte signed integer;[3] 2 byte unsigned integer;[4] 2 byte signed integer;[5] 4 byte unsigned integer;[6] 4 byte signed integer;[7] 4 byte floating point;[8] 8 byte floating point|False|7
QgsProcessingParameterEnum|RESAMPLING|Interpolation|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation|False|0
Expand Down
@@ -1,6 +1,6 @@
Multi-Band Variation
statistics_grid
ParameterMultipleInput|BANDS|Grids|3|False
QgsProcessingParameterMultipleLayers|BANDS|Grids|3|None|False
QgsProcessingParameterNumber|RADIUS|Radius [Cells]|QgsProcessingParameterNumber.Integer|1|False|None|None
QgsProcessingParameterEnum|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
QgsProcessingParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|QgsProcessingParameterNumber.Integer|1|False|None|None
Expand Down
@@ -1,7 +1,7 @@
Multiple Regression Analysis (Grid/Grids)
statistics_regression
QgsProcessingParameterRasterLayer|DEPENDENT|Dependent|None|False
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterEnum|INTERPOL|Grid Interpolation|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
QgsProcessingParameterBoolean|COORD_X |Include X Coordinate|True
QgsProcessingParameterBoolean|COORD_Y |Include Y Coordinate|True
Expand Down
@@ -1,7 +1,7 @@
Multiple Regression Analysis (Grid and Predictor Grids)
statistics_regression
QgsProcessingParameterRasterLayer|DEPENDENT|Dependent Variable|None|False
ParameterMultipleInput|PREDICTORS|Predictors|3|False
QgsProcessingParameterMultipleLayers|PREDICTORS|Predictors|3|None|False
QgsProcessingParameterRasterDestination|REGRESSION|Regression
QgsProcessingParameterRasterDestination|RESIDUALS|Residuals
QgsProcessingParameterFeatureSource|INFO_COEFF|Details: Coefficients|5|None|True
Expand Down
@@ -1,6 +1,6 @@
Multiple Regression Analysis (Points/Grids)
statistics_regression
ParameterMultipleInput|GRIDS|Grids|3|False
QgsProcessingParameterMultipleLayers|GRIDS|Grids|3|None|False
QgsProcessingParameterFeatureSource|SHAPES|Shapes|-1|None|False
ParameterTableField|ATTRIBUTE|Attribute|SHAPES|-1|False
QgsProcessingParameterEnum|INTERPOL|Grid Interpolation|[0] Nearest Neighbor;[1] Bilinear Interpolation;[2] Inverse Distance Interpolation;[3] Bicubic Spline Interpolation;[4] B-Spline Interpolation
Expand Down
@@ -1,6 +1,6 @@
Multiple Regression Analysis (Points and Predictor Grids)
statistics_regression
ParameterMultipleInput|PREDICTORS|Predictors|3|False
QgsProcessingParameterMultipleLayers|PREDICTORS|Predictors|3|None|False
QgsProcessingParameterFeatureSource|POINTS|Points|-1|None|False
QgsProcessingParameterFeatureSource|ATTRIBUTE|Dependent Variable|5|None|False
QgsProcessingParameterFeatureSource|INFO_COEFF|Details: Coefficients|5|None|True
Expand Down

0 comments on commit 7953936

Please sign in to comment.