Skip to content

Commit 9afe76d

Browse files
committedMar 21, 2013
housekeeping: remove obsolete code, completely switch to new vector API
1 parent 6df3540 commit 9afe76d

33 files changed

+235
-259
lines changed
 

‎python/plugins/sextante/algs/ftools/BasicStatisticsNumbers.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,17 @@
2424
__revision__ = '$Format:%H$'
2525

2626
import math
27+
2728
from PyQt4.QtCore import *
29+
2830
from qgis.core import *
31+
2932
from sextante.core.GeoAlgorithm import GeoAlgorithm
3033
from sextante.core.QGisLayers import QGisLayers
34+
3135
from sextante.parameters.ParameterVector import ParameterVector
3236
from sextante.parameters.ParameterTableField import ParameterTableField
37+
3338
from sextante.outputs.OutputHTML import OutputHTML
3439
from sextante.outputs.OutputNumber import OutputNumber
3540

@@ -86,7 +91,6 @@ def processAlgorithm(self, progress):
8691
outputFile = self.getOutputValue(self.OUTPUT_HTML_FILE)
8792

8893
index = layer.fieldNameIndex(fieldName)
89-
#layer.select([index], QgsRectangle(), False)
9094

9195
cvValue = 0
9296
minValue = 0

‎python/plugins/sextante/algs/ftools/BasicStatisticsStrings.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
# This will get replaced with a git SHA1 when you do a git archive
2424
__revision__ = '$Format:%H$'
2525

26+
import codecs
2627

27-
from PyQt4 import QtGui
2828
from PyQt4.QtCore import *
2929

3030
from qgis.core import *
@@ -84,7 +84,6 @@ def processAlgorithm(self, progress):
8484
outputFile = self.getOutputValue(self.OUTPUT_HTML_FILE)
8585

8686
index = layer.fieldNameIndex(fieldName)
87-
layer.select([index], QgsRectangle(), False)
8887

8988
sumValue = 0
9089
minValue = 0
@@ -150,7 +149,10 @@ def processAlgorithm(self, progress):
150149
self.setOutputValue(self.UNIQUE, uniqueValues)
151150

152151
def createHTML(self, outputFile, algData):
153-
f = open(outputFile, "w")
152+
f = codecs.open(outputFile, "w", encoding="utf-8")
153+
f.write('<html><head>')
154+
f.write('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>')
154155
for s in algData:
155156
f.write("<p>" + str(s) + "</p>")
157+
f.write("</body></html>")
156158
f.close()

‎python/plugins/sextante/algs/ftools/Buffer.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
3434
GEOS_EXCEPT = True
3535
FEATURE_EXCEPT = True
3636

37-
layer.select(layer.pendingAllAttributesList())
38-
3937
if useField:
4038
field = layer.fieldNameIndex(field)
4139

@@ -52,9 +50,9 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
5250
if dissolve:
5351
first = True
5452
for inFeat in features:
55-
atMap = inFeat.attributes()
53+
attrs = inFeat.attributes()
5654
if useField:
57-
value = atMap[field].toDouble()[0]
55+
value = attrs[field].toDouble()[0]
5856
else:
5957
value = distance
6058

@@ -78,15 +76,16 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
7876
progress.setPercentage(int(current * total))
7977
try:
8078
outFeat.setGeometry(tempGeom)
79+
outFeat.setAttributes(attrs)
8180
writer.addFeature(outFeat)
8281
except:
8382
FEATURE_EXCEPT = False
8483
# without dissolve
8584
else:
8685
for inFeat in features:
87-
atMap = inFeat.attributes()
86+
attrs = inFeat.attributes()
8887
if useField:
89-
value = atMap[field].toDouble()[0]
88+
value = attrs[field].toDouble()[0]
9089
else:
9190
value = distance
9291

@@ -95,7 +94,7 @@ def buffering(progress, writer, distance, field, useField, layer, dissolve, segm
9594
outGeom = inGeom.buffer(float(value), segments)
9695
try:
9796
outFeat.setGeometry(outGeom)
98-
outFeat.setAttributes(atMap)
97+
outFeat.setAttributes(attrs)
9998
writer.addFeature(outFeat)
10099
except:
101100
FEATURE_EXCEPT = False

‎python/plugins/sextante/algs/ftools/Centroids.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,9 @@ def defineCharacteristics(self):
5555
def processAlgorithm(self, progress):
5656
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_LAYER))
5757

