Пример #1
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []

        if self.VERSION64:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(),
                                                'ReturnDensity64.exe') + '"')
        else:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(),
                                                'ReturnDensity.exe') + '"')

        if self.FIRST in parameters and parameters[self.FIRST]:
            arguments.append('/first')
        if self.ASCII in parameters and parameters[self.ASCII]:
            arguments.append('/ascii')

        class_var = self.parameterAsString(parameters, self.CLASS,
                                           context).strip()
        if class_var:
            arguments.append('/class:' + class_var)

        #self.addAdvancedModifiersToCommand(arguments)
        arguments.append(
            self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        arguments.append(
            str(self.parameterAsInt(parameters, self.CELLSIZE, context)))
        self.addInputFilesToCommands(arguments, parameters, self.INPUT,
                                     context)
        #arguments.append(self.parameterAsFile(parameters, self.INPUT, context))

        fusionUtils.execute(arguments, feedback)
Пример #2
0
    def processAlgorithm(self, parameters, context, feedback):
        version64 = self.parameterAsBool(parameters, self.VERSION64, context)
        if version64:
            commands = [
                '"' + os.path.join(fusionUtils.fusionDirectory(),
                                   'PolyClipData64.exe') + '"'
            ]
        else:
            commands = [
                '"' + os.path.join(fusionUtils.fusionDirectory(),
                                   'PolyClipData.exe') + '"'
            ]

        if self.parameterAsBool(parameters, self.SHAPE, context):
            commands.append(
                '/shape:' +
                self.parameterAsString(parameters, self.FIELD, context) + ',' +
                self.parameterAsString(parameters, self.VALUE, context))
        self.addAdvancedModifiersToCommands(commands, parameters, context)
        commands.append(self.parameterAsString(parameters, self.MASK, context))

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)
        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #3
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []

        if self.VERSION64:
            arguments.append(
                '"' +
                os.path.join(fusionUtils.fusionDirectory(), 'TreeSeg64.exe') +
                '"')
        else:
            arguments.append(
                '"' +
                os.path.join(fusionUtils.fusionDirectory(), 'TreeSeg.exe') +
                '"')

        if self.HEIGHT_NORM in parameters and parameters[self.HEIGHT_NORM]:
            arguments.append('/height')
        if self.HEIGHT_PTS in parameters and parameters[self.HEIGHT_PTS]:
            arguments.append('/ptheight')

        if self.GROUND in parameters and parameters[self.GROUND] is not None:
            arguments.append('/ground:{}'.format(
                self.parameterAsInt(parameters, self.GROUND, context)))

        if self.LASPTS in parameters and parameters[self.LASPTS] is not None:
            arguments.append('/points:{}'.format(
                self.parameterAsInt(parameters, self.LASPTS, context)))

        if self.SEGMENTPTS in parameters and parameters[self.SEGMENTPTS]:
            arguments.append('/segmentpts')
        if self.SHAPE in parameters and parameters[self.SHAPE]:
            arguments.append('/shape')

        # arguments.append(self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        # arguments.append(self.units[self.parameterAsEnum(parameters, self.XYUNITS, context)][1])
        # arguments.append(self.units[self.parameterAsEnum(parameters, self.ZUNITS, context)][1])
        # arguments.append(self.csystems[self.parameterAsEnum(parameters, self.COORDSYS, context)][1])
        # arguments.append(str(self.parameterAsInt(parameters, self.ZONE, context)))
        # arguments.append(self.hdatums[self.parameterAsEnum(parameters, self.HDATUM, context)][1])
        # arguments.append(self.vdatums[self.parameterAsEnum(parameters, self.VDATUM, context)][1])

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))

        arguments.append(
            self.parameterAsInt(parameters, self.HEIGHT_TH, context))
        arguments.append(
            self.parameterAsFileOutput(parameters, self.OUTPUT, context))

        # fileList = fusionUtils.layersToFile('xyzDataFiles.txt', self, parameters, self.INPUT, context)
        # arguments.append(fileList)

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #4
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        
        if self.VERSION64:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(), 'Cover64.exe') + '"')
        else:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(), 'Cover.exe') + '"')

        if self.ALL in parameters and parameters[self.ALL]:
            arguments.append('/all')
        if self.PENETRATION in parameters and parameters[self.PENETRATION]:
            arguments.append('/penetration')
        if self.IGNOREOVERLAP in parameters and parameters[self.IGNOREOVERLAP]:
            arguments.append('/ignoreoverlap')

        class_var = self.parameterAsString(parameters, self.CLASS, context).strip()
        if class_var:
            arguments.append('/class:' + class_var)

        if self.UPPER in parameters and parameters[self.UPPER] is not 0:
            arguments.append('/upper:{}'.format(self.parameterAsInt(parameters, self.UPPER, context)))

        self.addAdvancedModifiersToCommands(arguments, parameters, context)
        
        arguments.append(self.parameterAsFile(parameters, self.GROUND, context))
        arguments.append(self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        arguments.append(str(self.parameterAsDouble(parameters, self.HEIGHTBREAK, context)))
        arguments.append(str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        arguments.append(self.units[self.parameterAsEnum(parameters, self.XYUNITS, context)][1])
        arguments.append(self.units[self.parameterAsEnum(parameters, self.ZUNITS, context)][1])
        arguments.append(self.csystems[self.parameterAsEnum(parameters, self.COORDSYS, context)][1])
        arguments.append(str(self.parameterAsInt(parameters, self.ZONE, context)))
        arguments.append(self.hdatums[self.parameterAsEnum(parameters, self.HDATUM, context)][1])
        arguments.append(self.vdatums[self.parameterAsEnum(parameters, self.VDATUM, context)][1])
        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))# remove when method for multiple files is fixed

        # fileList = fusionUtils.layersToFile('DataFiles.txt', self, parameters, self.INPUT, context)
        # arguments.append(fileList)

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #5
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        if self.VERSION64 in parameters and parameters[self.VERSION64]:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(),
                                                'DensityMetrics64.exe') + '"')
        else:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(),
                                                'DensityMetrics.exe') + '"')

        if self.FIRST in parameters and parameters[self.FIRST]:
            arguments.append('/first')
        if self.NOCSV in parameters and parameters[self.NOCSV]:
            arguments.append('/nocsv')
        if self.IGNOREOVERLAP in parameters and parameters[self.IGNOREOVERLAP]:
            arguments.append('/ignoreoverlap')

        class_var = self.parameterAsString(parameters, self.CLASS,
                                           context).strip()
        if class_var:
            arguments.append('/class:' + class_var)
        self.addAdvancedModifiersToCommands(arguments, parameters, context)

        arguments.append(self.parameterAsFile(parameters, self.GROUND,
                                              context))
        arguments.append(
            str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        arguments.append(
            str(
                self.parameterAsDouble(parameters, self.SLICETHICKNESS,
                                       context)))

        arguments.append(
            self.parameterAsFileOutput(parameters, self.OUTPUT, context))

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))

        # arguments.append('outlier')
        # arguments.append(str(self.parameterAsDouble(parameters, self.VALUE, context)))
        # arguments.append(str(self.parameterAsDouble(parameters, self.WINDOWSIZE, context)))

        # outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT, context)
        # arguments.append('"%s"' % outputFile)

        # self.addInputFilesToCommands(arguments, parameters, self.INPUT, context)

        fusionUtils.execute(arguments, feedback)

        return self.prepareReturn(parameters)
