def defineCharacteristics(self):
        self.name = "D-Infinity Distance Down"
        self.cmdName = "dinfdistdown"
        self.group = "Specialized Grid Analysis tools"

        self.addParameter(
            ParameterRaster(self.DINF_FLOW_DIR_GRID,
                            "D-Infinity Flow Direction Grid", False))
        self.addParameter(
            ParameterRaster(self.PIT_FILLED_GRID, "Pit Filled Elevation Grid",
                            False))
        self.addParameter(
            ParameterRaster(self.STREAM_GRID, "Stream Raster Grid", False))
        self.addParameter(
            ParameterRaster(self.WEIGHT_PATH_GRID, "Weight Path Grid", True))
        self.addParameter(
            ParameterSelection(self.STAT_METHOD, "Statistical Method",
                               self.STATISTICS, 2))
        self.addParameter(
            ParameterSelection(self.DIST_METHOD, "Distance Method",
                               self.DISTANCE, 1))
        self.addParameter(
            ParameterBoolean(self.EDGE_CONTAM, "Check for edge contamination",
                             True))

        self.addOutput(
            OutputRaster(self.DIST_DOWN_GRID,
                         "D-Infinity Drop to Stream Grid"))
    def defineCharacteristics(self):
        self.name = "D-Infinity Transport Limited Accumulation - 2"
        self.cmdName = "dinftranslimaccum"
        self.group = "Specialized Grid Analysis tools"

        self.addParameter(
            ParameterRaster(self.DINF_FLOW_DIR_GRID,
                            "D-Infinity Flow Direction Grid", False))
        self.addParameter(
            ParameterRaster(self.SUPPLY_GRID, "Supply Grid", False))
        self.addParameter(
            ParameterRaster(self.CAPACITY_GRID, "Transport Capacity Grid",
                            False))
        self.addParameter(
            ParameterRaster(self.IN_CONCENTR_GRID, "Input Concentration Grid",
                            False))
        self.addParameter(
            ParameterVector(self.OUTLETS_SHAPE, "Outlets Shapefile",
                            ParameterVector.VECTOR_TYPE_POINT, True))
        self.addParameter(
            ParameterBoolean(self.EDGE_CONTAM, "Check for edge contamination",
                             True))

        self.addOutput(
            OutputRaster(self.TRANSP_LIM_ACCUM_GRID,
                         "Transport Limited Accumulation Grid"))
        self.addOutput(OutputRaster(self.DEPOSITION_GRID, "Deposition Grid"))
        self.addOutput(
            OutputRaster(self.OUT_CONCENTR_GRID, "Output Concentration Grid"))
    def defineCharacteristics(self):
        self.name = "D-Infinity Distance Up"
        self.cmdName = "dinfdistup"
        self.group = "Specialized Grid Analysis tools"

        self.addParameter(
            ParameterRaster(self.DINF_FLOW_DIR_GRID,
                            "D-Infinity Flow Direction Grid", False))
        self.addParameter(
            ParameterRaster(self.PIT_FILLED_GRID, "Pit Filled Elevation Grid",
                            False))
        self.addParameter(ParameterRaster(self.SLOPE_GRID, "Slope Grid",
                                          False))
        self.addParameter(
            ParameterSelection(self.STAT_METHOD, "Statistical Method",
                               self.STATISTICS, 2))
        self.addParameter(
            ParameterSelection(self.DIST_METHOD, "Distance Method",
                               self.DISTANCE, 1))
        self.addParameter(
            ParameterNumber(self.THRESHOLD, "Proportion Threshold", 0, None,
                            0.5))
        self.addParameter(
            ParameterBoolean(self.EDGE_CONTAM, "Check for edge contamination",
                             True))

        self.addOutput(
            OutputRaster(self.DIST_UP_GRID, "D-Infinity Distance Up"))