58-
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(layer.pendingFields(),
58+
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(layer.pendingFields().toList(),
5959
QGis.WKBPoint, layer.crs())
6060

61-
#layer.select(layer.pendingAllAttributesList())
62-
6361
outFeat = QgsFeature()
6462

6563
features = QGisLayers.features(layer)

‎python/plugins/sextante/algs/ftools/ConvexHull.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def processAlgorithm(self, progress):
113113
first = True
114114
features = QGisLayers.features(layer)
115115
for f in features:
116-
idVar = f.attribute(fieldName)
116+
idVar = f[fieldName]
117117
if idVar.toString().trimmed() == i.toString().trimmed():
118118
if first:
119119
val = idVar
@@ -135,10 +135,6 @@ def processAlgorithm(self, progress):
135135
QVariant(area),
136136
QVariant(perim)
137137
])
138-
#~ outFeat.setAttribute("id", QVariant(fid))
139-
#~ outFeat.setAttribute("value", QVariant(val))
140-
#~ outFeat.setAttribute("area", QVariant(area))
141-
#~ outFeat.setAttribute("perim", QVariant(perim))
142138
writer.addFeature(outFeat)
143139
except:
144140
GEOS_EXCEPT = False
@@ -165,10 +161,6 @@ def processAlgorithm(self, progress):
165161
QVariant(area),
166162
QVariant(perim)
167163
])
168-
#print outFeat.setAttribute("id", QVariant(0))
169-
#print outFeat.setAttribute("value", QVariant("all"))
170-
#print outFeat.setAttribute("area", QVariant(area))
171-
#print outFeat.setAttribute("perim", QVariant(perim))
172164
writer.addFeature(outFeat)
173165
except:
174166
GEOS_EXCEPT = False

‎python/plugins/sextante/algs/ftools/Delaunay.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,22 @@
2323
# This will get replaced with a git SHA1 when you do a git archive
2424
__revision__ = '$Format:%H$'
2525

26+
from sets import Set
27+
2628
from PyQt4.QtCore import *
29+
2730
from qgis.core import *
28-
from sets import Set
29-
from sextante.algs.ftools import voronoi
31+
3032
from sextante.core.GeoAlgorithm import GeoAlgorithm
31-
from sextante.core.GeoAlgorithmExecutionException import \
32-
GeoAlgorithmExecutionException
33+
from sextante.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
3334
from sextante.core.QGisLayers import QGisLayers
34-
from sextante.outputs.OutputVector import OutputVector
35+
3536
from sextante.parameters.ParameterVector import ParameterVector
3637

38+
from sextante.outputs.OutputVector import OutputVector
39+
40+
from sextante.algs.ftools import voronoi
41+
3742

3843
class Delaunay(GeoAlgorithm):
3944

@@ -57,9 +62,9 @@ def processAlgorithm(self, progress):
5762
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT))
5863

5964

60-
fields = [ QgsField("POINTA", QVariant.Double, "", 24, 15),
61-
QgsField("POINTB", QVariant.Double, "", 24, 15),
62-
QgsField("POINTC", QVariant.Double, "", 24, 15)
65+
fields = [QgsField("POINTA", QVariant.Double, "", 24, 15),
66+
QgsField("POINTB", QVariant.Double, "", 24, 15),
67+
QgsField("POINTC", QVariant.Double, "", 24, 15)
6368
]
6469

6570
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
@@ -100,7 +105,8 @@ def processAlgorithm(self, progress):
100105
attrs = []
101106
step = 0
102107
for index in indicies:
103-
layer.featureAtId(ptDict[ids[index]], inFeat, True)
108+
request = QgsFeatureRequest().setFilterFid(ptDict[ids[index]])
109+
inFeat = layer.getFeatures(request).next()
104110
geom = QgsGeometry(inFeat.geometry())
105111
point = QgsPoint(geom.asPoint())
106112
polygon.append(point)

‎python/plugins/sextante/algs/ftools/DensifyGeometries.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
# This will get replaced with a git SHA1 when you do a git archive
2424
__revision__ = '$Format:%H$'
2525

26-
2726
from PyQt4.QtCore import *
2827

2928
from qgis.core import *
@@ -42,9 +41,6 @@ class DensifyGeometries(GeoAlgorithm):
4241
VERTICES = "VERTICES"
4342
OUTPUT = "OUTPUT"
4443

45-
#def getIcon(self):
46-
# return QtGui.QIcon(os.path.dirname(__file__) + "/icons/de.png")
47-
4844
def defineCharacteristics(self):
4945
self.name = "Densify geometries"
5046
self.group = "Vector geometry tools"
@@ -60,19 +56,19 @@ def processAlgorithm(self, progress):
6056

6157
isPolygon = layer.geometryType() == QGis.Polygon
6258

63-
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
59+
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields().toList(),
6460
layer.wkbType(), layer.crs())
6561