Пример #6
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            '"' + os.path.join(fusionUtils.fusionDirectory(),
                               'TINSurfaceCreate.exe') + '"'
        ]
        class_var = self.parameterAsString(parameters, self.CLASS,
                                           context).strip()
        if class_var:
            commands.append('/class:' + class_var)
        return_sel = self.parameterAsString(parameters, self.RETURN,
                                            context).strip()
        if return_sel:
            commands.append('/return:' + return_sel)

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)
        commands.append(
            str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        commands.append(self.UNITS[self.parameterAsEnum(
            parameters, self.XYUNITS, context)][0])
        commands.append(self.UNITS[self.parameterAsEnum(
            parameters, self.ZUNITS, context)][0])
        commands.append('0')
        commands.append('0')
        commands.append('0')
        commands.append('0')

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #7
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [os.path.join(fusionUtils.fusionDirectory(), 'CloudMetrics.exe')]

        above = self.parameterAsString(parameters, self.ABOVE, context).strip()
        if above:
            commands.append('/abve:' + above)
        htmin = self.parameterAsString(parameters, self.HTMIN, context).strip()
        if htmin:
            commands.append('/minht:' + htmin)
        
        firstImpulse = self.parameterAsBool(parameters, self.FIRSTIMPULSE, context)
        if firstImpulse:
            commands.append('/firstinpulse') 
        firstReturn = self.parameterAsBool(parameters, self.FIRSTRETURN, context)
        if firstReturn:
            commands.append('/firstreturn') 

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)        
     
        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT, context)
        commands.append('"%s"' % outputFile)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #8
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        arguments.append(
            os.path.join(fusionUtils.fusionDirectory(), self.name()))

        if self.CSV in parameters and parameters[self.CSV]:
            arguments.append('/csv')

        if self.RASTER in parameters and parameters[self.RASTER]:
            if self.CSV in parameters and parameters[self.CSV]:
                raise QgsProcessingException(
                    self.tr(
                        'Switches "/csv" and "/raster" are mutually exclusive.'
                    ))
            else:
                arguments.append('/raster')

        if self.MULTIPLIER in parameters and parameters[
                self.MULTIPLIER] is not None:
            arguments.append('/multiplier:{}'.format(
                self.parameterAsDouble(parameters, self.MULTIPLIER, context)))

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))
        arguments.append(
            self.parameterAsOutputLayer(parameters, self.OUTPUT, context))

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #9
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            '"' +
            os.path.join(fusionUtils.fusionDirectory(), 'ImageCreate.exe') +
            '"'
        ]
        commands.append('/coloroption:' + self.coloroptions[
            self.parameterAsEnum(parameters, self.COLOROPTION, context)])
        ground = self.parameterAsString(parameters, self.GROUND,
                                        context).strip()
        if ground:
            commands.append('/dtm:' + ground)
        if self.parameterAsBool(parameters, self.RGB, context):
            commands.append('/rgb')

        print("val:" +
              self.parameterAsString(parameters, self.SWITCH, context))
        if self.parameterAsEnum(parameters, self.SWITCH, context) == 0:
            commands.append('/jpg')
        else:
            commands.append('/bmp')

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)
        commands.append(
            str(self.parameterAsDouble(parameters, self.PIXEL, context)))
        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #10
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            '"' +
            os.path.join(fusionUtils.fusionDirectory(), 'IntensityImage.exe') +
            '"'
        ]
        if self.parameterAsBool(parameters, self.ALLRET, context):
            commands.append('/allreturns')
        if self.parameterAsBool(parameters, self.LOWEST, context):
            commands.append('/lowest')
        if self.parameterAsBool(parameters, self.HIST, context):
            commands.append('/hist')
        if self.parameterAsEnum(parameters, self.SWITCH, context) == 0:
            commands.append('/jpg')
        commands.append(
            str(self.parameterAsDouble(parameters, self.PIXEL, context)))

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)
        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #11
