示例#1
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterFile(self.INPUT,
                                       self.tr('Input LAS layer'),
                                       extension='las'))
        self.addParameter(
            QgsProcessingParameterExtent(self.EXTENT, self.tr('Extent')))
        self.addParameter(
            QgsProcessingParameterEnum(self.SHAPE, self.tr('Shape'),
                                       ['Rectangle', 'Circle']))

        self.addParameter(
            QgsProcessingParameterFileDestination(
                self.OUTPUT, self.tr('Output'),
                self.tr('LAS files (*.las *.LAS)')))
        ground = QgsProcessingParameterFile(
            self.DTM,
            self.tr('Ground file for height normalization'),
            optional=True)
        ground.setFlags(ground.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(ground)
        height = QgsProcessingParameterBoolean(
            self.HEIGHT,
            self.
            tr('Convert point elevations into heights above ground (used with the above command)'
               ), False)
        height.setFlags(height.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(height)

        self.addAdvancedModifiers()
    def initAlgorithm(self, config):
        self.addParameter(
            QgsProcessingParameterFeatureSource(
                QScoutValueGrabberAlgorithm.POINTS_INPUT, self.tr("Points"),
                [QgsProcessing.TypeVectorPoint]))

        self.addParameter(
            QgsProcessingParameterDistance(
                self.GRID_CELL_W_INPUT,
                self.tr("Grid Cell Width"),
                parentParameterName=QScoutValueGrabberAlgorithm.POINTS_INPUT,
                minValue=0))

        self.addParameter(
            QgsProcessingParameterDistance(
                self.GRID_CELL_H_INPUT,
                self.tr("Grid Cell Height"),
                parentParameterName=QScoutValueGrabberAlgorithm.POINTS_INPUT,
                minValue=0))

        self.addParameter(
            QgsProcessingParameterEnum(self.AGGREGATION_FUNCTION_INPUT,
                                       self.tr("Aggregation Function"),
                                       options=AGGREGATION_FUNCTIONS,
                                       defaultValue=0))

        param = QgsProcessingParameterFile(
            self.CUSTOM_AGGREGATION_FUNCTION_INPUT,
            self.tr("Custom Aggregation Function"),
            optional=True)
        param.setFlags(param.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(param)

        param = QgsProcessingParameterExtent(self.GRID_EXTENT_INPUT,
                                             self.tr("Grid Extent"),
                                             optional=True)
        param.setFlags(param.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(param)

        self.addParameter(
            QgsProcessingParameterField(
                self.FIELDS_TO_USE_INPUT,
                self.tr("Fields to Use"),
                parentLayerParameterName=QScoutValueGrabberAlgorithm.
                POINTS_INPUT,
                allowMultiple=True))

        self.addParameter(
            QgsProcessingParameterFeatureSink(self.AGGREGATE_GRID_OUTPUT,
                                              self.tr("Aggregate Grid")))

        self.addParameter(
            QgsProcessingParameterFileDestination(
                self.FILE_OUTPUT,
                self.tr("File Output"),
                optional=True,
                fileFilter="Excel Files (*.xlsx), CSV files (*.csv)"))
示例#3
0
    def initAlgorithm(self, config=None):
        self.addParameter(QgsProcessingParameterFile(
            self.INPUT, self.tr('Input LAS layer'),  fileFilter = '(*.las *.laz)'))
        self.addParameter(QgsProcessingParameterNumber(
            self.CELLSIZE, self.tr('Cellsize'), QgsProcessingParameterNumber.Double,
            minValue = 0, defaultValue = 10.0))
        self.addParameter(QgsProcessingParameterEnum(
            self.XYUNITS, self.tr('XY Units'), self.UNITS))
        self.addParameter(QgsProcessingParameterEnum(
            self.ZUNITS, self.tr('Z Units'), self.UNITS))
        self.addParameter(QgsProcessingParameterBoolean(
            self.VERSION64, self.tr('Use 64-bit version'), True))
        self.addParameter(QgsProcessingParameterFileDestination(self.OUTPUT,
                                                                self.tr('Output surface'),
                                                                self.tr('DTM files (*.dtm *.DTM)')))

        ground = QgsProcessingParameterFile(self.GROUND,
                                            self.tr('Input PLANS DTM ground model'),
                                            extension = 'dtm',
                                            optional = True)
        ground.setFlags(ground.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(ground)
        median = QgsProcessingParameterString(
            self.MEDIAN, self.tr('Size of the window for Median filter'), '', optional = True)
        median.setFlags(median.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(median)
        smooth = QgsProcessingParameterString(
            self.SMOOTH, self.tr('Size of the window for mean filter (Smooth)'), '', optional = True)
        smooth.setFlags(smooth.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(smooth)
        class_var = QgsProcessingParameterString(
            self.CLASS, self.tr('Class'), '', optional = True)
        class_var.setFlags(class_var.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(class_var)
        slope = QgsProcessingParameterBoolean(self.SLOPE, self.tr('Calculate slope'), False)
        slope.setFlags(slope.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(slope)
        self.addParameter(QgsProcessingParameterBoolean(
            self.ASCII, self.tr('Add an ASCII output'), False))
        self.addAdvancedModifiers()
        
        self.addParameter(QgsProcessingParameterBoolean(self.VERSION64,
                                                        self.tr('Use 64-bit version'),
                                                        defaultValue=True))
示例#4
0
 def initAlgorithm(self, config=None):
     self.addParameter(
         QgsProcessingParameterMultipleLayers(
             'INPUT',
             'Input rasters',
             layerType=QgsProcessing.TypeRaster,
             defaultValue=None))
     self.addParameter(
         QgsProcessingParameterVectorLayer(
             'Masklayer',
             'Mask layer',
             types=[QgsProcessing.TypeVectorPolygon],
             defaultValue=None))
     param = QgsProcessingParameterFile(
         'OUTFOLDER',
         'Folder to store clipped rasters',
         behavior=QgsProcessingParameterFile.Folder,
         defaultValue=None,
         optional=True)
     param.setFlags(param.flags()
                    | QgsProcessingParameterDefinition.FlagAdvanced)
     self.addParameter(param, createOutput=True)
     self.addOutput(
         QgsProcessingOutputMultipleLayers('OUTPUT', 'Clipped rasters'))
示例#5
0
    def initAlgorithm(self, config):
        """
        Here we define the inputs and output of the algorithm, along
        with some other properties.
        """
        # LizSync config file from ini
        ls = lizsyncConfig()

        # INPUTS
        # Local directory containing the files to send to the clone by FTP
        local_qgis_project_folder = ls.variable('local/qgis_project_folder')
        self.addParameter(
            QgsProcessingParameterFile(
                self.LOCAL_QGIS_PROJECT_FOLDER,
                tr('Local desktop QGIS project folder'),
                defaultValue=local_qgis_project_folder,
                behavior=QgsProcessingParameterFile.Folder,
                optional=False
            )
        )

        # For Windows, WinSCP binary path
        winscp_binary_path = ls.variable('binaries/winscp')
        if not winscp_binary_path.strip():
            winscp_binary_path = plugin_path('install', 'WinSCP')
        param = QgsProcessingParameterFile(
            self.WINSCP_BINARY_PATH,
            tr('WinSCP binary path'),
            defaultValue=winscp_binary_path,
            behavior=QgsProcessingParameterFile.Folder,
            optional=True
        )
        param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(param)

        # Clone FTP connection parameters
        # method
        self.CLONE_FTP_PROTOCOLS = ['SFTP', 'FTP']
        self.addParameter(
            QgsProcessingParameterEnum(
                self.CLONE_FTP_PROTOCOL,
                tr('Clone (S)FTP protocol'),
                options=self.CLONE_FTP_PROTOCOLS,
                defaultValue=0,
                optional=False,
            )
        )
        # host
        clone_ftp_host = ls.variable('ftp:clone/host')
        self.addParameter(
            QgsProcessingParameterString(
                self.CLONE_FTP_HOST,
                tr('Clone FTP Server host'),
                defaultValue=clone_ftp_host,
                optional=False
            )
        )
        # port
        clone_ftp_port = ls.variable('ftp:clone/port')
        self.addParameter(
            QgsProcessingParameterNumber(
                self.CLONE_FTP_PORT,
                tr('Clone FTP Server port'),
                defaultValue=clone_ftp_port,
                optional=False
            )
        )
        # login
        clone_ftp_login = ls.variable('ftp:clone/user')
        self.addParameter(
            QgsProcessingParameterString(
                self.CLONE_FTP_LOGIN,
                tr('Clone FTP Server login'),
                defaultValue=clone_ftp_login,
                optional=False
            )
        )
        # password
        self.addParameter(
            QgsProcessingParameterString(
                self.CLONE_FTP_PASSWORD,
                tr('Clone FTP Server password'),
                optional=True
            )
        )
        # remote directory
        clone_ftp_remote_dir = ls.variable('ftp:clone/remote_directory')
        self.addParameter(
            QgsProcessingParameterString(
                self.CLONE_FTP_REMOTE_DIR,
                tr('Clone FTP Server remote directory'),
                defaultValue=clone_ftp_remote_dir,
                optional=False
            )
        )

        # Exclude some directories from sync
        excluded_directories = ls.variable('local/excluded_directories')
        if not excluded_directories:
            excluded_directories = 'data'
        self.addParameter(
            QgsProcessingParameterString(
                self.FTP_EXCLUDE_REMOTE_SUBDIRS,
                tr('List of sub-directory to exclude from synchro, separated by commas.'),
                defaultValue=excluded_directories,
                optional=True
            )
        )

        # OUTPUTS
        # Add output for message
        self.addOutput(
            QgsProcessingOutputNumber(
                self.OUTPUT_STATUS, tr('Output status')
            )
        )
        self.addOutput(
            QgsProcessingOutputString(
                self.OUTPUT_STRING, tr('Output message')
            )
        )
示例#6
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterFile(
                self.INPUT,
                self.tr('Input CHM in PLANS DTM format'),
                QgsProcessingParameterFile.File,
                extension='dtm'))
        # self.addParameter(QgsProcessingParameterFile(
        # self.GROUND, self.tr('Input ground model in PLANS DTM format'), extension = 'dtm', optional=True))
        self.addParameter(
            QgsProcessingParameterNumber(
                self.HEIGHT_TH,
                self.tr('Minimum height for object segmentation'),
                QgsProcessingParameterNumber.Integer,
                minValue=0,
                defaultValue=0))
        self.addParameter(
            QgsProcessingParameterBoolean(self.VERSION64,
                                          self.tr('Use 64-bit version'),
                                          defaultValue=True))

        ground = QgsProcessingParameterFile(
            self.GROUND,
            self.tr('Input ground surface file (PLANS DTM format)'),
            extension='dtm',
            optional=True)
        ground.setFlags(ground.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(ground)

        heightNorm = QgsProcessingParameterBoolean(
            self.HEIGHT_NORM,
            self.tr('Normalize height model using a ground model'),
            defaultValue=False)
        heightNorm.setFlags(heightNorm.flags()
                            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(heightNorm)

        heightPts = QgsProcessingParameterBoolean(
            self.HEIGHT_PTS,
            self.tr("Normalize points' height using a ground model"),
            defaultValue=False)
        heightPts.setFlags(heightPts.flags()
                           | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(heightPts)

        lasPts = QgsProcessingParameterFile(
            self.LASPTS,
            self.tr("Input LAS layer(s)"),
            extension=('LAS/LAZ files (*.las *.laz)'),
            optional=True)
        lasPts.setFlags(lasPts.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(lasPts)

        segmentPts = QgsProcessingParameterBoolean(
            self.SEGMENTPTS,
            self.
            tr("Output points for the raster segments instead of crown polygons"
               ),
            defaultValue=False)
        segmentPts.setFlags(segmentPts.flags()
                            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(segmentPts)

        shape = QgsProcessingParameterBoolean(
            self.SHAPE,
            self.tr("Create basin/crown shapefiles with metrics"),
            defaultValue=False)
        shape.setFlags(shape.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(shape)

        self.addParameter(
            QgsProcessingParameterFileDestination(
                self.OUTPUT, self.tr('Base name for (multiple) output files')))
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterFile(self.INPUT,
                                       self.tr('Input LAS layer'),
                                       extension='las'))
        self.addParameter(
            QgsProcessingParameterNumber(self.CELLSIZE,
                                         self.tr('Cellsize'),
                                         QgsProcessingParameterNumber.Double,
                                         minValue=0,
                                         defaultValue=10.0))
        self.addParameter(
            QgsProcessingParameterEnum(self.XYUNITS, self.tr('XY Units'),
                                       self.UNITS))
        self.addParameter(
            QgsProcessingParameterEnum(self.ZUNITS, self.tr('Z Units'),
                                       self.UNITS))
        self.addParameter(
            QgsProcessingParameterFileDestination(
                self.OUTPUT_DTM, self.tr('Output surface'),
                self.tr('DTM files (*.dtm *.DTM)')))

        ground = QgsProcessingParameterFile(
            self.INPUT,
            self.tr('Input FUSION canopy height model'),
            optional=True)
        ground.setFlags(ground.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(ground)
        median = QgsProcessingParameterString(self.MEDIAN,
                                              self.tr('Median'),
                                              '',
                                              optional=True)
        median.setFlags(median.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(median)
        smooth = QgsProcessingParameterString(self.SMOOTH,
                                              self.tr('Smooth'),
                                              '',
                                              optional=True)
        smooth.setFlags(smooth.flags()
                        | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(smooth)
        class_var = QgsProcessingParameterString(self.CLASS,
                                                 self.tr('Class'),
                                                 '',
                                                 optional=True)
        class_var.setFlags(class_var.flags()
                           | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(class_var)
        slope = QgsProcessingParameterBoolean(self.SLOPE,
                                              self.tr('Calculate slope'),
                                              False)
        slope.setFlags(slope.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(slope)
        self.addParameter(
            QgsProcessingParameterBoolean(self.ASCII,
                                          self.tr('Add an ASCII output'),
                                          False))
        self.addAdvancedModifiers()