Skip to content

Commit 3e6c803

Browse files
committedFeb 24, 2013
[sextante]Replaced provider.crs() by layer.crs(). Fixed memory layer usage
1 parent ce8d79c commit 3e6c803

28 files changed

+41
-43
lines changed
 

‎python/plugins/sextante/algs/AddTableField.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def processAlgorithm(self, progress):
6464
vprovider = vlayer.dataProvider()
6565
fields = vprovider.fields()
6666
fields.append(QgsField(fieldname, self.TYPES[fieldtype]))
67-
writer = output.getVectorWriter(fields, vprovider.geometryType(), vprovider.crs() )
67+
writer = output.getVectorWriter(fields, vprovider.geometryType(), vlayer.crs() )
6868
outFeat = QgsFeature()
6969
inGeom = QgsGeometry()
7070
nElement = 0

‎python/plugins/sextante/algs/AutoincrementalField.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def processAlgorithm(self, progress):
4646
vprovider = vlayer.dataProvider()
4747
fields = vprovider.fields()
4848
fields[len(fields)] = QgsField("AUTO", QVariant.Int)
49-
writer = output.getVectorWriter(fields, vprovider.geometryType(), vprovider.crs() )
49+
writer = output.getVectorWriter(fields, vprovider.geometryType(), vlayer.crs() )
5050
inFeat = QgsFeature()
5151
outFeat = QgsFeature()
5252
inGeom = QgsGeometry()

‎python/plugins/sextante/algs/EquivalentNumField.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def processAlgorithm(self, progress):
5050
fieldindex = vlayer.fieldNameIndex(fieldname)
5151
fields = vprovider.fields()
5252
fields.append(QgsField("NUM_FIELD", QVariant.Int))
53-
writer = output.getVectorWriter(fields, vprovider.geometryType(), vprovider.crs() )
53+
writer = output.getVectorWriter(fields, vprovider.geometryType(), vlayer.crs() )
5454
outFeat = QgsFeature()
5555
inGeom = QgsGeometry()
5656
nElement = 0

‎python/plugins/sextante/algs/Explode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def processAlgorithm(self, progress):
4646
output = self.getOutputFromName(self.OUTPUT)
4747
vprovider = vlayer.dataProvider()
4848
fields = vprovider.fields()
49-
writer = output.getVectorWriter(fields, QGis.WKBLineString, vprovider.crs() )
49+
writer = output.getVectorWriter(fields, QGis.WKBLineString, vlayer.crs() )
5050
outFeat = QgsFeature()
5151
inGeom = QgsGeometry()
5252
nElement = 0

‎python/plugins/sextante/algs/FieldPyculator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def processAlgorithm(self, progress):
6969
vprovider = layer.dataProvider()
7070
fields = vprovider.fields()
7171
fields.append(QgsField(fieldname, QVariant.Double))
72-
writer = output.getVectorWriter(fields, vprovider.geometryType(), vprovider.crs() )
72+
writer = output.getVectorWriter(fields, vprovider.geometryType(), layer.crs() )
7373
outFeat = QgsFeature()
7474
new_ns = {}
7575

‎python/plugins/sextante/algs/FieldsCalculator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def processAlgorithm(self, progress):
6161
vprovider = vlayer.dataProvider()
6262
fields = vprovider.fields()
6363
fields.append(QgsField(fieldname, QVariant.Double))
64-
writer = output.getVectorWriter(fields, vprovider.geometryType(), vprovider.crs())
64+
writer = output.getVectorWriter(fields, vprovider.geometryType(), vlayer.crs())
6565
outFeat = QgsFeature()
6666
inGeom = QgsGeometry()
6767
nFeat = vprovider.featureCount()

‎python/plugins/sextante/algs/JoinAttributes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def processAlgorithm(self, progress):
7272
outFields.extend(provider.fields())
7373
outFields.extend(provider2.fields())
7474

75-
writer = output.getVectorWriter(outFields, provider.geometryType(), provider.crs())
75+
writer = output.getVectorWriter(outFields, provider.geometryType(), layer.crs())
7676

7777
inFeat = QgsFeature()
7878
inFeat2 = QgsFeature()

