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))
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()
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"))
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"))
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 = "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"))
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"))
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"))
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 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"))
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"))
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"))
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"))
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"))
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"))
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"))
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))
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))
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"))
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))
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"))
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"))
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"))
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"))
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(";"))
def __init__(self, name="", description=""): self.options = DbConnection.qgis_connections() ParameterSelection.__init__( self, name, description, self.options, default=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 + "\"")
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 + "\"")