Esempio n. 4
0
    def defineCharacteristics(self):
        self.name = "Stream Drop Analysis"
        self.cmdName = "dropanalysis"
        self.group = "Stream Network Analysis tools"

        self.addParameter(
            ParameterRaster(self.D8_CONTRIB_AREA_GRID,
                            "D8 Contributing Area Grid", False))
        self.addParameter(
            ParameterRaster(self.D8_FLOW_DIR_GRID, "D8 Flow Direction Grid",
                            False))
        self.addParameter(
            ParameterRaster(self.PIT_FILLED_GRID, "Pit Filled Elevation Grid",
                            False))
        self.addParameter(
            ParameterRaster(self.ACCUM_STREAM_SOURCE_GRID,
                            "Contributing Area Grid", False))
        self.addParameter(
            ParameterVector(self.OUTLETS_SHAPE, "Outlets Shapefile",
                            ParameterVector.VECTOR_TYPE_POINT, False))
        self.addParameter(
            ParameterNumber(self.MIN_TRESHOLD, "Minimum Threshold", 0, None,
                            5))
        self.addParameter(
            ParameterNumber(self.MAX_THRESHOLD, "Maximum Threshold", 0, None,
                            500))
        self.addParameter(
            ParameterNumber(self.TRESHOLD_NUM, "Number of Threshold Values", 0,
                            None, 10))
        self.addParameter(
            ParameterSelection(self.STEP_TYPE, "Spacing for Threshold Values",
                               self.STEPS, 0))
        self.addOutput(
            OutputFile(self.DROP_ANALYSIS_FILE,
                       "D-Infinity Drop to Stream Grid"))
Esempio n. 5
0
    def defineCharacteristics(self):
        self.name = "Slope Area Combination"
        self.cmdName = "slopearea"
        self.group = "Stream Network Analysis tools"

        self.addParameter(ParameterRaster(self.SLOPE_GRID, "Slope Grid", False))
        self.addParameter(ParameterRaster(self.AREA_GRID, "Contributing Area Grid", False))
        self.addParameter(ParameterNumber(self.SLOPE_EXPONENT, "Slope Exponent", 0, None, 2))
        self.addParameter(ParameterNumber(self.AREA_EXPONENT, "Area Exponent", 0, None, 1))

        self.addOutput(OutputRaster(self.SLOPE_AREA_GRID, "Slope Area Grid"))
Esempio n. 6
0
    def defineCharacteristics(self):
        self.name = "Length Area Stream Source"
        self.cmdName = "lengtharea"
        self.group = "Stream Network Analysis tools"

        self.addParameter(ParameterRaster(self.LENGTH_GRID, "Length Grid", False))
        self.addParameter(ParameterRaster(self.CONTRIB_AREA_GRID, "Contributing Area Grid", False))
        self.addParameter(ParameterNumber(self.THRESHOLD, "Threshold", 0, None, 0.03))
        self.addParameter(ParameterNumber(self.EXPONENT, "Exponent", 0, None, 1.3))

        self.addOutput(OutputRaster(self.STREAM_SOURCE_GRID, "Stream Source Grid"))
Esempio n. 7
0
    def buildParametersDialog(self):
        for input in self.process.inputs:
            inputType = type(input)
            if inputType == VectorInput:
                self.addParameter(ParameterVector(str(input.identifier), str(input.title), ParameterVector.VECTOR_TYPE_ANY, input.minOccurs == 0))
            elif inputType == MultipleVectorInput:
                self.addParameter(ParameterMultipleInput(str(input.identifier), str(input.title), ParameterVector.VECTOR_TYPE_ANY, input.minOccurs == 0))
            elif inputType == StringInput:
                self.addParameter(ParameterString(str(input.identifier), str(input.title)))
            elif inputType == TextInput:
                self.addParameter(ParameterString(str(input.identifier), str(input.title)))
            elif inputType == RasterInput:
                self.addParameter(ParameterRaster(str(input.identifier), str(input.title), input.minOccurs == 0))
            elif inputType == MultipleRasterInput:
                self.addParameter(ParameterMultipleInput(str(input.identifier), str(input.title), ParameterMultipleInput.TYPE_RASTER, input.minOccurs == 0))
            elif inputType == FileInput:
                #self.addParameter(ParameterFile(str(input.identifier), str(input.title), False, input.minOccurs == 0))
                self.addParameter(ParameterFile(str(input.identifier), str(input.title)))
            elif inputType == MultipleFileInput:
                pass #Not supported
            elif inputType == SelectionInput:
                self.addParameter(ParameterSelection(str(input.identifier), str(input.title), input.valList))
            elif inputType == ExtentInput:
                self.addParameter(ParameterExtent(str(input.identifier), str(input.title)))
            elif inputType == CrsInput:
                self.addParameter(ParameterCrs(str(input.identifier), "Projection", None))

        for output in self.process.outputs:
            outputType = type(output)
            if outputType == VectorOutput:
                self.addOutput(OutputVector(str(output.identifier), str(output.title)))
            elif outputType == RasterOutput:
                self.addOutput(OutputRaster(str(output.identifier), str(output.title)))
            elif outputType == StringOutput:
                self.addOutput(OutputString(str(output.identifier), str(output.title)))
