38 lines
960 B
Python
Raw Normal View History

##[Example scripts]=group
##input=vector
##output=output vector
from PyQt4.QtCore import *
from qgis.core import *
2013-08-12 20:44:27 +02:00
from processing.core.VectorWriter import VectorWriter
2013-08-12 20:44:27 +02:00
inputLayer = processing.getobject(input)
features = processing.getfeatures(inputLayer)
fields = inputLayer.pendingFields().toList()
2013-08-12 20:44:27 +02:00
outputLayer = VectorWriter(output, None, fields, QGis.WKBPoint, inputLayer.crs())
count = 0
mean = [0 for field in fields]
x = 0
y = 0
for ft in features:
2013-04-02 22:34:21 +02:00
c = ft.geometry().centroid().asPoint()
x += c.x()
2013-04-02 22:34:21 +02:00
y += c.y()
attrs = ft.attributes()
for f in range(len(fields)):
try:
2013-06-03 21:25:22 +02:00
mean[f] += float(attrs[f])
except:
pass
2013-04-02 22:34:21 +02:00
count += 1
if count != 0:
mean = [value / count for value in mean]
x /= count
2013-04-02 22:34:21 +02:00
y /= count
outFeat = QgsFeature()
meanPoint = QgsPoint(x, y)
outFeat.setGeometry(QgsGeometry.fromPoint(meanPoint))
2013-06-03 21:25:22 +02:00
outFeat.setAttributes([v for v in mean])
outputLayer.addFeature(outFeat)