‎python/plugins/sextante/algs/SaveSelectedFeatures.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def processAlgorithm(self, progress):
8585
#To do so, we call the getVectorWriter method in the Output object.
8686
#That will give as a SextanteVectorWriter, that we can later use to add features.
8787
provider = vectorLayer.dataProvider()
88-
writer = output.getVectorWriter( provider.fields(), provider.geometryType(), provider.crs() )
88+
writer = output.getVectorWriter( provider.fields(), provider.geometryType(), vectorLayer.crs() )
8989

9090
#Now we take the selected features and add them to the output layer
9191
features = QGisLayers.features(vectorLayer)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def processAlgorithm(self, progress):
5656
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_LAYER))
5757

5858
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(layer.pendingFields(),
59-
QGis.WKBPoint, layer.dataProvider().crs())
59+
QGis.WKBPoint, layer.crs())
6060

6161
#layer.select(layer.pendingAllAttributesList())
6262

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def processAlgorithm(self, progress):
6363
]
6464

6565
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
66-
QGis.WKBPolygon, layer.dataProvider().crs())
66+
QGis.WKBPolygon, layer.crs())
6767

6868
pts = []
6969
ptDict = {}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def processAlgorithm(self, progress):
7878
fields.append(QgsField(QString("ycoords"), QVariant.Double))
7979

8080
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
81-
provider.geometryType(), provider.crs())
81+
provider.geometryType(), layer.crs())
8282

8383
ellips = None
8484
crs = None

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def processAlgorithm(self, progress):
5656
provider = layer.dataProvider()
5757

5858
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
59-
QGis.WKBPoint, provider.crs())
59+
QGis.WKBPoint, layer.crs())
6060

6161
outFeat = QgsFeature()
6262
inGeom = QgsGeometry()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def processAlgorithm(self, progress):
7070

7171
provider = layer.dataProvider()
7272
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
73-
QGis.WKBPolygon, provider.crs())
73+
QGis.WKBPolygon, layer.crs())
7474

7575
buff.buffering(progress, writer, distance, None, False,
7676
layer, dissolve, segments)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def processAlgorithm(self, progress):
5252
provider = layer.dataProvider()
5353

5454
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
55-
QGis.WKBPolygon, provider.crs())
55+
QGis.WKBPolygon, layer.crs())
5656

5757
outFeat = QgsFeature()
5858

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def processAlgorithm(self, progress):
7878
]
7979

8080
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList,
81-
QGis.WKBPoint, provider.crs())
81+
QGis.WKBPoint, layer.crs())
8282

8383
current = 0
8484
total = 100.0 / float(provider.featureCount() * len(uniqueValues))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def processAlgorithm(self, progress):
6060
geomType = self.multiToSingleGeom(provider.geometryType())
6161

6262
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
63-
geomType, provider.crs())
63+
geomType, layer.crs())
6464

6565
outFeat = QgsFeature()
6666
inGeom = QgsGeometry()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def processAlgorithm(self, progress):
6565
provider = layer.dataProvider()
6666

6767
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
68-
layer.wkbType(), provider.crs())
68+
layer.wkbType(), layer.crs())
6969

7070
current = 0
7171
selection = QGisLayers.features(layer)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def processAlgorithm(self, progress):
6565
geomType = self.singleToMultiGeom(provider.geometryType())
6666

6767
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.pendingFields(),
68-
geomType, provider.crs())
68+
geomType, layer.crs())
6969

7070
inFeat = QgsFeature()
7171
outFeat = QgsFeature()

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,7 @@ def processAlgorithm(self, progress):
5454

5555
fields = utils.combineVectorFields(vlayerA, vlayerB )
5656
names = [field.name() for field in fields]
57-
SextanteLog.addToLog(SextanteLog.LOG_INFO, str(names))
58-
#longNames = ftools_utils.checkFieldNameLength( fields )
59-
#if not longNames.isEmpty():
60-
#raise GeoAlgorithmExecutionException("Following field names are longer than 10 characters:\n" + longNames.join('\n') )
57+
SextanteLog.addToLog(SextanteLog.LOG_INFO, str(names))
6158
writer = self.getOutputFromName(Union.OUTPUT).getVectorWriter(fields, vproviderA.geometryType(), vproviderA.crs() )
6259
inFeatA = QgsFeature()
6360
inFeatB = QgsFeature()