0
    def processAlgorithm(self, parameters, context, feedback):
        inLayer = self.parameterAsRasterLayer(parameters, self.INPUT, context)
        if inLayer is None:
            raise QgsProcessingException(self.invalidRasterError(parameters, self.INPUT))

        arguments = []
        arguments.append(os.path.join(fusionUtils.fusionDirectory(), self.name()))

        if self.MULTIPLIER in parameters and parameters[self.MULTIPLIER] is not None:
            arguments.append('/multiplier:{}'.format(self.parameterAsDouble(parameters, self.MULTIPLIER, context)))

        if self.OFFSET in parameters and parameters[self.OFFSET] is not None:
            arguments.append('/offset:{}'.format(self.parameterAsDouble(parameters, self.OFFSET, context)))

        if self.NAN in parameters and parameters[self.NAN]:
            arguments.append('/nan')

        arguments.append(self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        arguments.append(self.units[self.parameterAsEnum(parameters, self.XYUNITS, context)][1])
        arguments.append(self.units[self.parameterAsEnum(parameters, self.ZUNITS, context)][1])
        arguments.append(self.csystems[self.parameterAsEnum(parameters, self.COORDSYS, context)][1])
        arguments.append(str(self.parameterAsInt(parameters, self.ZONE, context)))
        arguments.append(self.hdatums[self.parameterAsEnum(parameters, self.HDATUM, context)][1])
        arguments.append(self.vdatums[self.parameterAsEnum(parameters, self.VDATUM, context)][1])
        arguments.append(inLayer.source())

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #12
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        arguments.append(
            os.path.join(fusionUtils.fusionDirectory(), self.name()))

        if self.MULTIPLIER in parameters and parameters[
                self.MULTIPLIER] is not None:
            arguments.append('/multiplier:{}'.format(
                self.parameterAsDouble(parameters, self.MULTIPLIER, context)))

        if self.NDZERO in parameters and parameters[self.NDZERO] is not None:
            arguments.append('/ndzero:{}'.format(
                self.parameterAsDouble(parameters, self.NDZERO, context)))

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))
        arguments.append(
            str(self.parameterAsInt(parameters, self.COLUMN, context)))
        arguments.append(
            self.parameterAsOutputLayer(parameters, self.OUTPUT, context))

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #13
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        arguments.append(
            '"' + os.path.join(fusionUtils.fusionDirectory(), self.name()) +
            '"')

        if self.CSV in parameters and parameters[self.CSV]:
            arguments.append('/csv')

        if self.VOID in parameters and parameters[self.VOID]:
            arguments.append('/void')

        if self.NOHEADER in parameters and parameters[self.NOHEADER]:
            if self.CSV in parameters and parameters[self.CSV]:
                arguments.append('/noheader')

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))
        arguments.append(
            self.parameterAsOutputLayer(parameters, self.OUTPUT, context))

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #14
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            os.path.join(fusionUtils.fusionDirectory(), 'CanopyMaxima.exe')
        ]
        commands.append('/wse:{},0,{},0'.format(
            self.parameterAsDouble(parameters, self.PARAM_A, context),
            self.parameterAsDouble(parameters, self.PARAM_C, context)))

        summary = self.parameterAsBool(parameters, self.SUMMARY, context)
        if summary:
            commands.append('/summary')

        self.addAdvancedModifiersToCommands(commands, parameters, context)

        ground = self.parameterAsString(parameters, self.GROUND,
                                        context).strip()
        if ground:
            commands.append('/ground:' + ground)
        commands.append('/threshold:{}'.format(
            self.parameterAsDouble(parameters, self.THRESHOLD, context)))
        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        self.addAdvancedModifiersToCommands(commands, parameters, context)
        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #15
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            '"' + os.path.join(fusionUtils.fusionDirectory(), 'Catalog.exe') +
            '"'
        ]

        intensity = self.parameterAsString(parameters, self.INTENSITY,
                                           context).strip()
        if intensity:
            commands.append('/intensity:' + intensity)
        density = self.parameterAsString(parameters, self.DENSITY,
                                         context).strip()
        if density:
            commands.append('/density:' + density)
        first = self.parameterAsString(parameters, self.FIRSTDENSITY,
                                       context).strip()
        if first:
            commands.append('/first:' + first)

        self.addAdvancedModifiersToCommands(commands, parameters, context)

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #16
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            os.path.join(fusionUtils.fusionDirectory(), 'ClipData.exe')
        ]
        self.addAdvancedModifiersToCommands(commands, parameters, context)
        commands.append('/shape:' +
                        self.parameterAsEnum(parameters, self.SHAPE, context))
        dtm = self.parameterAsString(parameters, self.DTM, context)
        if dtm:
            commands.append('/dtm:' + dtm)
        height = self.parameterAsString(parameters, self.HEIGHT, context)
        if height:
            commands.append('/height')

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)

        extent = self.parameterAsExtent(parameters, self.EXTENT, context)
        commands.append(extent.xMinimum())
        commands.append(extent.yMinimum())
        commands.append(extent.xMaximum())
        commands.append(extent.yMaximum())

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #17
0
    def processAlgorithm(self, parameters, context, feedback):
        version64 = self.parameterAsBool(parameters, self.VERSION64, context)
        if version64:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'FilterData64.exe') + '"']
        else:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'FilterData.exe') + '"']
        self.addAdvancedModifiersToCommands(arguments, parameters, context)
        arguments.append('outlier')
        arguments.append(str(self.parameterAsDouble(parameters, self.VALUE, context)))
        arguments.append(str(self.parameterAsDouble(parameters, self.WINDOWSIZE, context)))

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT, context)
        arguments.append('"%s"' % outputFile)

        self.addInputFilesToCommands(arguments, parameters, self.INPUT, context)        

        fusionUtils.execute(arguments, feedback)

        return self.prepareReturn(parameters)
Пример #18
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []

        if self.VERSION64:
            arguments.append(
                '"' +
                os.path.join(fusionUtils.fusionDirectory(), 'ThinData64.exe') +
                '"')
        else:
            arguments.append(
                '"' +
                os.path.join(fusionUtils.fusionDirectory(), 'ThinData.exe') +
                '"')

        if self.IGNOREOVERLAP in parameters and parameters[self.IGNOREOVERLAP]:
            arguments.append('/ignoreoverlap')

        class_var = self.parameterAsString(parameters, self.CLASS,
                                           context).strip()
        if class_var:
            arguments.append('/class:' + class_var)

        if self.RSEED in parameters and parameters[self.RSEED] is not None:
            arguments.append('/rseed:{}'.format(
                self.parameterAsInt(parameters, self.RSEED, context)))

        arguments.append(
            self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        arguments.append(
            str(self.parameterAsInt(parameters, self.DENSITY, context)))
        arguments.append(
            str(self.parameterAsInt(parameters, self.CELLSIZE, context)))
        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #19
0
    def processAlgorithm(self, parameters, context, feedback):
        version64 = self.parameterAsBool(parameters, self.VERSION64, context)
        if version64:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'CanopyModel64.exe') + '"']
        else:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'CanopyModel.exe') + '"']
        arguments.append('/verbose')
        ground = self.parameterAsString(parameters, self.GROUND, context).strip()
        if ground:
            arguments.append('/ground:' + ground)
        median = self.parameterAsString(parameters, self.MEDIAN, context).strip()
        if median:
            arguments.append('/median:' + median)
        smooth= self.parameterAsString(parameters, self.SMOOTH, context).strip()
        if smooth:
            arguments.append('/smooth:' + smooth)
        slope = self.parameterAsBool(parameters, self.SLOPE, context)
        if slope:
            arguments.append('/slope') 
        class_var = self.parameterAsString(parameters, self.CLASS, context).strip()
        if class_var:
            arguments.append('/class:' + class_var)
        asciioutput = self.parameterAsBool(parameters, self.ASCII, context)
        if asciioutput:
            arguments.append('/ascii')
        
        self.addAdvancedModifiersToCommands(arguments, parameters, context)

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT, context)
        arguments.append('"%s"' % outputFile)
        arguments.append(str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        arguments.append(self.UNITS[self.parameterAsEnum(parameters, self.XYUNITS, context)][0])
        arguments.append(self.UNITS[self.parameterAsEnum(parameters, self.ZUNITS, context)][0])
        arguments.append('0')
        arguments.append('0')
        arguments.append('0')
        arguments.append('0')
        self.addInputFilesToCommands(arguments, parameters, self.INPUT, context)        

        fusionUtils.execute(arguments, feedback)

        return self.prepareReturn(parameters)
Пример #20
0
    def processAlgorithm(self, parameters, context, feedback):
        version64 = self.parameterAsBool(parameters, self.VERSION64, context)
        if version64:
            commands = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'GridSurfaceCreate64.exe') + '"']
        else:
            commands = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'GridSurfaceCreate.exe') + '"']
        spike = self.parameterAsString(parameters, self.SPIKE, context).strip()
        if spike:
            commands.append('/spike:' + spike)
        median = self.parameterAsString(parameters, self.MEDIAN, context).strip()
        if median:
            commands.append('/median:' + median)
        smooth= self.parameterAsString(parameters, self.SMOOTH, context).strip()
        if smooth:
            commands.append('/smooth:' + smooth)
        slope = self.parameterAsBool(parameters, self.SLOPE, context)
        if slope:
            commands.append('/slope')
        minimum = self.parameterAsBool(parameters, self.MINIMUM, context)
        if minimum:
            commands.append('/minimum:' + minimum) 
        class_var = self.parameterAsString(parameters, self.CLASS, context).strip()
        if class_var:
            commands.append('/class:' + class_var)

        self.addAdvancedModifiersToCommands(commands, parameters, context)
        
        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT_DTM, context)
        commands.append('"%s"' % outputFile)
        commands.append(str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        commands.append(self.UNITS[self.parameterAsEnum(parameters, self.XYUNITS, context)][0])
        commands.append(self.UNITS[self.parameterAsEnum(parameters, self.ZUNITS, context)][0])
        commands.append('0')
        commands.append('0')
        commands.append('0')
        commands.append('0')

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)        

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #21
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'FirstLastReturn.exe') + '"']
        if self.parameterAsBool(parameters, self.SWITCH, context):
            commands.append('/uselas')        
        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT, context)
        commands.append('"%s"' % outputFile)
        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)        

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #22
0
    def processAlgorithm(self, parameters, context, feedback):
        version64 = self.parameterAsBool(parameters, self.VERSION64, context)
        if version64:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'GroundFilter64.exe') + '"']
        else:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'GroundFilter.exe') + '"']

        if self.parameterAsBool(parameters, self.SURFACE, context):
            arguments.append('/surface')

        median = self.parameterAsString(parameters, self.MEDIAN, context).strip()
        if median:
            arguments.append('/median:' + median)
        smooth= self.parameterAsString(parameters, self.SMOOTH, context).strip()
        if smooth:
            arguments.append('/smooth:' + smooth)
        iterations= self.parameterAsString(parameters, self.ITERATIONS, context).strip()
        if iterations:
            arguments.append('/iterations:' + smooth)
        finalsmooth = self.parameterAsBool(parameters, self.FINALSMOOTH, context)
        if finalsmooth:
            arguments.append('/finalsmooth') 
        class_var = self.parameterAsString(parameters, self.CLASS, context).strip()
        if class_var:
            arguments.append('/class:' + class_var)
        if self.IGNOREOVERLAP in parameters and parameters[self.IGNOREOVERLAP]:
            arguments.append('/ignoreoverlap')

        self.addAdvancedModifiersToCommands(arguments, parameters, context)

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT, context)
        arguments.append('"%s"' % outputFile)
        arguments.append(str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        self.addInputFilesToCommands(arguments, parameters, self.INPUT, context)        

        fusionUtils.execute(arguments, feedback)

        return self.prepareReturn(parameters)
Пример #23
0
    def processAlgorithm(self, parameters, context, feedback):
        version64 = self.parameterAsBool(parameters, self.VERSION64, context)
        if version64:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'GridMetrics64.exe') + '"']
        else:
            arguments = ['"' + os.path.join(fusionUtils.fusionDirectory(), 'GridMetrics.exe') + '"']

        self.addAdvancedModifiersToCommands(arguments, parameters, context)

        outlier = self.parameterAsString(parameters, self.OUTLIER, context).strip()
        if outlier:
            arguments.append('/outlier:' + outlier)
        raster = self.parameterAsString(parameters, self.ASCII, context).strip()
        if raster:
            arguments.append('/ascii /raster:' + raster)
        if self.FIRST in parameters and parameters[self.FIRST]:
            arguments.append('/first')
        if self.NOINTENSITY in parameters and parameters[self.NOINTENSITY]:
            arguments.append('/nointensity')
        if self.FUEL in parameters and parameters[self.FUEL]:
            arguments.append('/fuel')
        if self.IGNOREOVERLAP in parameters and parameters[self.IGNOREOVERLAP]:
            arguments.append('/ignoreoverlap')
        htmin = self.parameterAsString(parameters, self.HTMIN, context).strip()
        if htmin:
            arguments.append('/minht:' + htmin)
        class_var = self.parameterAsString(parameters, self.CLASS, context).strip()
        if class_var:
            arguments.append('/class:' + class_var)
        arguments.append(self.parameterAsString(parameters, self.GROUND, context))
        arguments.append(str(self.parameterAsDouble(parameters, self.HEIGHT, context)))
        arguments.append(str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        arguments.append('"%s"' % self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        self.addInputFilesToCommands(arguments, parameters, self.INPUT, context) 

        fusionUtils.execute(arguments, feedback)

        return self.prepareReturn(parameters)
Пример #24
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        if self.VERSION64 in parameters and parameters[self.VERSION64]:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(), 'TopoMetrics64.exe') + '"')
        else:
            arguments.append('"' + os.path.join(fusionUtils.fusionDirectory(), 'TopoMetrics.exe') + '"')

        if self.SQUARE in parameters and parameters[self.SQUARE]:
            arguments.append('/square')

        self.addAdvancedModifiersToCommands(arguments, parameters, context)

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))
        arguments.append(str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        arguments.append(str(self.parameterAsDouble(parameters, self.POINTSPACING, context)))
        arguments.append(str(self.parameterAsInt(parameters, self.LATITUDE, context)))
        arguments.append(str(self.parameterAsInt(parameters, self.WSIZE, context)))

        arguments.append(self.parameterAsFileOutput(parameters, self.OUTPUT, context))       

        fusionUtils.execute(arguments, feedback)

        return self.prepareReturn(parameters)
Пример #25
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            os.path.join(fusionUtils.fusionDirectory(), 'MergeData.exe')
        ]
        self.addAdvancedModifiersToCommands(commands, parameters, context)

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #26
0
 def load(self):
     ProcessingConfig.settingIcons[self.name()] = self.icon()
     ProcessingConfig.addSetting(
         Setting(self.name(), fusionUtils.FUSION_ACTIVE,
                 self.tr('Activate'), False))
     ProcessingConfig.addSetting(
         Setting(self.name(),
                 fusionUtils.FUSION_DIRECTORY,
                 self.tr('FUSION directory'),
                 fusionUtils.fusionDirectory(),
                 valuetype=Setting.FOLDER))
     ProcessingConfig.addSetting(
         Setting(self.name(), fusionUtils.FUSION_VERBOSE,
                 self.tr('Log commands output'), False))
     ProcessingConfig.readSettings()
     self.refreshAlgorithms()
     return True
