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 length", 1, 255, 10)) self.addParameter( ParameterNumber(self.FIELD_PRECISION, "Field precision", 0, 10, 0)) self.addParameter( ParameterString(self.GLOBAL, "Global expression", multiline=True, optional=True)) self.addParameter( ParameterString(self.FORMULA, "Formula", "value = ", multiline=True)) self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
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"))
def defineCharacteristics(self): self.name = "Snap points to grid" self.group = "Vector general tools" self.addParameter(ParameterVector(self.LAYERNAME, "Input Layer", ParameterVector.VECTOR_TYPE_ANY)) self.addParameter(ParameterNumber(self.HSPACING, "Horizontal spacing", default = 0.1)) self.addParameter(ParameterNumber(self.VSPACING, "Vertical spacing", default = 0.1)) self.addOutput(OutputVector(self.SAVENAME, "Output"))
def defineCharacteristics(self): self.name = "Fixed distance buffer" self.group = "Vector geometry tools" self.addParameter(ParameterVector(self.INPUT, "Input layer", ParameterVector.VECTOR_TYPE_ANY)) self.addParameter(ParameterNumber(self.DISTANCE, "Distance", 0.0, default=10.0)) self.addParameter(ParameterNumber(self.SEGMENTS, "Segments", 1, default=5)) self.addParameter(ParameterBoolean(self.DISSOLVE, "Dissolve result", False)) self.addOutput(OutputVector(self.OUTPUT, "Buffer"))
def defineCharacteristics(self): self.name = "Fixed distance buffer" self.group = "Geoprocessing tools" self.addParameter(ParameterVector(FixedDistanceBuffer.INPUT, "Input layer", ParameterVector.VECTOR_TYPE_ANY)) self.addParameter(ParameterBoolean(FixedDistanceBuffer.USE_SELECTED, "Use selected features", False)) self.addParameter(ParameterNumber(FixedDistanceBuffer.DISTANCE, "Distance", 0, default=10 )) self.addParameter(ParameterNumber(FixedDistanceBuffer.SEGMENTS, "Segments", 1, default=10 )) self.addParameter(ParameterBoolean(FixedDistanceBuffer.DISSOLVE, "Dissolve result", True)) self.addOutput(OutputVector(FixedDistanceBuffer.OUTPUT, "Buffer"))
def defineCharacteristics(self): self.name = "Filter Data outliers" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter( ParameterNumber(self.VALUE, "Standard Deviation multiplier")) self.addParameter( ParameterNumber(self.VALUE, "Window size", None, None, 10)) self.addOutput(OutputFile(self.OUTPUT, "Output filtered las file")) self.addAdvancedModifiers()
def defineCharacteristics(self): self.name = "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")) 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.FORMULA, "Formula")) self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
def defineCharacteristics(self): self.name = "Grid Metrics" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter(ParameterFile(self.GROUND, "Input ground DTM layer")) self.addParameter(ParameterNumber(self.HEIGHT, "Height break")) self.addParameter(ParameterNumber(self.CELLSIZE, "Cellsize")) self.addOutput( OutputTable(self.OUTPUT, "Output table with grid metrics")) self.addAdvancedModifiers()
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"))
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"))
def defineCharacteristics(self): self.name = "Cover" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter(ParameterFile(self.GROUND, "Input ground DTM layer")) self.addParameter(ParameterNumber(self.CELLSIZE, "Cellsize", 0, None, 10.0)) self.addParameter(ParameterNumber(self.HEIGHTBREAK, "Heightbreak", 0, None, 10.0)) self.addParameter(ParameterSelection(self.XYUNITS, "XY Units", self.UNITS)) self.addParameter(ParameterSelection(self.ZUNITS, "Z Units", self.UNITS)) self.addOutput(OutputRaster(self.OUTPUT, "Cover")) self.addAdvancedModifiers()
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"))
def defineCharacteristics(self): self.name = "Gridify" self.group = "Modify" self.addParameter( ParameterVector(self.LAYERNAME, "Source Layer", ParameterVector.VECTOR_TYPE_ANY)) self.addParameter( ParameterNumber(self.HSPACING, "Horizontal Spacing", default=0.1)) self.addParameter( ParameterNumber(self.VSPACING, "Vertical Spacing", default=0.1)) self.addOutput(OutputVector(self.SAVENAME, "Output Shapefile"))
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 = "lassplit" self.group = "Tools" self.addParameter(ParameterFile(lassplit.INPUT, "Input las layer")) self.addParameter(ParameterNumber(lassplit.NUM_POINTS, "Point in each output file", 1, None, 1000000)) self.addOutput(OutputFile(lassplit.OUTPUT, "Output las file basename")) self.addCommonParameters()
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"))
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"))
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 = "Distance matrix" self.group = "Analysis tools" self.addParameter( ParameterVector(PointDistance.INPUT_LAYER, "Input point layer", ParameterVector.VECTOR_TYPE_POINT)) self.addParameter( ParameterTableField(PointDistance.INPUT_FIELD, "Input unique ID field", PointDistance.INPUT_LAYER, ParameterTableField.DATA_TYPE_ANY)) self.addParameter( ParameterVector(PointDistance.TARGET_LAYER, "Target point layer", ParameterVector.VECTOR_TYPE_POINT)) self.addParameter( ParameterTableField(PointDistance.TARGET_FIELD, "Target unique ID field", PointDistance.TARGET_LAYER, ParameterTableField.DATA_TYPE_ANY)) self.addParameter( ParameterSelection(PointDistance.MATRIX_TYPE, "Output matrix type", PointDistance.MAT_TYPES, 0)) self.addParameter( ParameterNumber(PointDistance.NEAREST_POINTS, "Use only the nearest (k) target points", 0, 9999, 0)) self.addOutput( OutputFile(PointDistance.DISTANCE_MATRIX, "Distance matrix"))
def defineCharacteristics(self): self.name = "Simplify geometries" self.group = "Vector geometry tools" self.addParameter(ParameterVector(self.INPUT, "Input layer", ParameterVector.VECTOR_TYPE_ANY)) self.addParameter(ParameterNumber(self.TOLERANCE, "Tolerance", 0.0, 10000000.0, 1.0)) self.addOutput(OutputVector(self.OUTPUT, "Simplified layer"))
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"))
def defineCharacteristics(self): self.name = "Canopy Maxima" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter(ParameterFile(self.GROUND, "Input ground DTM layer [optional, leave blank if not using it]")) self.addParameter(ParameterNumber(self.THRESHOLD, "Minimum threshold", 0, None, 10.0)) self.addOutput(OutputTable(self.OUTPUT, "Output file with maxima")) self.addAdvancedModifiers()
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 = "Densify geometries given an interval" self.group = "Vector geometry tools" self.addParameter(ParameterVector(self.INPUT, "Input layer", ParameterVector.VECTOR_TYPE_ANY)) self.addParameter(ParameterNumber(self.INTERVAL, "Interval between Vertices to add", 1, 10000000, 1)) self.addOutput(OutputVector(self.OUTPUT, "Simplified layer"))
def defineCharacteristics(self): self.name = "Ground Filter" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter( ParameterNumber(self.CELLSIZE, "Cellsize for intermediate surfaces", 0, None, 10)) self.addOutput(OutputFile(self.OUTPUT, "Output ground las file")) self.addAdvancedModifiers()
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 = "las2iso" self.group = "Tools" self.addParameter(ParameterFile(las2iso.INPUT, "Input las layer")) self.addParameter( ParameterNumber(las2iso.INTERVAL, "Interval between isolines", 0, None, 10.0)) self.addParameter( ParameterNumber(las2iso.CLEAN, "Clean isolines shorter than (0 = do not clean)", None, None, 0.0)) self.addParameter( ParameterNumber( las2iso.SIMPLIFY, "simplify segments shorter than (0 = do not simplify)", None, None, 0.0)) self.addOutput(OutputVector(las2iso.OUTPUT, "Output isolines")) self.addCommonParameters()
def defineCharacteristics(self): self.name = "Canopy Model" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter(ParameterFile(self.GROUND, "Input ground DTM layer [optional, leave blank if not using it]")) self.addParameter(ParameterNumber(self.CELLSIZE, "Cellsize", 0, None, 10.0)) self.addParameter(ParameterSelection(self.XYUNITS, "XY Units", self.UNITS)) self.addParameter(ParameterSelection(self.ZUNITS, "Z Units", self.UNITS)) self.addOutput(OutputRaster(self.OUTPUT, "Canopy model")) self.addAdvancedModifiers()
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.showInModeler = True self.showInToolbox = False self.name = "Calculator" self.group = "Modeler-only tools" self.addParameter(ParameterString(self.FORMULA, "Formula", "")) for i in range(self.AVAILABLE_VARIABLES): self.addParameter( ParameterNumber(CalculatorModelerAlgorithm.NUMBER + str(i), "dummy")) self.addOutput(OutputNumber(self.RESULT, "Result"))
def testParameterNumbert(self): param = ParameterNumber("name", "desc", 0, 10) assert not param.setValue("wrongvalue") assert param.value is None assert not param.setValue(25) assert param.value is None assert param.setValue(5) assert param.value == 5 assert param.setValue(None) assert param.value == param.default s = param.serialize() param2 = ParameterNumber() param2.deserialize(s) assert param.default == param2.default assert param.max == param2.max assert param.min == param2.min assert param.description == param2.description assert param.name == param2.name