def defineCharacteristics(self): self.name = "las2txt" self.group = "LAStools" self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addParameter(ParameterString(las2txt.PARSE_STRING, "parse_string", "xyz")) self.addOutput(OutputFile(las2txt.OUTPUT, "Output ASCII file"))
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 = "lasclip" self.group = "Tools" self.addParameter(ParameterFile(lasclip.INPUT, "Input las layer")) self.addParameter(ParameterVector(lasclip.POLYGON, "Input polygons", [ParameterVector.VECTOR_TYPE_POLYGON])) self.addOutput(OutputFile(lasclip.OUTPUT, "Output classified las file")) self.addCommonParameters()
def defineCharacteristics(self): self.name = "lasclassify" self.group = "Tools" self.addParameter(ParameterFile(lasclassify.INPUT, "Input las layer")) self.addOutput( OutputFile(lasclassify.OUTPUT, "Output classified las file")) self.addCommonParameters()
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 = "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 = "lasground" self.group = "Tools" self.addParameter(ParameterFile(lasground.INPUT, "Input las layer")) self.addParameter( ParameterSelection(lasground.METHOD, "Method", lasground.METHODS)) self.addOutput(OutputFile(lasground.OUTPUT, "Output ground las file")) self.addCommonParameters()
def defineCharacteristics(self): self.name = "las2shp" self.group = "LAStools" self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addParameter(ParameterBoolean(las2shp.POINT_Z, "use PointZ instead of MultiPointZ", False)) self.addParameter(ParameterNumber(las2shp.RECORD_SIZE, "number of points per record", 0, None, 1024)) self.addOutput(OutputFile(las2shp.OUTPUT, "Output SHP file"))
def defineCharacteristics(self): self.name = "Clip Data" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) self.addParameter(ParameterExtent(self.EXTENT, "Extent")) self.addParameter(ParameterSelection(self.SHAPE, "Shape", ["Rectangle","Circle"])) self.addOutput(OutputFile(self.OUTPUT, "Output clipped las file")) self.addAdvancedModifiers()
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 = 'las2txt' self.group = 'LAStools' self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addParameter(ParameterString(las2txt.PARSE_STRING, 'parse_string' , 'xyz')) self.addOutput(OutputFile(las2txt.OUTPUT, 'Output ASCII file'))
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 = "Create Grid Surface" self.group = "Surface" self.addParameter(ParameterFile(self.INPUT, "Input las layer")) 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(OutputFile(self.OUTPUT, "PLANS DTM surface")) self.addAdvancedModifiers()
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 = 'Clip Data' self.group = 'Points' self.addParameter(ParameterFile(self.INPUT, 'Input las layer')) self.addParameter(ParameterExtent(self.EXTENT, 'Extent')) self.addParameter( ParameterSelection(self.SHAPE, 'Shape', ['Rectangle', 'Circle'])) self.addOutput(OutputFile(self.OUTPUT, 'Output clipped las file')) self.addAdvancedModifiers()
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 = 'Create Grid Surface' self.group = 'Surface' self.addParameter(ParameterFile(self.INPUT, 'Input las layer')) 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(OutputFile(self.OUTPUT, 'PLANS DTM surface')) self.addAdvancedModifiers()
def defineCharacteristics(self): self.name = 'las2shp' self.group = 'LAStools' self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addParameter( ParameterBoolean(las2shp.POINT_Z, 'use PointZ instead of MultiPointZ', False)) self.addParameter( ParameterNumber(las2shp.RECORD_SIZE, 'number of points per record', 0, None, 1024)) self.addOutput(OutputFile(las2shp.OUTPUT, 'Output SHP file'))
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(OutputFile(self.OUTPUT_CSV_ELEVATION, 'Output table with grid metrics')) output_csv_intensity = OutputFile(self.OUTPUT_CSV_INTENSITY, 'OUTPUT CSV INTENSITY') output_csv_intensity.hidden = True self.addOutput(output_csv_intensity) output_txt_elevation = OutputFile(self.OUTPUT_TXT_ELEVATION, 'OUTPUT CSV INTENSITY') output_txt_elevation.hidden = True self.addOutput(output_txt_elevation) output_txt_intensity = OutputFile(self.OUTPUT_TXT_INTENSITY, 'OUTPUT CSV INTENSITY') output_txt_intensity.hidden = True self.addOutput(output_txt_intensity) outlier = ParameterString(self.OUTLIER, 'Outlier:low,high', '', False, True) outlier.isAdvanced = True self.addParameter(outlier) first = ParameterBoolean(self.FIRST, 'First', False) first.isAdvanced = True self.addParameter(first) minht = ParameterString(self.MINHT, 'Htmin', '', False, True) minht.isAdvanced = True self.addParameter(minht) class_var = ParameterString(self.CLASS, 'Class (set blank if not used)', '', False, True) class_var.isAdvanced = True self.addParameter(class_var)
def processParameterLine(self, line): param = None out = None line = line.replace('#', '') if line.lower().strip().startswith('report'): self.report = True self.addOutput(OutputHTML(RAlgorithm.KNITR_REPORT, 'HTML Report')) return 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 if line.lower().strip().startswith('shapefilespackage'): self.useShapefilesPackage = 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], desc, 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() elif tokens[1].lower().strip().startswith('output string'): out = OutputString() self.outputStringExist = True self.outputStringName = tokens[0] elif tokens[1].lower().strip().startswith('output number'): out = OutputNumber() self.outputNumberBool = True self.outputNumberName = tokens[0] if param is not None: self.addParameter(param) elif out is not 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 + '"' )
def addParametersPointOutputAppendixGUI(self): self.addOutput(OutputFile(LAStoolsAlgorithm.OUTPUT_APPENDIX, 'Output appendix'))
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 if line == "nomodeler": self.showInModeler = False tokens = line.split('=', 1) 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() == 'vector point': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_POINT]) elif tokens[1].lower().strip() == 'vector line': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_LINE]) elif tokens[1].lower().strip() == 'vector polygon': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_POLYGON]) 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], desc, 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('longstring'): default = tokens[1].strip()[len('longstring') + 1:] param = ParameterString(tokens[0], desc, default, multiline=True) elif tokens[1].lower().strip().startswith('crs'): default = tokens[1].strip()[len('crs') + 1:] if not default: default = 'EPSG:4326' param = ParameterCrs(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() subtokens = tokens[1].split(' ') if len(subtokens > 2): out.ext = subtokens[2] elif tokens[1].lower().strip().startswith('output directory'): out = OutputDirectory() elif tokens[1].lower().strip().startswith('output number'): out = OutputNumber() elif tokens[1].lower().strip().startswith('output string'): out = OutputString() if param is not None: self.addParameter(param) elif out is not None: out.name = tokens[0] out.description = desc self.addOutput(out) else: raise WrongScriptException( 'Could not load script:' + self.descriptionFile or '' + '.\n Problem with line "' + line + '"')
def defineCharacteristics(self): self.name = 'lasvalidate' self.group = 'LAStools' self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addOutput(OutputFile(lasvalidate.OUTPUT, 'Output XML file'))
def addParametersPointOutputFormatGUI(self): self.addOutput(OutputFile(LAStoolsAlgorithm.OUTPUT_POINT_FORMAT, 'Output format'))
def defineCharacteristics(self): self.name = 'Merge LAS Files' self.group = 'Points' self.addParameter(ParameterFile(self.INPUT, 'Input LAS files')) self.addOutput(OutputFile(self.OUTPUT, 'Output merged LAS file'))
def addParametersPointOutputDirectoryGUI(self): self.addOutput(OutputFile(LAStoolsAlgorithm.OUTPUT_DIRECTORY, 'Output directory'))
def defineCharacteristics(self): self.name = 'lasinfo' self.group = 'LAStools' self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addOutput(OutputFile(lasinfo.OUTPUT, 'Output ASCII file'))
def defineCharacteristics(self): self.name = "Merge LAS Files" self.group = "Points" self.addParameter(ParameterFile(self.INPUT, "Input LAS files")) self.addOutput(OutputFile(self.OUTPUT, "Output merged LAS file"))
def defineCharacteristics(self): self.name = "lasinfo" self.group = "LAStools" self.addParametersVerboseGUI() self.addParametersPointInputGUI() self.addOutput(OutputFile(lasinfo.OUTPUT, "Output ASCII file"))
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 + "\"")
def addParametersPointOutputFileGUI(self): self.addOutput(OutputFile(LAStoolsAlgorithm.OUTPUT_LASLAZ, 'Output LAS/LAZ file'))