Esempio n. 8
0
 def defineCharacteristics(self):
     self.name = "rgb2pct"
     self.group = "[GDAL] Conversion"
     self.addParameter(ParameterRaster(rgb2pct.INPUT, "Input layer", False))
     self.addParameter(
         ParameterNumber(rgb2pct.NCOLORS, "Number of colors", 1, None, 2))
     self.addOutput(OutputRaster(rgb2pct.OUTPUT, "Output layer"))
Esempio n. 9
0
 def defineCharacteristics(self):
     self.name = "information"
     self.group = "Miscellaneous"
     self.addParameter(ParameterRaster(information.INPUT, "Input layer", False))
     self.addParameter(ParameterBoolean(information.NOGCP, "Suppress GCP info", False))
     self.addParameter(ParameterBoolean(information.NOMETADATA, "Suppress metadata info", False))
     self.addOutput(OutputHTML(information.OUTPUT, "Layer information"))
Esempio n. 10
0
 def defineCharacteristics(self):
     self.addBaseParameters()
     self.name = "Import raster into GeoServer"
     self.group = "GeoServer management tools"
     self.addParameter(ParameterRaster(self.INPUT, "Layer to import"))
     self.addParameter(ParameterString(self.WORKSPACE, "Workspace"))
     self.addParameter(ParameterString(self.NAME, "Store name"))
Esempio n. 11
0
 def defineCharacteristics(self):
     self.name = "Create constant raster layer"
     self.group = "Raster tools"
     self.addParameter(ParameterRaster(self.INPUT, "Reference layer"))
     self.addParameter(
         ParameterNumber(self.NUMBER, "Constant value", default=1.0))
     self.addOutput(OutputRaster(self.OUTPUT, "Output layer"))
 def defineCharacteristics(self):
     self.name = "Split RGB bands"
     self.group = "Grid - Tools"
     self.addParameter(
         ParameterRaster(SplitRGBBands.INPUT, "Input layer", False))
     self.addOutput(OutputRaster(SplitRGBBands.R, "Output R band layer"))
     self.addOutput(OutputRaster(SplitRGBBands.G, "Output G band layer"))
     self.addOutput(OutputRaster(SplitRGBBands.B, "Output B band layer"))
Esempio n. 13
0
 def defineCharacteristics(self):
     self.name = "Translate (convert format)"
     self.group = "[GDAL] Conversion"
     self.addParameter(
         ParameterRaster(translate.INPUT, "Input layer", False))
     self.addParameter(
         ParameterString(translate.EXTRA, "Additional creation parameters"))
     self.addOutput(OutputRaster(translate.OUTPUT, "Output layer"))
Esempio n. 14
0
 def defineCharacteristicsFromFile(self):
     ScriptAlgorithm.defineCharacteristicsFromFile(self)
     self.parameters.insert(
         0, ParameterRaster("input_filename", "Input image", False))
     self.outputs.append(OutputRaster("output_filename", "Output image"))
     self.script = self.LOAD_LAYER_SCRIPT + self.script + self.SAVE_LAYER_SCRIPT
     self.cmdname = self.name
     self.name = AlgNames.getName(self.name)
Esempio n. 15
0
 def defineCharacteristics(self):
     self.name = "Polygonize"
     self.group = "[GDAL] Conversion"
     self.addParameter(
         ParameterRaster(polygonize.INPUT, "Input layer", False))
     self.addParameter(
         ParameterString(polygonize.FIELD, "Output field name", "DN"))
     self.addOutput(OutputVector(polygonize.OUTPUT, "Output layer"))
