def processAlgorithm(self, feedback): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) automaticColors = self.getParameterValue(self.AUTO_COLORS) colors = self.getParameterValue(self.COLORS) outputFile = self.getOutputValue(self.OUTPUT_LAYER) frequencyDistribution = self.getOutputValue(self.FREQUENCY_DISTRIBUTION) outputFormat = raster.formatShortNameFromFileName(outputFile) relief = QgsRelief(inputFile, outputFile, outputFormat) if automaticColors: reliefColors = relief.calculateOptimizedReliefClasses() else: if colors is None: raise GeoAlgorithmExecutionException( self.tr('Specify relief colors or activate "Generate relief classes automatically" option.')) reliefColors = [] for c in colors.split(';'): v = c.split(',') color = QgsRelief.ReliefColor(QColor(int(v[2]), int(v[3]), int(v[4])), float(v[0]), float(v[1])) reliefColors.append(color) relief.setReliefColors(reliefColors) relief.setZFactor(zFactor) relief.exportFrequencyDistributionToCsv(frequencyDistribution) relief.processRaster(None)
def processAlgorithm(self, feedback): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) automaticColors = self.getParameterValue(self.AUTO_COLORS) colors = self.getParameterValue(self.COLORS) outputFile = self.getOutputValue(self.OUTPUT_LAYER) frequencyDistribution = self.getOutputValue( self.FREQUENCY_DISTRIBUTION) outputFormat = raster.formatShortNameFromFileName(outputFile) relief = QgsRelief(inputFile, outputFile, outputFormat) if automaticColors: reliefColors = relief.calculateOptimizedReliefClasses() else: if colors is None: raise GeoAlgorithmExecutionException( self. tr('Specify relief colors or activate "Generate relief classes automatically" option.' )) reliefColors = [] for c in colors.split(';'): v = c.split(',') color = QgsRelief.ReliefColor( QColor(int(v[2]), int(v[3]), int(v[4])), float(v[0]), float(v[1])) reliefColors.append(color) relief.setReliefColors(reliefColors) relief.setZFactor(zFactor) relief.exportFrequencyDistributionToCsv(frequencyDistribution) relief.processRaster(None)
def processAlgorithm(self, context, feedback): layer = QgsProcessingUtils.mapLayerFromString( self.getParameterValue(self.INPUT_LAYER), context) radius = self.getParameterValue(self.RADIUS) kernel_shape = self.getParameterValue(self.KERNEL) pixel_size = self.getParameterValue(self.PIXEL_SIZE) decay = self.getParameterValue(self.DECAY) output_values = self.getParameterValue(self.OUTPUT_VALUE) output = self.getOutputValue(self.OUTPUT_LAYER) output_format = raster.formatShortNameFromFileName(output) weight_field = self.getParameterValue(self.WEIGHT_FIELD) radius_field = self.getParameterValue(self.RADIUS_FIELD) attrs = [] kde_params = QgsKernelDensityEstimation.Parameters() kde_params.vectorLayer = layer kde_params.radius = radius kde_params.pixelSize = pixel_size # radius field if radius_field: kde_params.radiusField = radius_field attrs.append(layer.fields().lookupField(radius_field)) # weight field if weight_field: kde_params.weightField = weight_field attrs.append(layer.fields().lookupField(weight_field)) kde_params.shape = kernel_shape kde_params.decayRatio = decay kde_params.outputValues = output_values kde = QgsKernelDensityEstimation(kde_params, output, output_format) if kde.prepare() != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Could not create destination layer')) request = QgsFeatureRequest() request.setSubsetOfAttributes(attrs) features = QgsProcessingUtils.getFeatures(layer, context, request) total = 100.0 / QgsProcessingUtils.featureCount(layer, context) for current, f in enumerate(features): if kde.addFeature(f) != QgsKernelDensityEstimation.Success: QgsMessageLog.logMessage( self.tr( 'Error adding feature with ID {} to heatmap').format( f.id()), self.tr('Processing'), QgsMessageLog.CRITICAL) feedback.setProgress(int(current * total)) if kde.finalise() != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Could not save destination layer'))
def processAlgorithm(self, progress): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) outputFile = self.getOutputValue(self.OUTPUT_LAYER) outputFormat = raster.formatShortNameFromFileName(outputFile) slope = QgsSlopeFilter(inputFile, outputFile, outputFormat) slope.setZFactor(zFactor) slope.processRaster(None)
def processAlgorithm(self, progress): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) outputFile = self.getOutputValue(self.OUTPUT_LAYER) outputFormat = raster.formatShortNameFromFileName(outputFile) aspect = QgsAspectFilter(inputFile, outputFile, outputFormat) aspect.setZFactor(zFactor) aspect.processRaster(None)
def processAlgorithm(self, parameters, context, feedback): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) outputFile = self.getOutputValue(self.OUTPUT_LAYER) outputFormat = raster.formatShortNameFromFileName(outputFile) slope = QgsSlopeFilter(inputFile, outputFile, outputFormat) slope.setZFactor(zFactor) slope.processRaster(None)
def processAlgorithm(self, feedback): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) outputFile = self.getOutputValue(self.OUTPUT_LAYER) outputFormat = raster.formatShortNameFromFileName(outputFile) ruggedness = QgsRuggednessFilter(inputFile, outputFile, outputFormat) ruggedness.setZFactor(zFactor) ruggedness.processRaster(None)
def processAlgorithm(self, progress): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) azimuth = self.getParameterValue(self.AZIMUTH) vAngle = self.getParameterValue(self.V_ANGLE) outputFile = self.getOutputValue(self.OUTPUT_LAYER) outputFormat = raster.formatShortNameFromFileName(outputFile) hillshade = QgsHillshadeFilter(inputFile, outputFile, outputFormat, azimuth, vAngle) hillshade.setZFactor(zFactor) hillshade.processRaster(None)
def processAlgorithm(self, feedback): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) azimuth = self.getParameterValue(self.AZIMUTH) vAngle = self.getParameterValue(self.V_ANGLE) outputFile = self.getOutputValue(self.OUTPUT_LAYER) outputFormat = raster.formatShortNameFromFileName(outputFile) hillshade = QgsHillshadeFilter(inputFile, outputFile, outputFormat, azimuth, vAngle) hillshade.setZFactor(zFactor) hillshade.processRaster(None)
def processAlgorithm(self, progress): layer = dataobjects.getObjectFromUri( self.getParameterValue(self.INPUT_LAYER)) radius = self.getParameterValue(self.RADIUS) kernel_shape = self.getParameterValue(self.KERNEL) pixel_size = self.getParameterValue(self.PIXEL_SIZE) decay = self.getParameterValue(self.DECAY) output_values = self.getParameterValue(self.OUTPUT_VALUE) output = self.getOutputValue(self.OUTPUT_LAYER) output_format = raster.formatShortNameFromFileName(output) weight_field = self.getParameterValue(self.WEIGHT_FIELD) radius_field = self.getParameterValue(self.RADIUS_FIELD) attrs = [] kde_params = QgsKernelDensityEstimation.Parameters() kde_params.vectorLayer = layer kde_params.radius = radius kde_params.pixelSize = pixel_size # radius field if radius_field: kde_params.radiusField = radius_field attrs.append(layer.fields().lookupField(radius_field)) # weight field if weight_field: kde_params.weightField = weight_field attrs.append(layer.fields().lookupField(weight_field)) kde_params.shape = kernel_shape kde_params.decayRatio = decay kde_params.outputValues = output_values kde = QgsKernelDensityEstimation(kde_params, output, output_format) if kde.prepare() != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Could not create destination layer')) request = QgsFeatureRequest() request.setSubsetOfAttributes(attrs) features = vector.features(layer, request) total = 100.0 / len(features) for current, f in enumerate(features): if kde.addFeature(f) != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Error adding feature to heatmap')) progress.setPercentage(int(current * total)) if kde.finalise() != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Could not save destination layer'))
def processAlgorithm(self, parameters, context, feedback): inputFile = exportRasterLayer(self.parameterAsRasterLayer(parameters, self.INPUT_LAYER, context)) zFactor = self.parameterAsDouble(parameters, self.Z_FACTOR, context) outputFile = self.parameterAsRasterOutputLayer(parameters, self.OUTPUT_LAYER, context) outputFormat = raster.formatShortNameFromFileName(outputFile) aspect = QgsAspectFilter(inputFile, outputFile, outputFormat) aspect.setZFactor(zFactor) aspect.processRaster(None) return {self.OUTPUT_LAYER: outputFile}
def processAlgorithm(self, parameters, context, feedback): inputFile = exportRasterLayer(self.parameterAsRasterLayer(parameters, self.INPUT, context)) zFactor = self.parameterAsDouble(parameters, self.Z_FACTOR, context) outputFile = self.parameterAsOutputLayer(parameters, self.OUTPUT, context) outputFormat = raster.formatShortNameFromFileName(outputFile) aspect = QgsAspectFilter(inputFile, outputFile, outputFormat) aspect.setZFactor(zFactor) aspect.processRaster(feedback) return {self.OUTPUT: outputFile}
def processAlgorithm(self, parameters, context, feedback): layer = QgsProcessingUtils.mapLayerFromString(self.getParameterValue(self.INPUT_LAYER), context) radius = self.getParameterValue(self.RADIUS) kernel_shape = self.getParameterValue(self.KERNEL) pixel_size = self.getParameterValue(self.PIXEL_SIZE) decay = self.getParameterValue(self.DECAY) output_values = self.getParameterValue(self.OUTPUT_VALUE) output = self.getOutputValue(self.OUTPUT_LAYER) output_format = raster.formatShortNameFromFileName(output) weight_field = self.getParameterValue(self.WEIGHT_FIELD) radius_field = self.getParameterValue(self.RADIUS_FIELD) attrs = [] kde_params = QgsKernelDensityEstimation.Parameters() kde_params.vectorLayer = layer kde_params.radius = radius kde_params.pixelSize = pixel_size # radius field if radius_field: kde_params.radiusField = radius_field attrs.append(layer.fields().lookupField(radius_field)) # weight field if weight_field: kde_params.weightField = weight_field attrs.append(layer.fields().lookupField(weight_field)) kde_params.shape = kernel_shape kde_params.decayRatio = decay kde_params.outputValues = output_values kde = QgsKernelDensityEstimation(kde_params, output, output_format) if kde.prepare() != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Could not create destination layer')) request = QgsFeatureRequest() request.setSubsetOfAttributes(attrs) features = QgsProcessingUtils.getFeatures(layer, context, request) total = 100.0 / QgsProcessingUtils.featureCount(layer, context) for current, f in enumerate(features): if kde.addFeature(f) != QgsKernelDensityEstimation.Success: QgsMessageLog.logMessage(self.tr('Error adding feature with ID {} to heatmap').format(f.id()), self.tr('Processing'), QgsMessageLog.CRITICAL) feedback.setProgress(int(current * total)) if kde.finalise() != QgsKernelDensityEstimation.Success: raise GeoAlgorithmExecutionException( self.tr('Could not save destination layer'))
def processAlgorithm(self, progress): inputFile = self.getParameterValue(self.INPUT_LAYER) zFactor = self.getParameterValue(self.Z_FACTOR) outputFile = self.getOutputValue(self.OUTPUT_LAYER) frequencyDistribution = self.getOutputValue(self.FREQUENCY_DISTRIBUTION) outputFormat = raster.formatShortNameFromFileName(outputFile) relief = QgsRelief(inputFile, outputFile, outputFormat) colors = relief.calculateOptimizedReliefClasses() relief.setReliefColors(colors) relief.setZFactor(zFactor) relief.exportFrequencyDistributionToCsv(frequencyDistribution) relief.processRaster(None)
def processAlgorithm(self, parameters, context, feedback): inputFile = exportRasterLayer(self.parameterAsRasterLayer(parameters, self.INPUT, context)) zFactor = self.parameterAsDouble(parameters, self.Z_FACTOR, context) azimuth = self.parameterAsDouble(parameters, self.AZIMUTH, context) vAngle = self.parameterAsDouble(parameters, self.V_ANGLE, context) outputFile = self.parameterAsOutputLayer(parameters, self.OUTPUT, context) outputFormat = raster.formatShortNameFromFileName(outputFile) hillshade = QgsHillshadeFilter(inputFile, outputFile, outputFormat, azimuth, vAngle) hillshade.setZFactor(zFactor) hillshade.processRaster(feedback) return {self.OUTPUT: outputFile}
def processAlgorithm(self, parameters, context, feedback): source = self.parameterAsSource(parameters, self.INPUT, context) radius = self.parameterAsDouble(parameters, self.RADIUS, context) kernel_shape = self.parameterAsEnum(parameters, self.KERNEL, context) pixel_size = self.parameterAsDouble(parameters, self.PIXEL_SIZE, context) decay = self.parameterAsDouble(parameters, self.DECAY, context) output_values = self.parameterAsEnum(parameters, self.OUTPUT_VALUE, context) outputFile = self.parameterAsOutputLayer(parameters, self.OUTPUT, context) output_format = raster.formatShortNameFromFileName(outputFile) weight_field = self.parameterAsString(parameters, self.WEIGHT_FIELD, context) radius_field = self.parameterAsString(parameters, self.RADIUS_FIELD, context) attrs = [] kde_params = QgsKernelDensityEstimation.Parameters() kde_params.source = source kde_params.radius = radius kde_params.pixelSize = pixel_size # radius field if radius_field: kde_params.radiusField = radius_field attrs.append(source.fields().lookupField(radius_field)) # weight field if weight_field: kde_params.weightField = weight_field attrs.append(source.fields().lookupField(weight_field)) kde_params.shape = kernel_shape kde_params.decayRatio = decay kde_params.outputValues = output_values kde = QgsKernelDensityEstimation(kde_params, outputFile, output_format) if kde.prepare() != QgsKernelDensityEstimation.Success: raise QgsProcessingException( self.tr('Could not create destination layer')) request = QgsFeatureRequest() request.setSubsetOfAttributes(attrs) features = source.getFeatures(request) total = 100.0 / source.featureCount() if source.featureCount() else 0 for current, f in enumerate(features): if feedback.isCanceled(): break if kde.addFeature(f) != QgsKernelDensityEstimation.Success: feedback.reportError( self.tr( 'Error adding feature with ID {} to heatmap').format( f.id())) feedback.setProgress(int(current * total)) if kde.finalise() != QgsKernelDensityEstimation.Success: raise QgsProcessingException( self.tr('Could not save destination layer')) return {self.OUTPUT: outputFile}