[processing] fixed frequency algorithm

This commit is contained in:
Victor Olaya 2014-07-11 14:22:05 +02:00
parent e53690583f
commit f5b84ca101

View File

@ -8,16 +8,16 @@ from PyQt4.QtCore import *
from processing.core.TableWriter import TableWriter from processing.core.TableWriter import TableWriter
from collections import defaultdict from collections import defaultdict
layer = processing.getObject(input) layer = processing.getObject(Input)
inputFields = layer.pendingFields() inputFields = layer.pendingFields()
fieldIdxs = [] fieldIdxs = []
fields = fields.split(',') fields = Fields.split(',')
for f in fields: for f in fields:
idx = inputFields.indexFromName(f) idx = inputFields.indexFromName(f)
if idx == -1: if idx == -1:
raise GeoAlgorithmExecutionException('Field not found:' + f) raise GeoAlgorithmExecutionException('Field not found:' + f)
fieldIdxs.append(idx) fieldIdxs.append(idx)
writer = TableWriter(output, None, fields + ['FREQ']) writer = TableWriter(Output, None, fields + ['FREQ'])
counts = {} counts = {}
feats = processing.features(layer) feats = processing.features(layer)
@ -26,8 +26,7 @@ counts = defaultdict(int)
for i, feat in enumerate(feats): for i, feat in enumerate(feats):
progress.setPercentage(int(100 * i / nFeats)) progress.setPercentage(int(100 * i / nFeats))
attrs = feat.attributes() attrs = feat.attributes()
clazz = tuple([attrs[idx] for idx in fieldIdxs]) clazz = tuple([attrs[idx] for idx in fieldIdxs])
print clazz
counts[clazz] += 1 counts[clazz] += 1
for c in counts: for c in counts: