From ac54c8e00ae123a59b0c6f68f1fa18f8e62bff63 Mon Sep 17 00:00:00 2001 From: volaya Date: Fri, 3 Oct 2014 10:41:44 +0200 Subject: [PATCH] [processing] updated freq analysis alg --- .../algs/qgis/scripts/Frequency_analysis.py | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/python/plugins/processing/algs/qgis/scripts/Frequency_analysis.py b/python/plugins/processing/algs/qgis/scripts/Frequency_analysis.py index 55c75eded4c..e81135ac55e 100644 --- a/python/plugins/processing/algs/qgis/scripts/Frequency_analysis.py +++ b/python/plugins/processing/algs/qgis/scripts/Frequency_analysis.py @@ -1,33 +1,35 @@ -##Vector table tools=group -##Input=vector -##Fields=string -##Output=output table +##Table=group +##input=vector +##fields=string +##output=output table from qgis.core import * from PyQt4.QtCore import * +from processing.core.TableWriter import TableWriter from collections import defaultdict -layer = processing.getObject(Input) +layer = processing.getObject(input) inputFields = layer.pendingFields() fieldIdxs = [] -fields = Fields.split(',') -for f in fields: - idx = inputFields.indexFromName(f) +fields = fields.split(',') +for f in fields: + idx = inputFields.indexFromName(f) if idx == -1: raise GeoAlgorithmExecutionException('Field not found:' + f) fieldIdxs.append(idx) -writer = processing.TableWriter(Output, None, fields + ['FREQ']) +writer = TableWriter(output, None, fields + ['FREQ']) counts = {} feats = processing.features(layer) nFeats = len(feats) counts = defaultdict(int) for i, feat in enumerate(feats): - progress.setPercentage(int(100 * i / nFeats)) + progress.setPercentage(int(100 * i / nFeats)) attrs = feat.attributes() clazz = tuple([attrs[idx] for idx in fieldIdxs]) + print clazz counts[clazz] += 1 -for c in counts: +for c in counts: writer.addRecord(list(c) + [counts[c]])