def defineCharacteristics(self):
		self.name = "Select by attribute"
		self.group = "Vector selection tools"

		self.addParameter(ParameterVector(self.LAYERNAME, "Input Layer", ParameterVector.VECTOR_TYPE_ANY))
		self.addParameter(ParameterTableField(self.ATTRIBUTE, "Selection attribute", self.LAYERNAME))
		self.comparisons = ['==', '!=', '>', '>=', '<', '<=', 'begins with', 'contains']
		self.addParameter(ParameterSelection(self.COMPARISON, "Comparison", self.comparisons, default = 0))
		self.addParameter(ParameterString(self.COMPARISONVALUE, "Value", default = "0"))

		self.addOutput(OutputVector(self.RESULT, "Output", True))
Ejemplo n.º 2
0
 def defineCharacteristics(self):
     self.name = "lasgrid"
     self.group = "Tools"
     self.addParameter(ParameterFile(lasgrid.INPUT, "Input las layer"))
     self.addParameter(
         ParameterBoolean(lasgrid.INTENSITY,
                          "Use intensity instead of elevation", False))
     self.addParameter(
         ParameterSelection(lasgrid.METHOD, "Method", lasgrid.METHODS))
     self.addOutput(OutputRaster(lasgrid.OUTPUT, "Output grid layer"))
     self.addCommonParameters()
Ejemplo n.º 3
0
 def defineCharacteristics(self):
     self.name = "Advanced Python field calculator"
     self.group = "Vector table tools"
     self.addParameter(ParameterVector(self.INPUT_LAYER, "Input layer", ParameterVector.VECTOR_TYPE_ANY, False))
     self.addParameter(ParameterString(self.FIELD_NAME, "Result field name", "NewField"))
     self.addParameter(ParameterSelection(self.FIELD_TYPE, "Field type", self.TYPE_NAMES))
     self.addParameter(ParameterNumber(self.FIELD_LENGTH, "Field lenght", 1, 255, 10))
     self.addParameter(ParameterNumber(self.FIELD_PRECISION, "Field precision", 0, 10, 0))
     self.addParameter(ParameterString(self.GLOBAL, "Global expression", multiline = True))
     self.addParameter(ParameterString(self.FORMULA, "Formula", "value = ", multiline = True))
     self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
Ejemplo n.º 4
0
    def defineCharacteristics(self):
        self.name = "ogr2ogr"
        self.group = "[OGR] Transformation"

        #we add the input vector layer. It can have any kind of geometry
        #It is a mandatory (not optional) one, hence the False argument
        self.addParameter(ParameterVector(self.INPUT_LAYER, "Input layer", ParameterVector.VECTOR_TYPE_ANY, False))
        self.addParameter(ParameterSelection(self.DEST_FORMAT, "Destination Format", FORMATS))
        self.addParameter(ParameterString(self.DEST_DSCO, "Creation Options", ""))

        self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
Ejemplo n.º 5
0
 def defineCharacteristics(self):
     self.name = "Warp (reproject)"
     self.group = "[GDAL] Projections"
     self.addParameter(ParameterRaster(warp.INPUT, "Input layer", False))
     self.addParameter(
         ParameterCrs(warp.SOURCE_SRS, "Source SRS (EPSG Code)", "4326"))
     self.addParameter(
         ParameterCrs(warp.DEST_SRS, "Destination SRS (EPSG Code)", "4326"))
     self.addParameter(
         ParameterSelection(warp.METHOD, "Resampling method",
                            warp.METHOD_OPTIONS))
     self.addOutput(OutputRaster(warp.OUTPUT, "Output layer"))
Ejemplo n.º 6
0
    def defineCharacteristics(self):
        self.name = "Distance matrix"
        self.group = "Vector analysis tools"

        self.addParameter(ParameterVector(self.INPUT_LAYER, "Input point layer", ParameterVector.VECTOR_TYPE_POINT))
        self.addParameter(ParameterTableField(self.INPUT_FIELD, "Input unique ID field", self.INPUT_LAYER, ParameterTableField.DATA_TYPE_ANY))
        self.addParameter(ParameterVector(self.TARGET_LAYER, "Target point layer", ParameterVector.VECTOR_TYPE_POINT))
        self.addParameter(ParameterTableField(self.TARGET_FIELD, "Target unique ID field", self.TARGET_LAYER, ParameterTableField.DATA_TYPE_ANY))
        self.addParameter(ParameterSelection(self.MATRIX_TYPE, "Output matrix type", self.MAT_TYPES, 0))
        self.addParameter(ParameterNumber(self.NEAREST_POINTS, "Use only the nearest (k) target points", 0, 9999, 0))

        self.addOutput(OutputFile(self.DISTANCE_MATRIX, "Distance matrix"))