‎python/plugins/sextante/algs/mmqgisx/MMQGISXAlgorithms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ def processAlgorithm(self, progress):
803803
for feature in features:
804804
source = feature.geometry().boundingBox().center()
805805
distance = QgsDistanceArea()
806-
distance.setSourceCrs(layersource.dataProvider().crs().srsid())
806+
distance.setSourceCrs(layersource.crs().srsid())
807807
distance.setEllipsoidalMode(True)
808808

809809
closest = hubs[0]

‎python/plugins/sextante/core/GeoAlgorithm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ def convertUnsupportedFormats(self, progress):
198198
if layer is None: # for the case of memory layer, if the getCompatible method has been called
199199
continue
200200
provider = layer.dataProvider()
201-
writer = out.getVectorWriter( provider.fields(), provider.geometryType(), provider.crs())
201+
writer = out.getVectorWriter( provider.fields(), provider.geometryType(), layer.crs())
202202
features = QGisLayers.features(layer)
203203
for feature in features:
204204
writer.addFeature(feature)

‎python/plugins/sextante/core/LayerExporter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def exportVectorLayer(layer):
5252
provider = layer.dataProvider()
5353
useSelection = SextanteConfig.getSetting(SextanteConfig.USE_SELECTED)
5454
if useSelection and layer.selectedFeatureCount() != 0:
55-
writer = QgsVectorFileWriter(output, systemEncoding, layer.pendingFields(), provider.geometryType(), provider.crs())
55+
writer = QgsVectorFileWriter(output, systemEncoding, layer.pendingFields(), provider.geometryType(), layer.crs())
5656
selection = layer.selectedFeatures()
5757
for feat in selection:
5858
writer.addFeature(feat)
@@ -65,7 +65,7 @@ def exportVectorLayer(layer):
6565
except UnicodeEncodeError:
6666
isASCII=False
6767
if (not unicode(layer.source()).endswith("shp") or not isASCII):
68-
writer = QgsVectorFileWriter( output, systemEncoding, layer.pendingFields(), provider.geometryType(), provider.crs() )
68+
writer = QgsVectorFileWriter( output, systemEncoding, layer.pendingFields(), provider.geometryType(), layer.crs() )
6969
for feat in layer.getFeatures():
7070
writer.addFeature(feat)
7171
del writer
@@ -108,7 +108,7 @@ def exportTable( table):
108108
isASCII=False
109109
isDbf = unicode(table.source()).endswith("dbf") or unicode(table.source()).endswith("shp")
110110
if (not isDbf or not isASCII):
111-
writer = QgsVectorFileWriter( output, systemEncoding, provider.fields(), QGis.WKBNoGeometry, provider.crs() )
111+
writer = QgsVectorFileWriter( output, systemEncoding, provider.fields(), QGis.WKBNoGeometry, layer.crs() )
112112
for feat in table.getFeatures():
113113
writer.addFeature(feat)
114114
del writer

‎python/plugins/sextante/core/SextanteVectorWriter.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,13 @@ def __init__(self, fileName, encoding, fields, geometryType, crs, options=None):
5454

5555
uri = self.TYPE_MAP[geometryType]
5656
if crs.isValid():
57-
uri += "?crs=" + crs.authid()
57+
uri += "?crs=" + crs.authid() + "&"
58+
fieldsdesc = ["field=" + str(f.name()) for f in fields]
59+
#+ ":" + str(f.typeName())
60+
fieldsstring = "&".join(fieldsdesc)
61+
uri += fieldsstring
5862
self.memLayer = QgsVectorLayer(uri, self.fileName, "memory")
59-
self.writer = self.memLayer.dataProvider()
60-
# FIXME: addAttributes was deprecated and removed
61-
self.writer.addAttributes(fields.values())
62-
self.memLayer.updateFieldMap()
63+
self.writer = self.memLayer.dataProvider()
6364
else:
6465
formats = QgsVectorFileWriter.supportedFiltersAndFormats()
6566
OGRCodes = {}

‎python/plugins/sextante/gui/AlgorithmExecutor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def setConsoleInfo(self, info):
8181
while provider.nextFeature(feat):
8282
output = SextanteUtils.getTempFilename("shp")
8383
self.filelist.append(output)
84-
writer = QgsVectorFileWriter(output, systemEncoding,provider.fields(), provider.geometryType(), provider.crs() )
84+
writer = QgsVectorFileWriter(output, systemEncoding,provider.fields(), provider.geometryType(), layer.crs() )
8585
writer.addFeature(feat)
8686
del writer
8787
else:

‎python/plugins/sextante/gui/UnthreadedAlgorithmExecutor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def runalgIterating(alg,paramToIter,progress):
6464
while provider.nextFeature(feat):
6565
output = SextanteUtils.getTempFilename("shp")
6666
filelist.append(output)
67-
writer = QgsVectorFileWriter(output, systemEncoding,provider.fields(), provider.geometryType(), provider.crs() )
67+
writer = QgsVectorFileWriter(output, systemEncoding,provider.fields(), provider.geometryType(), layer.crs() )
6868
writer.addFeature(feat)
6969
del writer
7070

‎python/plugins/sextante/script/scripts/Number_of_unique_values_in_classes.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@
3939

4040
# "input" contains the location of the selected layer.
4141
# We get the actual object, so we can get its bounds
42-
layer = getobject(input)
42+
layer = sextante.getobject(input)
4343
provider = layer.dataProvider()
4444
fields = provider.fields()
4545
fields.append(QgsField("UNIQ_COUNT", QVariant.Int))
46-
writer = SextanteVectorWriter(output, None, fields, provider.geometryType(), provider.crs() )
46+
writer = SextanteVectorWriter(output, None, fields, provider.geometryType(), layer.crs() )
4747

4848
# Fields are defined by their names, but QGIS needs the index for the attributes map
4949
class_field_index = layer.fieldNameIndex(class_field)
@@ -57,8 +57,8 @@
5757

5858
#Iterate over input layer to count unique values in each class
5959

60-
feats = getfeatures(layer)
61-
nFeat = len(feates)
60+
feats = sextante.getfeatures(layer)
61+
nFeat = len(feats)
6262
for inFeat in feats:
6363
progress.setPercentage(int((100 * nElement)/nFeat))
6464
nElement += 1
@@ -71,7 +71,7 @@
7171
classes[clazz].append(value)
7272

7373
# Create output vector layer with additional attribute
74-
feats = getfeatures(layer)
74+
feats = sextante.getfeatures(layer)
7575
nElement = 0
7676
for inFeat in feats:
7777
progress.setPercentage(int((100 * nElement)/nFeat))

‎python/plugins/sextante/script/scripts/Save_selected_features.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
#First we create the output layer.
5555
#To do so, we create a SextanteVectorWriter, that we can later use to add features.
5656
provider = vectorLayer.dataProvider()
57-
writer = SextanteVectorWriter(output, None, provider.fields(), provider.geometryType(), provider.crs() )
57+
writer = SextanteVectorWriter(output, None, provider.fields(), provider.geometryType(), layer.crs() )
5858

5959
#Now we take the selected features and add them to the output layer
6060
selection = vectorLayer.selectedFeatures()

‎python/plugins/sextante/script/scripts/Split_vector_layer_by_attribute.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
# "input" contains the location of the selected layer.
4040
# We get the actual object,
41-
layer = getobject(input)
41+
layer = sextante.getobject(input)
4242
provider = layer.dataProvider()
4343
allAttrs = provider.attributeIndexes()
4444
provider.select( allAttrs )
@@ -54,7 +54,7 @@
5454
nElement = 0
5555
writers = {}
5656

57-
feats = getfeatures(layer)
57+
feats = sextante.getfeatures(layer)
5858
nFeat = len(feats)
5959
for inFeat in feats:
6060
progress.setPercentage(int((100 * nElement)/nFeat))
@@ -63,7 +63,7 @@
6363
clazz = atMap[class_field_index].toString()
6464
if clazz not in writers:
6565
outputFile = output + "_" + str(len(writers)) + ".shp"
66-
writers[clazz] = SextanteVectorWriter(outputFile, None, fields, provider.geometryType(), provider.crs() )
66+
writers[clazz] = SextanteVectorWriter(outputFile, None, fields, provider.geometryType(), layer.crs() )
6767
inGeom = inFeat.geometry()
6868
outFeat.setGeometry(inGeom)
6969
outFeat.setAttributes(atMap)

0 commit comments

Comments
 (0)
Please sign in to comment.