Пример #27
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            os.path.join(fusionUtils.fusionDirectory(), 'GroundFilter.exe')
        ]
        self.addAdvancedModifiersToCommands(commands, parameters, context)
        if self.parameterAsBool(parameters, self.SURFACE, context):
            commands.append('/surface')

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)
        commands.append(
            str(self.parameterAsDouble(parameters, self.CELLSIZE, context)))
        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #28
0
    def processAlgorithm(self, parameters, context, feedback):
        commands = [
            os.path.join(fusionUtils.fusionDirectory(), 'FilterData.exe')
        ]
        self.addAdvancedModifiersToCommands(commands, parameters, context)
        commands.append('outlier')
        commands.append(
            str(self.parameterAsDouble(parameters, self.VALUE, context)))
        commands.append(
            str(self.parameterAsDouble(parameters, self.WINDOWSIZE, context)))

        outputFile = self.parameterAsFileOutput(parameters, self.OUTPUT,
                                                context)
        commands.append('"%s"' % outputFile)

        self.addInputFilesToCommands(commands, parameters, self.INPUT, context)

        fusionUtils.execute(commands, feedback)

        return self.prepareReturn(parameters)
Пример #29
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        arguments.append(
            os.path.join(fusionUtils.fusionDirectory(), self.name()))

        if self.SOUTH in parameters and parameters[self.SOUTH]:
            arguments.append('/south')

        arguments.append(self.parameterAsFile(parameters, self.INPUT, context))
        arguments.append(
            self.parameterAsOutputLayer(parameters, self.OUTPUT, context))

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results
Пример #30
0
    def processAlgorithm(self, parameters, context, feedback):
        arguments = []
        arguments.append(
            '"' + os.path.join(fusionUtils.fusionDirectory(), self.name()) +
            '"')

        if self.FILL_HOLES in parameters and parameters[
                self.FILL_HOLES] is not None:
            arguments.append('/fillholes:{}'.format(
                self.parameterAsInt(parameters, self.FILL_HOLES, context)))

        arguments.append(
            self.parameterAsFileOutput(parameters, self.OUTPUT, context))
        arguments.append(self.units[self.parameterAsEnum(
            parameters, self.XYUNITS, context)][1])
        arguments.append(self.units[self.parameterAsEnum(
            parameters, self.ZUNITS, context)][1])
        arguments.append(self.csystems[self.parameterAsEnum(
            parameters, self.COORDSYS, context)][1])
        arguments.append(
            str(self.parameterAsInt(parameters, self.ZONE, context)))
        arguments.append(self.hdatums[self.parameterAsEnum(
            parameters, self.HDATUM, context)][1])
        arguments.append(self.vdatums[self.parameterAsEnum(
            parameters, self.VDATUM, context)][1])

        fileList = fusionUtils.layersToFile('xyzDataFiles.txt', self,
                                            parameters, self.INPUT, context)
        arguments.append(fileList)

        fusionUtils.execute(arguments, feedback)

        results = {}
        for output in self.outputDefinitions():
            outputName = output.name()
            if outputName in parameters:
                results[outputName] = parameters[outputName]

        return results