6662
features = QGisLayers.features(layer)
6763
total = 100.0 / float(len(features))
6864
current = 0
6965
for f in features:
7066
featGeometry = QgsGeometry(f.geometry())
71-
attrMap = f.attributes()
67+
attrs = f.attributes()
7268
newGeometry = self.densifyGeometry(featGeometry, int(vertices), isPolygon)
7369
feature = QgsFeature()
7470
feature.setGeometry(newGeometry)
75-
feature.setAttributes(attrMap)
71+
feature.setAttributes(attrs)
7672
writer.addFeature(feature)
7773
current += 1
7874
progress.setPercentage(int(current * total))

‎python/plugins/sextante/algs/ftools/DensifyGeometriesInterval.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
"""
44
***************************************************************************
55
DensifyGeometriesInterval.py by Anita Graser, Dec 2012
6-
based on
7-
DensifyGeometries.py
6+
based on DensifyGeometries.py
87
---------------------
98
Date : October 2012
109
Copyright : (C) 2012 by Victor Olaya
@@ -58,20 +57,19 @@ def processAlgorithm(self, progress):
5857

5958
isPolygon = layer.geometryType() == QGis.Polygon
6059

61-
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
60+
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields().toList(),
6261
layer.wkbType(), layer.crs())
6362

64-
6563
features = QGisLayers.features(layer)
6664
total = 100.0 / float(len(features))
6765
current = 0
6866
for f in features:
6967
featGeometry = QgsGeometry(f.geometry())
70-
attrMap = f.attributes()
68+
attrs = f.attributes()
7169
newGeometry = self.densifyGeometry(featGeometry, interval, isPolygon)
7270
feature = QgsFeature()
7371
feature.setGeometry(newGeometry)
74-
feature.setAttributes(attrMap)
72+
feature.setAttributes(attrs)
7573
writer.addFeature(feature)
7674

7775
current += 1

‎python/plugins/sextante/algs/ftools/ExportGeometryInfo.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,24 +66,26 @@ def processAlgorithm(self, progress):
6666
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT))
6767
method = self.getParameterValue(self.METHOD)
6868

69-
provider = layer.dataProvider()
7069
geometryType = layer.geometryType()
7170

72-
layer.select(layer.pendingAllAttributesList())
73-
74-
fields = provider.fields()
71+
idx1 = -1
72+
idx2 = -1
73+
fields = layer.pendingFields()
7574

7675
if geometryType == QGis.Polygon:
77-
fields.append(QgsField(QString("area"), QVariant.Double))
78-
fields.append(QgsField(QString("perimeter"), QVariant.Double))
76+
idx1, fields = utils.findOrCreateField(layer, fields, "area", 21, 6)
77+
idx2, fields = utils.findOrCreateField(layer, fields, "perimeter", 21, 6)
7978
elif geometryType == QGis.Line:
80-
fields.append(QgsField(QString("length"), QVariant.Double))
79+
idx1, fields = utils.findOrCreateField(layer, fields, "length", 21, 6)
80+
idx2 = idx1
8181
else:
82-
fields.append(QgsField(QString("xcoords"), QVariant.Double))
83-
fields.append(QgsField(QString("ycoords"), QVariant.Double))
82+
idx1, fields = utils.findOrCreateField(layer, fields, "xcoord", 21, 6)
83+
idx2, fields = utils.findOrCreateField(layer, fields, "ycoord", 21, 6)
84+
85+
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields.toList(),
86+
layer.dataProvider().geometryType(), layer.crs())
8487

85-
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
86-
provider.geometryType(), layer.crs())
88+
print idx1, idx2
8789

8890
ellips = None
8991
crs = None
@@ -105,23 +107,26 @@ def processAlgorithm(self, progress):
105107
outFeat = QgsFeature()
106108
inGeom = QgsGeometry()
107109

110+
outFeat.initAttributes(len(fields))
111+
outFeat.setFields(fields)
112+
108113
current = 0
109114
features = QGisLayers.features(layer)
110115
total = 100.0 / float(len(features))
111-
for inFeat in features:
112-
inGeom = inFeat.geometry()
116+
for f in features:
117+
inGeom = f.geometry()
113118

114119
if method == 1:
115120
inGeom.transform(coordTransform)
116121

117122
(attr1, attr2) = utils.simpleMeasure(inGeom, method, ellips, crs)
118123

119124
outFeat.setGeometry(inGeom)
120-
atMap = inFeat.attributes()
121-
atMap.append(QVariant(attr1))
125+
attrs = f.attributes()
126+
attrs.insert(idx1, QVariant(attr1))
122127
if attr2 is not None:
123-
atMap.append(QVariant(attr2))
124-
outFeat.setAttributes(atMap)
128+
attrs.insert(idx2, QVariant(attr2))
129+
outFeat.setAttributes(attrs)
125130
writer.addFeature(outFeat)
126131

127132
current += 1

0 commit comments

Comments
 (0)