Esempio n. 16
0
 def defineCharacteristics(self):
     self.name = "Raster layer histogram"
     self.group = "Graphics"
     self.addParameter(ParameterRaster(self.INPUT, "Input layer"))
     self.addParameter(
         ParameterNumber(self.BINS, "Number of bins", 2, None, 10))
     self.addOutput(OutputHTML(self.PLOT, "Output plot"))
     self.addOutput(OutputTable(self.TABLE, "Output table"))
Esempio n. 17
0
 def defineCharacteristics(self):
     self.name = "Build pyramids (overviews)"
     self.group = "[GDAL] Miscellaneous"
     self.addParameter(ParameterRaster(gdaladdo.INPUT, "Input layer",
                                       False))
     self.addParameter(
         ParameterString(gdaladdo.LEVELS, "Overview levels", "2 4 8 16"))
     self.addOutput(OutputRaster(gdaladdo.OUTPUT, "Output layer", True))
 def defineCharacteristics(self):
     self.name = "pct2rgb"
     self.group = "[GDAL] Conversion"
     self.addParameter(ParameterRaster(pct2rgb.INPUT, "Input layer", False))
     options = []
     for i in range(25):
         options.append(str(i + 1))
     self.addParameter(
         ParameterSelection(pct2rgb.NBAND, "Band to convert", options))
     self.addOutput(OutputRaster(pct2rgb.OUTPUT, "Output layer"))
Esempio n. 19
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"))
Esempio n. 20
0
 def defineCharacteristics(self):
     self.showInModeler = True
     self.showInToolbox = False
     self.name = "Raster layer bounds"
     self.group = "Modeler-only tools"
     self.addParameter(ParameterRaster(self.LAYER, "Layer"))
     self.addOutput(OutputNumber(self.XMIN, "min X"))
     self.addOutput(OutputNumber(self.XMAX, "max X"))
     self.addOutput(OutputNumber(self.YMIN, "min Y"))
     self.addOutput(OutputNumber(self.YMAX, "max Y"))
Esempio n. 21
0
    def defineCharacteristics(self):
        self.name = "Peuker Douglas"
        self.cmdName = "peukerdouglas"
        self.group = "Stream Network Analysis tools"

        self.addParameter(ParameterRaster(self.ELEVATION_GRID, "Elevation Grid", False))
        self.addParameter(ParameterNumber(self.CENTER_WEIGHT, "Center Smoothing Weight", 0, None, 0.4))
        self.addParameter(ParameterNumber(self.SIDE_WEIGHT, "Side Smoothing Weight", 0, None, 0.1))
        self.addParameter(ParameterNumber(self.DIAGONAL_WEIGHT, "Diagonal Smoothing Weight", 0, None, 0.05))

        self.addOutput(OutputRaster(self.STREAM_SOURCE_GRID, "Stream Source Grid"))
Esempio n. 22
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"))
 def defineCharacteristics(self):
     self.name = "Raster layer statistics"
     self.group = "Raster tools"
     self.addParameter(ParameterRaster(self.INPUT, "Input layer"))
     self.addOutput(OutputHTML(self.OUTPUT_HTML_FILE, "Statistics"))
     self.addOutput(OutputNumber(self.MIN, "Minimum value"))
     self.addOutput(OutputNumber(self.MAX, "Maximum value"))
     self.addOutput(OutputNumber(self.SUM, "Sum"))
     self.addOutput(OutputNumber(self.MEAN, "Mean value"))
     self.addOutput(OutputNumber(self.COUNT, "valid cells count"))
     self.addOutput(OutputNumber(self.COUNT, "No-data cells count"))
     self.addOutput(OutputNumber(self.STD_DEV, "Standard deviation"))
Esempio n. 24
0
    def defineCharacteristics(self):
        self.name = "Grid Network"
        self.cmdName = "gridnet"
        self.group = "Basic Grid Analysis tools"

        self.addParameter(
            ParameterRaster(self.D8_FLOW_DIR_GRID, "D8 Flow Direction Grid",
                            False))
        self.addParameter(
            ParameterVector(self.OUTLETS_SHAPE, "Outlets Shapefile",
                            [ParameterVector.VECTOR_TYPE_POINT], True))
        self.addParameter(ParameterRaster(self.MASK_GRID, "Mask Grid", True))
        self.addParameter(
            ParameterNumber(self.THRESHOLD, "Proportion Threshold", 0, None,
                            100))

        self.addOutput(
            OutputRaster(self.LONGEST_LEN_GRID, "Longest Upslope Length Grid"))
        self.addOutput(
            OutputRaster(self.TOTAL_LEN_GRID, "Total Upslope Length Grid"))
        self.addOutput(
            OutputRaster(self.STRAHLER_GRID, "Strahler Network Order Grid"))
