def processAlgorithm(self, progress): # Get parameters input_filename = self.getParameterValue(self.INPUT_LAYER) radius = self.getParameterValue(self.RADIUS_FIELD) export_radius = self.getParameterValue(self.RADIUS_EXPORT) export_centroid = self.getParameterValue(self.CENTROID_EXPORT) envelope_layer_field = self.getParameterValue(self.ENVELOPE_LAYER) output = self.getOutputValue(self.OUTPUT_LAYER) #vector_layer = dataobjects.getObjectFromUri(input_filename) vector_layer = QgsProcessingUtils.mapLayerFromStrong(input_filename) # If we use a mask, envelope vector_layer_envelope_index = None if envelope_layer_field is not None: #vector_layer_envelope = dataobjects.getObjectFromUri(envelope_layer_field) vector_layer_envelope = QgsProcessingUtils.mapLayerFromStrong( envelope_layer_field) vector_layer_envelope_index = LayerIndex(vector_layer_envelope) settings = QSettings() system_encoding = settings.value('/UI/encoding', 'System') provider = vector_layer.dataProvider() fields = provider.fields() if export_radius: fields.append(QgsField(u"Radius", QVariant.Int)) if export_centroid: fields.append(QgsField(u"X centroid", QVariant.Int)) fields.append(QgsField(u"Y centroid", QVariant.Int)) writer = QgsVectorFileWriter(output, system_encoding, fields, QgsWkbTypes.Polygon, provider.crs()) # Creating a algorithm with all these parameters. algorithm = Blur(radius, vector_layer_envelope_index, export_radius, export_centroid) selection = vector_layer.selectedFeatures() #for feature in features(vector_layer): for feature in selection: feature = algorithm.blur(feature) writer.addFeature(feature)