Ejemplo n.º 7
0
    def defineCharacteristics(self):
        self.name = "Export/Add geometry columns"
        self.group = "Vector table tools"

        self.addParameter(
            ParameterVector(self.INPUT, "Input layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterSelection(self.METHOD, "Calculate using",
                               self.CALC_METHODS, 0))

        self.addOutput(OutputVector(self.OUTPUT, "Output layer"))
Ejemplo n.º 8
0
 def defineCharacteristics(self):
     self.name = "Convex hull"
     self.group = "Vector geometry tools"
     self.addParameter(
         ParameterVector(ConvexHull.INPUT, "Input layer",
                         ParameterVector.VECTOR_TYPE_ANY))
     self.addParameter(
         ParameterTableField(ConvexHull.FIELD, "Field", ConvexHull.INPUT))
     self.addParameter(
         ParameterSelection(ConvexHull.METHOD, "Method",
                            ConvexHull.METHODS))
     self.addOutput(OutputVector(ConvexHull.OUTPUT, "Convex hull"))
Ejemplo n.º 9
0
 def defineCharacteristics(self):
     self.name = "Translate (convert format)"
     self.group = "[GDAL] Conversion"
     self.addParameter(ParameterRaster(translate.INPUT, "Input layer", False))
     self.addParameter(ParameterNumber(translate.OUTSIZE, "Set the size of the output file (In pixels or %)", 1, None, 100))
     self.addParameter(ParameterBoolean(translate.OUTSIZE_PERC, "Output size is a percentage of input size", True))
     self.addParameter(ParameterString(translate.NO_DATA, "Nodata value, leave as none to take the nodata value from input", "none"))
     self.addParameter(ParameterSelection(translate.EXPAND, "Expand", ["none","gray","rgb","rgba"]))
     self.addParameter(ParameterCrs(translate.SRS, "Override the projection for the output file", None))
     self.addParameter(ParameterExtent(translate.PROJWIN, "Subset based on georeferenced coordinates"))
     self.addParameter(ParameterBoolean(translate.SDS, "Copy all subdatasets of this file to individual output files", False))
     self.addParameter(ParameterString(translate.EXTRA, "Additional creation parameters", ""))
     self.addOutput(OutputRaster(translate.OUTPUT, "Output layer"))
