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)"))
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))
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'))
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') ) )
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()