Esempio n. 25
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"))
 def okPressed(self):
     description = unicode(self.nameTextBox.text())
     if description.strip() == "":
         QMessageBox.critical(self, "Unable to define parameter", "Invalid parameter name")
         return
     if self.param is None:
         validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
         safeName = ''.join(c for c in description if c in validChars)
         name = self.paramType.upper().replace(" ","") + "_" + safeName.upper()
     else:
         name = self.param.name
     if self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BOOLEAN or isinstance(self.param, ParameterBoolean):
         self.param = ParameterBoolean(name, description, self.yesNoCombo.currentIndex() == 0)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE_FIELD or isinstance(self.param, ParameterTableField):
         if self.parentCombo.currentIndex() < 0:
             QMessageBox.critical(self, "Unable to define parameter", "Wrong or missing parameter values")
             return
         parent = self.parentCombo.itemData(self.parentCombo.currentIndex())
         self.param = ParameterTableField(name, description, parent)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_RASTER or isinstance(self.param, ParameterRaster):
         self.param = ParameterRaster(name, description, self.yesNoCombo.currentIndex() == 1)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE or isinstance(self.param, ParameterTable):
         self.param = ParameterTable(name, description, self.yesNoCombo.currentIndex() == 1)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_VECTOR or isinstance(self.param, ParameterVector):
         self.param = ParameterVector(name, description, self.shapetypeCombo.currentIndex()-1, self.yesNoCombo.currentIndex() == 1)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_MULTIPLE or isinstance(self.param, ParameterMultipleInput):
         self.param = ParameterMultipleInput(name, description, self.datatypeCombo.currentIndex()-1, self.yesNoCombo.currentIndex() == 1)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_NUMBER or isinstance(self.param, ParameterNumber):
         try:
             vmin = str(self.minTextBox.text()).strip()
             if vmin == "":
                 vmin = None
             else:
                 vmin = float(vmin)
             vmax = str(self.maxTextBox.text()).strip()
             if vmax == "":
                 vmax = None
             else:
                 vmax = float(vmax)
             self.param = ParameterNumber(name, description, vmin, vmax, float(str(self.defaultTextBox.text())))
         except:
             QMessageBox.critical(self, "Unable to define parameter", "Wrong or missing parameter values")
             return
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_STRING or isinstance(self.param, ParameterString):
         self.param = ParameterString(name, description, str(self.defaultTextBox.text()))
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_EXTENT or isinstance(self.param, ParameterExtent):
         self.param = ParameterExtent(name, description)
     elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_FILE or isinstance(self.param, ParameterFile):
         self.param = ParameterFile(name, description)
     self.close()
Esempio n. 27
0
 def defineCharacteristics(self):
     self.name = "Nearblack"
     self.group = "[GDAL] Analysis"
     self.addParameter(
         ParameterRaster(nearblack.INPUT, "Input layer", False))
     self.addParameter(
         ParameterNumber(nearblack.NEAR, "How far from black (white)", 0,
                         None, 15))
     self.addParameter(
         ParameterBoolean(
             nearblack.WHITE,
             "Search for nearly white pixels instead of nearly black",
             False))
     self.addOutput(OutputRaster(nearblack.OUTPUT, "Output layer"))
Esempio n. 28
0
 def defineCharacteristics(self):
     self.name = "translate"
     self.group = "Conversion"
     self.addParameter(ParameterRaster(translate.INPUT, "Input layer", False))
     self.addOutput(OutputRaster(translate.OUTPUT, "Output layer"))
Esempio n. 29
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 + "\"")
Esempio n. 30
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 + "\"")
Esempio n. 31
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 +
                                       "\"")
Esempio n. 32
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 + "\"")