Ejemplo n.º 10
0
    def defineCharacteristics(self):
        self.name = "Random selection"
        self.group = "Vector selection tools"

        self.addParameter(
            ParameterVector(self.INPUT, "Input layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterSelection(self.METHOD, "Method", self.METHODS, 0))
        self.addParameter(
            ParameterNumber(self.NUMBER,
                            "Number/percentage of selected features", 0, None,
                            10))
        self.addOutput(OutputVector(self.OUTPUT, "Selection", True))
 def defineCharacteristics(self):
     self.name = "Select by location"
     self.group = "Vector selection tools"
     self.addParameter(
         ParameterVector(self.INPUT, "Layer to select from",
                         ParameterVector.VECTOR_TYPE_ANY))
     self.addParameter(
         ParameterVector(self.INTERSECT,
                         "Additional layer (intersection layer)",
                         ParameterVector.VECTOR_TYPE_ANY))
     self.addParameter(
         ParameterSelection(self.METHOD, "Modify current selection by",
                            self.METHODS, 0))
     self.addOutput(OutputVector(self.OUTPUT, "Selection", True))
	def defineCharacteristics(self):
		self.name = "Create grid"
		self.group = "Vector creation tools"

		self.addParameter(ParameterNumber(self.HSPACING, "Horizontal spacing", default = 10.0))
		self.addParameter(ParameterNumber(self.VSPACING, "Vertical spacing", default = 10.0))
		self.addParameter(ParameterNumber(self.WIDTH, "Width", default = 360.0))
		self.addParameter(ParameterNumber(self.HEIGHT, "Height", default = 180.0))
		self.addParameter(ParameterNumber(self.CENTERX, "Center X", default = 0.0))
		self.addParameter(ParameterNumber(self.CENTERY, "Center Y", default = 0.0))
		self.gridtype_options = ["Rectangle (line)","Rectangle (polygon)","Diamond (polygon)","Hexagon (polygon)"]
		self.addParameter(ParameterSelection(self.GRIDTYPE, "Grid type",
			self.gridtype_options, default = 0))
		self.addOutput(OutputVector(self.SAVENAME, "Output"))
Ejemplo n.º 13
0
    def defineCharacteristics(self):
        self.name = "Attribute Export"
        self.group = "Transfer"

        self.addParameter(
            ParameterVector(self.LAYERNAME, "SourceLayer",
                            ParameterVector.VECTOR_TYPE_ANY))

        self.delimiters = ["Comma", "Bar", "Space"]
        self.addParameter(
            ParameterSelection(self.FIELDDELIMITER,
                               "Delimiter",
                               self.delimiters,
                               default=0))

        self.terminators = ["CRLF", "LF"]
        self.addParameter(
            ParameterSelection(self.LINETERMINATOR,
                               "Delimiter",
                               self.terminators,
                               default=0))

        self.addOutput(OutputTable(self.OUTFILENAME, "Output CSV File"))
Ejemplo n.º 14
0
 def defineCharacteristics(self):
     self.name = "Convex hull"
     self.group = "Geoprocessing tools"
     self.addParameter(
         ParameterVector(ConvexHull.INPUT, "Input layer",
                         ParameterVector.VECTOR_TYPE_ANY))
     self.addParameter(
         ParameterTableField(ConvexHull.FIELD, "Field", ConvexHull.INPUT))
     self.addParameter(
         ParameterSelection(ConvexHull.METHOD, "Method",
                            ConvexHull.METHODS))
     self.addParameter(
         ParameterBoolean(ConvexHull.USE_SELECTED, "Use selected features",
                          False))
     self.addOutput(OutputVector(ConvexHull.OUTPUT, "Convex hull"))
Ejemplo n.º 15
0
    def defineCharacteristics(self):
        self.name = "Add field to attributes table"
        self.group = "Vector table tools"

        self.addParameter(
            ParameterVector(self.INPUT_LAYER, "Input layer",
                            [ParameterVector.VECTOR_TYPE_ANY], False))
        self.addParameter(ParameterString(self.FIELD_NAME, "Field name"))
        self.addParameter(
            ParameterSelection(self.FIELD_TYPE, "Field type", self.TYPE_NAMES))
        self.addParameter(
            ParameterNumber(self.FIELD_LENGTH, "Field length", 1, 255, 10))
        self.addParameter(
            ParameterNumber(self.FIELD_PRECISION, "Field precision", 0, 10, 0))
        self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
Ejemplo n.º 16
0
 def defineCharacteristics(self):
     self.name = "Convex hull"
     self.group = "Vector geometry tools"
     self.addParameter(
         ParameterVector(ConvexHull.INPUT, "Input layer",
                         ParameterVector.VECTOR_TYPE_ANY))
     self.addParameter(
         ParameterTableField(
             ConvexHull.FIELD,
             "Field (optional, only used if creating convex hulls by classes)",
             ConvexHull.INPUT,
             optional=True))
     self.addParameter(
         ParameterSelection(ConvexHull.METHOD, "Method",
                            ConvexHull.METHODS))
     self.addOutput(OutputVector(ConvexHull.OUTPUT, "Convex hull"))
Ejemplo n.º 17
0
    def defineCharacteristics(self):
        self.name = "Sort"
        self.group = "Modify"

        self.addParameter(
            ParameterVector(self.LAYERNAME, "Source Layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.ATTRIBUTE, "Selection Attribute",
                                self.LAYERNAME))
        self.directions = ['Ascending', 'Descending']
        self.addParameter(
            ParameterSelection(self.DIRECTION,
                               "Direction",
                               self.directions,
                               default=0))
        self.addOutput(OutputVector(self.SAVENAME, "Output Shapefile"))
Ejemplo n.º 18
0
    def defineCharacteristics(self):
        self.name = "Sort by attribute"
        self.group = "Vector table tools"

        self.addParameter(
            ParameterVector(self.LAYERNAME, "Input layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.ATTRIBUTE, "Selection attribute",
                                self.LAYERNAME))
        self.directions = ['Ascending', 'Descending']
        self.addParameter(
            ParameterSelection(self.DIRECTION,
                               "Direction",
                               self.directions,
                               default=0))
        self.addOutput(OutputVector(self.SAVENAME, "Output"))
Ejemplo n.º 19
0
    def defineCharacteristics(self):
        self.name = "Random selection within subsets"
        self.group = "Research tools"

        self.addParameter(
            ParameterVector(self.INPUT, "Input layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.FIELD, "ID Field", self.INPUT))
        self.addParameter(
            ParameterSelection(self.METHOD, "Method", self.METHODS, 0))
        self.addParameter(
            ParameterNumber(self.NUMBER,
                            "Number/persentage of selected features", 1, None,
                            10))

        self.addOutput(OutputVector(self.OUTPUT, "Selection", True))
Ejemplo n.º 20
0
 def defineCharacteristics(self):
     self.name = "Random selection"
     self.group = "Research tools"
     self.addParameter(
         ParameterVector(RandomSelection.INPUT, "Input layer",
                         ParameterVector.VECTOR_TYPE_ANY))
     self.addParameter(
         ParameterSelection(RandomSelection.METHOD, "Method", [
             "Number of selected features",
             "Percentage of selected features"
         ]))
     self.addParameter(
         ParameterNumber(RandomSelection.NUMBER,
                         "Number of selected features", 1, None, 10))
     self.addParameter(
         ParameterNumber(RandomSelection.PERCENTAGE,
                         "Percentage of selected features", 0, 100, 50))
     self.addOutput(OutputVector(RandomSelection.OUTPUT, "Selection", True))
Ejemplo n.º 21
0
    def defineCharacteristics(self):
        self.name = "Convert Geometry Type"
        self.group = "Modify"

        self.addParameter(
            ParameterVector(self.LAYERNAME, "SourceLayer",
                            ParameterVector.VECTOR_TYPE_ANY))

        self.newtypes = [
            "Centroids", "Nodes", "Linestrings", "Multilinestrings", "Polygons"
        ]
        self.addParameter(
            ParameterSelection(self.NEWTYPE,
                               "New Geometry Type",
                               self.newtypes,
                               default=0))

        self.addOutput(OutputVector(self.SAVENAME, "Output Shapefile"))
Ejemplo n.º 22
0
    def defineCharacteristics(self):
        self.name = "Select by location"
        self.group = "Research tools"

        self.addParameter(
            ParameterVector(self.INPUT, "Layer to select from",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterVector(self.INTERSECT,
                            "Additional layer (intersection layer)",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterSelection(self.METHOD, "Modify current selection by",
                               self.METHODS, 0))
        self.addParameter(
            ParameterBoolean(self.USE_SELECTED, "Use only selected features",
                             False))

        self.addOutput(OutputVector(self.OUTPUT, "Selection", True))
Ejemplo n.º 23
0
 def defineCharacteristics(self):
     self.name = "Warp (reproject)"
     self.group = "[GDAL] Projections"
     self.addParameter(ParameterRaster(warp.INPUT, "Input layer", False))
     self.addParameter(
         ParameterCrs(warp.SOURCE_SRS, "Source SRS (EPSG Code)",
                      "EPSG:4326"))
     self.addParameter(
         ParameterCrs(warp.DEST_SRS, "Destination SRS (EPSG Code)",
                      "EPSG:4326"))
     self.addParameter(
         ParameterNumber(
             warp.TR,
             "Output file resolution in target georeferenced units (leave 0 for no change)",
             0.0, None, 0.0))
     self.addParameter(
         ParameterSelection(warp.METHOD, "Resampling method",
                            warp.METHOD_OPTIONS))
     self.addParameter(
         ParameterString(warp.EXTRA, "Additional creation parameters", ""))
     self.addOutput(OutputRaster(warp.OUTPUT, "Output layer"))
Ejemplo n.º 24
0
    def defineCharacteristics(self):
        self.name = "Create from table"
        self.group = "Vector creation tools"

        self.addParameter(
            ParameterTable(self.NODEFILENAME, "Input table", False))
        self.addParameter(
            ParameterTableField(self.LONGITUDE, "Longitude column",
                                self.NODEFILENAME))
        self.addParameter(
            ParameterTableField(self.LATITUDE, "Latitude column",
                                self.NODEFILENAME))
        self.addParameter(
            ParameterTableField(self.SHAPEID, "Shape ID column",
                                self.NODEFILENAME))
        self.geotypes = ['Point', 'Polyline', 'Polygon']
        self.addParameter(
            ParameterSelection(self.GEOMETRYTYPE,
                               "Geometry type",
                               self.geotypes,
                               default=0))
        self.addOutput(OutputVector(self.SHAPEFILENAME, "Output"))
Ejemplo n.º 25
0
    def defineCharacteristics(self):
        self.name = "Geometry Import"
        self.group = "Transfer"

        self.addParameter(
            ParameterTable(self.NODEFILENAME, "Input CSV Nodes File", False))
        self.addParameter(
            ParameterTableField(self.LONGITUDE, "Longitude Column",
                                self.NODEFILENAME))
        self.addParameter(
            ParameterTableField(self.LATITUDE, "Latitude Column",
                                self.NODEFILENAME))
        self.addParameter(
            ParameterTableField(self.SHAPEID, "Shape ID COlumn",
                                self.NODEFILENAME))
        self.geotypes = ['Point', 'Polyline', 'Polygon']
        self.addParameter(
            ParameterSelection(self.GEOMETRYTYPE,
                               "Geometry Type",
                               self.geotypes,
                               default=0))
        self.addOutput(OutputVector(self.SHAPEFILENAME, "Output Shapefile"))
Ejemplo n.º 26
0
    def defineCharacteristics(self):
        self.name = "Select"
        self.group = "Transfer"

        self.addParameter(
            ParameterVector(self.LAYERNAME, "Source Layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.ATTRIBUTE, "Selection Attribute",
                                self.LAYERNAME))
        self.comparisons = [
            '==', '!=', '>', '>=', '<', '<=', 'begins with', 'contains'
        ]
        self.addParameter(
            ParameterSelection(self.COMPARISON,
                               "Comparison",
                               self.comparisons,
                               default=0))
        self.addParameter(
            ParameterString(self.COMPARISONVALUE, "Value", default="0"))

        self.addOutput(OutputVector(self.SAVENAME, "Output Shapefile"))
Ejemplo n.º 27
0
 def deserialize(self, s):
     tokens = s.split("|")
     if len(tokens) == 4:
         return ParameterSelection(tokens[0], tokens[1], tokens[2].split(";"), int(tokens[3]))
     else:
         return ParameterSelection(tokens[0], tokens[1], tokens[2].split(";"))
Ejemplo n.º 28
0
 def __init__(self, name="", description=""):
     self.options = DbConnection.qgis_connections()
     ParameterSelection.__init__(
         self, name, description, self.options, default=0)
Ejemplo n.º 29
0
    def processParameterLine(self,line):
        param = None
        out = None
        line = line.replace("#", "");
        # If the line is in the format of the text description files for normal algorithms,
        # then process it using parameter and output factories
        if '|' in line:
            self.processDescriptionParameterLine(line)
            return
        tokens = line.split("=");
        desc = self.createDescriptiveName(tokens[0])
        if tokens[1].lower().strip() == "group":
            self.group = tokens[0]
            return
        if tokens[1].lower().strip() == "name":
            self.name = tokens[0]
            return
        if tokens[1].lower().strip() == "raster":
            param = ParameterRaster(tokens[0], desc, False)
        elif tokens[1].lower().strip() == "vector":
            param = ParameterVector(tokens[0],  desc,ParameterVector.VECTOR_TYPE_ANY)
        elif tokens[1].lower().strip() == "table":
            param = ParameterTable(tokens[0], desc, False)
        elif tokens[1].lower().strip() == "multiple raster":
            param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_RASTER)
            param.optional = False
        elif tokens[1].lower().strip() == "multiple vector":
            param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY)
            param.optional = False
        elif tokens[1].lower().strip().startswith("selection"):
            options = tokens[1].strip()[len("selection"):].split(";")
            param = ParameterSelection(tokens[0],  desc, options);
        elif tokens[1].lower().strip().startswith("boolean"):
            default = tokens[1].strip()[len("boolean")+1:]
            param = ParameterBoolean(tokens[0],  desc, default)
        elif tokens[1].lower().strip() == "extent":
            param = ParameterExtent(tokens[0],  desc)
        elif tokens[1].lower().strip() == "file":
            param = ParameterFile(tokens[0],  desc, False)
        elif tokens[1].lower().strip() == "folder":
            param = ParameterFile(tokens[0],  desc, True)
        elif tokens[    1].lower().strip().startswith("number"):
            default = tokens[1].strip()[len("number")+1:]
            param = ParameterNumber(tokens[0],  desc, default=default)
        elif tokens[1].lower().strip().startswith("field"):
            field = tokens[1].strip()[len("field")+1:]
            found = False
            for p in self.parameters:
                if p.name == field:
                    found = True
                    break
            if found:
                param = ParameterTableField(tokens[0],  tokens[0], field)
        elif tokens[1].lower().strip().startswith("string"):
            default = tokens[1].strip()[len("string")+1:]
            param = ParameterString(tokens[0],  desc, default)
        elif tokens[1].lower().strip().startswith("output raster"):
            out = OutputRaster()
        elif tokens[1].lower().strip().startswith("output vector"):
            out = OutputVector()
        elif tokens[1].lower().strip().startswith("output table"):
            out = OutputTable()
        elif tokens[1].lower().strip().startswith("output html"):
            out = OutputHTML()
        elif tokens[1].lower().strip().startswith("output file"):
            out = OutputFile()
        elif tokens[1].lower().strip().startswith("output number"):
            out = OutputNumber()
        elif tokens[1].lower().strip().startswith("output string"):
            out = OutputString()

        if param != None:
            self.addParameter(param)
        elif out != None:
            out.name = tokens[0]
            out.description = tokens[0]
            self.addOutput(out)
        else:
            raise WrongScriptException("Could not load script:" + self.descriptionFile + ".\n Problem with line \"" + line + "\"")
Ejemplo n.º 30
0
    def processParameterLine(self, line):
        param = None
        out = None
        line = line.replace("#", "")
        if line.lower().strip().startswith("showplots"):
            self.showPlots = True
            self.addOutput(OutputHTML(RAlgorithm.RPLOTS, "R Plots"))
            return
        if line.lower().strip().startswith("dontuserasterpackage"):
            self.useRasterPackage = False
            return
        if line.lower().strip().startswith("passfilenames"):
            self.passFileNames = True
            return
        tokens = line.split("=")
        desc = self.createDescriptiveName(tokens[0])
        if tokens[1].lower().strip() == "group":
            self.group = tokens[0]
            return
        if tokens[1].lower().strip().startswith("raster"):
            param = ParameterRaster(tokens[0], desc, False)
        elif tokens[1].lower().strip() == "vector":
            param = ParameterVector(tokens[0], desc,
                                    ParameterVector.VECTOR_TYPE_ANY)
        elif tokens[1].lower().strip() == "table":
            param = ParameterTable(tokens[0], desc, False)
        elif tokens[1].lower().strip().startswith("multiple raster"):
            param = ParameterMultipleInput(tokens[0], desc,
                                           ParameterMultipleInput.TYPE_RASTER)
            param.optional = False
        elif tokens[1].lower().strip() == "multiple vector":
            param = ParameterMultipleInput(
                tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY)
            param.optional = False
        elif tokens[1].lower().strip().startswith("selection"):
            options = tokens[1].strip()[len("selection"):].split(";")
            param = ParameterSelection(tokens[0], desc, options)
        elif tokens[1].lower().strip().startswith("boolean"):
            default = tokens[1].strip()[len("boolean") + 1:]
            param = ParameterBoolean(tokens[0], desc, default)
        elif tokens[1].lower().strip().startswith("number"):
            try:
                default = float(tokens[1].strip()[len("number") + 1:])
                param = ParameterNumber(tokens[0], desc, default=default)
            except:
                raise WrongScriptException("Could not load R script:" +
                                           self.descriptionFile +
                                           ".\n Problem with line \"" + line +
                                           "\"")
        elif tokens[1].lower().strip().startswith("field"):
            field = tokens[1].strip()[len("field") + 1:]
            found = False
            for p in self.parameters:
                if p.name == field:
                    found = True
                    break
            if found:
                param = ParameterTableField(tokens[0], tokens[0], field)
        elif tokens[1].lower().strip() == "extent":
            param = ParameterExtent(tokens[0], desc)
        elif tokens[1].lower().strip() == "file":
            param = ParameterFile(tokens[0], desc, False)
        elif tokens[1].lower().strip() == "folder":
            param = ParameterFile(tokens[0], desc, True)
        elif tokens[1].lower().strip().startswith("string"):
            default = tokens[1].strip()[len("string") + 1:]
            param = ParameterString(tokens[0], desc, default)
        elif tokens[1].lower().strip().startswith("output raster"):
            out = OutputRaster()
        elif tokens[1].lower().strip().startswith("output vector"):
            out = OutputVector()
        elif tokens[1].lower().strip().startswith("output table"):
            out = OutputTable()
        elif tokens[1].lower().strip().startswith("output file"):
            out = OutputFile()

        if param != None:
            self.addParameter(param)
        elif out != None:
            out.name = tokens[0]
            out.description = tokens[0]
            self.addOutput(out)
        else:
            raise WrongScriptException("Could not load R script:" +
                                       self.descriptionFile +
                                       ".\n Problem with line \"" + line +
                                       "\"")