def defineCharacteristics(self):
     self.name = "Points layer from table"
     self.group = "Vector creation tools"
     self.addParameter(ParameterTable(self.INPUT, "Input layer"))
     self.addParameter(ParameterTableField(self.XFIELD, "X field", self.INPUT, ParameterTableField.DATA_TYPE_ANY))
     self.addParameter(ParameterTableField(self.YFIELD, "Y field", self.INPUT, ParameterTableField.DATA_TYPE_ANY))
     self.addOutput(OutputVector(self.OUTPUT, "Output layer"))
 def defineCharacteristics(self):
     self.name = "Mean and standard deviation plot"
     self.group = "Graphics"
     self.addParameter(ParameterTable(self.INPUT, "Input table"))
     self.addParameter(ParameterTableField(self.NAME_FIELD, "Category name field", self.INPUT,ParameterTableField.DATA_TYPE_ANY))
     self.addParameter(ParameterTableField(self.MEAN_FIELD, "Mean field", self.INPUT))
     self.addParameter(ParameterTableField(self.STDDEV_FIELD, "StdDev field", self.INPUT))
     self.addOutput(OutputHTML(self.OUTPUT, "Output"))
Exemplo n.º 3
0
 def defineCharacteristics(self):
     self.name = "Bar plot"
     self.group = "Graphics"
     self.addParameter(ParameterTable(self.INPUT, "Input table"))
     self.addParameter(
         ParameterTableField(self.NAME_FIELD, "Category name field",
                             self.INPUT))
     self.addParameter(
         ParameterTableField(self.VALUE_FIELD, "Value field", self.INPUT))
     self.addOutput(OutputHTML(self.OUTPUT, "Output"))
 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()
Exemplo n.º 5
0
    def defineCharacteristics(self):
        self.name = "Geocode using Google"
        self.group = "Vector general tools"

        self.addParameter(ParameterTable(self.CSVNAME, "Input table", False))
        self.addParameter(
            ParameterTableField(self.ADDRESS, "Address", self.CSVNAME))
        self.addParameter(ParameterTableField(self.CITY, "City", self.CSVNAME))
        self.addParameter(
            ParameterTableField(self.STATE, "State", self.CSVNAME))
        self.addParameter(
            ParameterTableField(self.COUNTRY, "Country", self.CSVNAME))

        self.addOutput(OutputVector(self.SHAPEFILENAME, "Output"))
        self.addOutput(OutputTable(self.NOTFOUNDFILE, "Not found output list"))
Exemplo n.º 6
0
    def defineCharacteristics(self):
        self.name = "Geocode Google"
        self.group = "Transfer"

        self.addParameter(ParameterTable(self.CSVNAME, "Input CSV File",
                                         False))
        self.addParameter(
            ParameterTableField(self.ADDRESS, "Address", self.CSVNAME))
        self.addParameter(ParameterTableField(self.CITY, "City", self.CSVNAME))
        self.addParameter(
            ParameterTableField(self.STATE, "State", self.CSVNAME))
        self.addParameter(
            ParameterTableField(self.COUNTRY, "Country", self.CSVNAME))

        self.addOutput(OutputVector(self.SHAPEFILENAME, "Output Shapefile"))
        self.addOutput(
            OutputTable(self.NOTFOUNDFILE, "Not Found CSV Output List"))
Exemplo n.º 7
0
    def defineCharacteristics(self):
        self.name = "Attribute Join"
        self.group = "Transfer"

        self.addParameter(
            ParameterTable(self.INFILENAME, "Input CSV File", False))
        self.addParameter(
            ParameterTableField(self.JOINFIELD, "CSV File Field",
                                self.INFILENAME))

        self.addParameter(
            ParameterVector(self.LAYERNAME, "Join Layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.JOINATTRIBUTE, "Join Layer Attribute",
                                mmqgisx_attribute_join_dialog.LAYERNAME))

        self.addOutput(OutputVector(self.OUTFILENAME, "Output Shapefile"))
        self.addOutput(
            OutputTable(self.NOTFOUNDNAME, "Not Found CSV Output List"))
Exemplo n.º 8
0
    def defineCharacteristics(self):
        self.name = "Attribute join"
        self.group = "Vector table tools"

        self.addParameter(
            ParameterVector(self.LAYERNAME, "Input layer",
                            ParameterVector.VECTOR_TYPE_ANY))
        self.addParameter(
            ParameterTableField(self.JOINATTRIBUTE, "Layer attribute field",
                                mmqgisx_attribute_join_algorithm.LAYERNAME))

        self.addParameter(
            ParameterTable(self.INFILENAME, "Table to join", False))
        self.addParameter(
            ParameterTableField(self.JOINFIELD, "Table field",
                                self.INFILENAME))

        self.addOutput(OutputVector(self.OUTFILENAME, "Output"))
        self.addOutput(
            OutputTable(self.NOTFOUNDNAME, "Not Found CSV Output List"))
Exemplo n.º 9
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"))
Exemplo n.º 10
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"))
Exemplo n.º 11
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 + "\"")
Exemplo n.º 12
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 +
                                       "\"")