##Centroids=name ##Geometry=group #inputs ##INPUT_LAYER=source ##OUTPUT_LAYER=sink point #outputs ##OUTPUT_LAYER=output outputVector from qgis.core import QgsWkbTypes, QgsProcessingUtils fields = INPUT_LAYER.fields() (sink, OUTPUT_LAYER) = self.parameterAsSink(parameters, 'OUTPUT_LAYER', context, fields, QgsWkbTypes.Point, INPUT_LAYER.sourceCrs()) features = INPUT_LAYER.getFeatures() count = INPUT_LAYER.featureCount() if count == 0: raise GeoAlgorithmExecutionException('Input layer contains no features.') total = 100.0 / count for count, f in enumerate(features): outputFeature = f if f.hasGeometry(): outputGeometry = f.geometry().centroid() outputFeature.setGeometry(outputGeometry) sink.addFeature(outputFeature) feedback.setProgress(int(count * total))