예제 #1
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"))
예제 #2
0
    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 = "lasclassify"
     self.group = "Tools"
     self.addParameter(ParameterFile(lasclassify.INPUT, "Input las layer"))
     self.addOutput(
         OutputFile(lasclassify.OUTPUT, "Output classified las file"))
     self.addCommonParameters()
예제 #4
0
 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()
예제 #5
0
 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 = "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()
예제 #7
0
 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()
예제 #8
0
 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()
예제 #9
0
 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()
예제 #10
0
 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()
예제 #11
0
 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"))
예제 #12
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 + "\"")
예제 #13
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 +
                                       "\"")
 def defineCharacteristics(self):
     self.name = "lasheight"
     self.group = "Tools"
     self.addParameter(ParameterFile(lasheight.INPUT, "Input las layer"))
     self.addOutput(OutputFile(lasheight.OUTPUT, "Output height las file"))
     self.addCommonParameters()