Skip to content

Commit 236c239

Browse files
committed
[processing] adapted algorithm to function refactoring
Also set threaded execution to false by default, since it was behaving strangely
1 parent ff5e1ee commit 236c239

11 files changed

+116
-178
lines changed

python/plugins/processing/admintools/ImportIntoPostGIS.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* *
1717
***************************************************************************
1818
"""
19+
from processing.tools import dataobjects
1920

2021
__author__ = 'Victor Olaya'
2122
__date__ = 'October 2012'
@@ -24,7 +25,6 @@
2425
__revision__ = '$Format:%H$'
2526

2627
import os
27-
from processing.core.QGisLayers import QGisLayers
2828
from processing.parameters.ParameterBoolean import ParameterBoolean
2929
from processing.parameters.ParameterVector import ParameterVector
3030
from processing.core.GeoAlgorithm import GeoAlgorithm
@@ -81,7 +81,7 @@ def processAlgorithm(self, progress):
8181
options['overwrite'] = True
8282

8383
layerUri = self.getParameterValue(self.INPUT);
84-
layer = QGisLayers.getObjectFromUri(layerUri)
84+
layer = dataobjects.getObjectFromUri(layerUri)
8585
ret, errMsg = QgsVectorLayerImport.importLayer(layer, uri.uri(), providerName, self.crs, False, False, options)
8686
if ret != 0:
8787
raise GeoAlgorithmExecutionException(u"Error importing to PostGIS\n%s" % errMsg)

python/plugins/processing/algs/PointsDisplacement.py

+3-7
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,10 @@
2424
__revision__ = '$Format:%H$'
2525

2626
import math
27-
2827
from PyQt4.QtCore import *
29-
3028
from qgis.core import *
31-
29+
from processing.tools import dataobjects, vector
3230
from processing.core.GeoAlgorithm import GeoAlgorithm
33-
from processing.core.QGisLayers import QGisLayers
34-
3531
from processing.parameters.ParameterVector import ParameterVector
3632
from processing.parameters.ParameterNumber import ParameterNumber
3733
from processing.parameters.ParameterBoolean import ParameterBoolean
@@ -58,12 +54,12 @@ def processAlgorithm(self, progress):
5854
horizontal = self.getParameterValue(self.HORIZONTAL)
5955
output = self.getOutputFromName(self.OUTPUT_LAYER)
6056

61-
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_LAYER))
57+
layer = dataobjects.getObjectFromUri(self.getParameterValue(self.INPUT_LAYER))
6258

6359
provider = layer.dataProvider()
6460
writer = output.getVectorWriter(provider.fields(), provider.geometryType(), provider.crs())
6561

66-
features = QGisLayers.features(layer)
62+
features = vector.features(layer)
6763

6864
current = 0
6965
total = 100.0 / len(features)

python/plugins/processing/algs/PointsFromLines.py

+9-17
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,14 @@
2424
__revision__ = '$Format:%H$'
2525

2626
from PyQt4.QtCore import *
27-
2827
from osgeo import gdal
29-
3028
from qgis.core import *
31-
29+
from processing.tools import vector, raster, dataobjects
3230
from processing.core.GeoAlgorithm import GeoAlgorithm
33-
from processing.core.QGisLayers import QGisLayers
34-
3531
from processing.parameters.ParameterRaster import ParameterRaster
3632
from processing.parameters.ParameterVector import ParameterVector
37-
3833
from processing.outputs.OutputVector import OutputVector
3934

40-
from processing.algs import QGISUtils as utils
41-
4235
class PointsFromLines(GeoAlgorithm):
4336

4437
INPUT_RASTER = "INPUT_RASTER"
@@ -47,15 +40,15 @@ class PointsFromLines(GeoAlgorithm):
4740
OUTPUT_LAYER = "OUTPUT_LAYER"
4841

4942
def defineCharacteristics(self):
50-
self.name = "Points from lines"
43+
self.name = "Get raster values at layer point"
5144
self.group = "Vector geometry tools"
5245

5346
self.addParameter(ParameterRaster(self.INPUT_RASTER, "Raster layer"))
5447
self.addParameter(ParameterVector(self.INPUT_VECTOR, "Vector layer", [ParameterVector.VECTOR_TYPE_LINE]))
5548
self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
5649

5750
def processAlgorithm(self, progress):
58-
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_VECTOR))
51+
layer = dataobjects.getObjectFromUri(self.getParameterValue(self.INPUT_VECTOR))
5952

6053
rasterPath = unicode(self.getParameterValue(self.INPUT_RASTER))
6154

@@ -78,7 +71,7 @@ def processAlgorithm(self, progress):
7871
self.pointId = 0
7972

8073
current = 0
81-
features = QGisLayers.features(layer)
74+
features = vector.features(layer)
8275
total = 100.0 / len(features)
8376
for f in features:
8477
geom = f.geometry()
@@ -89,8 +82,8 @@ def processAlgorithm(self, progress):
8982
p1 = line[i]
9083
p2 = line[i + 1]
9184

92-
x1, y1 = utils.mapToPixel(p1.x(), p1.y(), geoTransform)
93-
x2, y2 = utils.mapToPixel(p2.x(), p2.y(), geoTransform)
85+
x1, y1 = raster.mapToPixel(p1.x(), p1.y(), geoTransform)
86+
x2, y2 = raster.mapToPixel(p2.x(), p2.y(), geoTransform)
9487

9588
self.buildLine(x1, y1, x2, y2, geoTransform, writer, outFeature)
9689
else:
@@ -99,8 +92,8 @@ def processAlgorithm(self, progress):
9992
p1 = points[i]
10093
p2 = points[i + 1]
10194

102-
x1, y1 = utils.mapToPixel(p1.x(), p1.y(), geoTransform)
103-
x2, y2 = utils.mapToPixel(p2.x(), p2.y(), geoTransform)
95+
x1, y1 = raster.mapToPixel(p1.x(), p1.y(), geoTransform)
96+
x2, y2 = raster.mapToPixel(p2.x(), p2.y(), geoTransform)
10497

10598
self.buildLine(x1, y1, x2, y2, geoTransform, writer, outFeature)
10699

@@ -114,7 +107,6 @@ def processAlgorithm(self, progress):
114107

115108
def buildLine(self, startX, startY, endX, endY, geoTransform, writer, feature):
116109
point = QgsPoint()
117-
118110
if startX == endX:
119111
if startY > endY:
120112
startY, endY = endY, startY
@@ -168,7 +160,7 @@ def buildLine(self, startX, startY, endX, endY, geoTransform, writer, feature):
168160
startY += dy2
169161

170162
def createPoint(self, pX, pY, geoTransform, writer, feature):
171-
x, y = utils.pixelToMap(pX, pY, geoTransform)
163+
x, y = raster.pixelToMap(pX, pY, geoTransform)
172164

173165
feature.setGeometry(QgsGeometry.fromPoint(QgsPoint(x, y)))
174166
feature["id"] = self.fid

python/plugins/processing/algs/PointsFromPolygons.py

+8-14
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,15 @@
2323
# This will get replaced with a git SHA1 when you do a git archive
2424
__revision__ = '$Format:%H$'
2525

26-
from PyQt4.QtCore import *
27-
2826
from osgeo import gdal
29-
3027
from qgis.core import *
31-
28+
from PyQt4.QtCore import *
3229
from processing.core.GeoAlgorithm import GeoAlgorithm
33-
from processing.core.QGisLayers import QGisLayers
34-
3530
from processing.parameters.ParameterRaster import ParameterRaster
3631
from processing.parameters.ParameterVector import ParameterVector
37-
3832
from processing.outputs.OutputVector import OutputVector
39-
40-
from processing.algs import QGISUtils as utils
33+
from processing.tools import dataobjects, vector
34+
from processing.tools.general import *
4135

4236
class PointsFromPolygons(GeoAlgorithm):
4337

@@ -55,7 +49,7 @@ def defineCharacteristics(self):
5549
self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
5650

5751
def processAlgorithm(self, progress):
58-
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_VECTOR))
52+
layer = dataobjects.getObjectFromUri(self.getParameterValue(self.INPUT_VECTOR))
5953

6054
rasterPath = unicode(self.getParameterValue(self.INPUT_RASTER))
6155

@@ -79,7 +73,7 @@ def processAlgorithm(self, progress):
7973
pointId = 0
8074

8175
current = 0
82-
features = QGisLayers.features(layer)
76+
features = vector.features(layer)
8377
total = 100.0 / len(features)
8478
for f in features:
8579
geom = f.geometry()
@@ -90,12 +84,12 @@ def processAlgorithm(self, progress):
9084
yMin = bbox.yMinimum()
9185
yMax = bbox.yMaximum()
9286

93-
startRow, startColumn = utils.mapToPixel(xMin, yMax, geoTransform)
94-
endRow, endColumn = utils.mapToPixel(xMax, yMin, geoTransform)
87+
startRow, startColumn = mapToPixel(xMin, yMax, geoTransform)
88+
endRow, endColumn = mapToPixel(xMax, yMin, geoTransform)
9589

9690
for row in xrange(startRow, endRow + 1):
9791
for col in xrange(startColumn, endColumn + 1):
98-
x, y = utils.pixelToMap(row, col, geoTransform)
92+
x, y = pixelToMap(row, col, geoTransform)
9993
point.setX(x)
10094
point.setY(y)
10195

python/plugins/processing/algs/QGISUtils.py

-98
This file was deleted.

python/plugins/processing/algs/ZonalStatistics.py

+17-24
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,19 @@
2424
__revision__ = '$Format:%H$'
2525

2626
from PyQt4.QtCore import *
27-
2827
import numpy
2928
from osgeo import gdal, ogr, osr
30-
3129
from qgis.core import *
32-
30+
from processing.tools.raster import mapToPixel
31+
from processing.tools import dataobjects, vector
3332
from processing.core.GeoAlgorithm import GeoAlgorithm
34-
from processing.core.QGisLayers import QGisLayers
35-
3633
from processing.parameters.ParameterVector import ParameterVector
3734
from processing.parameters.ParameterRaster import ParameterRaster
3835
from processing.parameters.ParameterString import ParameterString
3936
from processing.parameters.ParameterNumber import ParameterNumber
4037
from processing.parameters.ParameterBoolean import ParameterBoolean
41-
4238
from processing.outputs.OutputVector import OutputVector
4339

44-
from processing.algs.ftools import FToolsUtils as ftools_utils
45-
from processing.algs import QGISUtils as utils
46-
4740
class ZonalStatistics(GeoAlgorithm):
4841

4942
INPUT_RASTER = "INPUT_RASTER"
@@ -65,7 +58,7 @@ def defineCharacteristics(self):
6558
self.addOutput(OutputVector(self.OUTPUT_LAYER, "Output layer"))
6659

6760
def processAlgorithm(self, progress):
68-
layer = QGisLayers.getObjectFromUri(self.getParameterValue(self.INPUT_VECTOR))
61+
layer = dataobjects.getObjectFromUri(self.getParameterValue(self.INPUT_VECTOR))
6962

7063
rasterPath = unicode(self.getParameterValue(self.INPUT_RASTER))
7164
bandNumber = self.getParameterValue(self.RASTER_BAND)
@@ -99,8 +92,8 @@ def processAlgorithm(self, progress):
9992
yMin = rasterBBox.yMinimum()
10093
yMax = rasterBBox.yMaximum()
10194

102-
startColumn, startRow = utils.mapToPixel(xMin, yMax, geoTransform)
103-
endColumn, endRow = utils.mapToPixel(xMax, yMin, geoTransform)
95+
startColumn, startRow = mapToPixel(xMin, yMax, geoTransform)
96+
endColumn, endRow = mapToPixel(xMax, yMin, geoTransform)
10497

10598
width = endColumn - startColumn
10699
height = endRow - startRow
@@ -120,15 +113,15 @@ def processAlgorithm(self, progress):
120113
memRasterDriver = gdal.GetDriverByName("MEM")
121114

122115
fields = layer.pendingFields()
123-
idxMin, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "min", 21, 6)
124-
idxMax, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "max", 21, 6)
125-
idxSum, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "sum", 21, 6)
126-
idxCount, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "count", 21, 6)
127-
idxMean, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "mean", 21, 6)
128-
idxStd, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "std", 21, 6)
129-
idxUnique, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "unique", 21, 6)
130-
idxRange, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "range", 21, 6)
131-
idxCV, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "cv", 21, 6)
116+
idxMin, fields = vector.findOrCreateField(layer, fields, columnPrefix + "min", 21, 6)
117+
idxMax, fields = vector.findOrCreateField(layer, fields, columnPrefix + "max", 21, 6)
118+
idxSum, fields = vector.findOrCreateField(layer, fields, columnPrefix + "sum", 21, 6)
119+
idxCount, fields = vector.findOrCreateField(layer, fields, columnPrefix + "count", 21, 6)
120+
idxMean, fields = vector.findOrCreateField(layer, fields, columnPrefix + "mean", 21, 6)
121+
idxStd, fields = vector.findOrCreateField(layer, fields, columnPrefix + "std", 21, 6)
122+
idxUnique, fields = vector.findOrCreateField(layer, fields, columnPrefix + "unique", 21, 6)
123+
idxRange, fields = vector.findOrCreateField(layer, fields, columnPrefix + "range", 21, 6)
124+
idxCV, fields = vector.findOrCreateField(layer, fields, columnPrefix + "cv", 21, 6)
132125
#idxMedian, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "median", 21, 6)
133126

134127
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(fields.toList(),
@@ -140,7 +133,7 @@ def processAlgorithm(self, progress):
140133
outFeat.setFields(fields)
141134

142135
current = 0
143-
features = QGisLayers.features(layer)
136+
features = vector.features(layer)
144137
total = 100.0 / len(features)
145138
for f in features:
146139
geom = f.geometry()
@@ -156,8 +149,8 @@ def processAlgorithm(self, progress):
156149
yMin = bbox.yMinimum()
157150
yMax = bbox.yMaximum()
158151

159-
startColumn, startRow = utils.mapToPixel(xMin, yMax, geoTransform)
160-
endColumn, endRow = utils.mapToPixel(xMax, yMin, geoTransform)
152+
startColumn, startRow = mapToPixel(xMin, yMax, geoTransform)
153+
endColumn, endRow = mapToPixel(xMax, yMin, geoTransform)
161154

162155
width = endColumn - startColumn
163156
height = endRow - startRow

0 commit comments

Comments
 (0)