24
24
__revision__ = '$Format:%H$'
25
25
26
26
from PyQt4 .QtCore import *
27
-
28
27
import numpy
29
28
from osgeo import gdal , ogr , osr
30
-
31
29
from qgis .core import *
32
-
30
+ from processing .tools .raster import mapToPixel
31
+ from processing .tools import dataobjects , vector
33
32
from processing .core .GeoAlgorithm import GeoAlgorithm
34
- from processing .core .QGisLayers import QGisLayers
35
-
36
33
from processing .parameters .ParameterVector import ParameterVector
37
34
from processing .parameters .ParameterRaster import ParameterRaster
38
35
from processing .parameters .ParameterString import ParameterString
39
36
from processing .parameters .ParameterNumber import ParameterNumber
40
37
from processing .parameters .ParameterBoolean import ParameterBoolean
41
-
42
38
from processing .outputs .OutputVector import OutputVector
43
39
44
- from processing .algs .ftools import FToolsUtils as ftools_utils
45
- from processing .algs import QGISUtils as utils
46
-
47
40
class ZonalStatistics (GeoAlgorithm ):
48
41
49
42
INPUT_RASTER = "INPUT_RASTER"
@@ -65,7 +58,7 @@ def defineCharacteristics(self):
65
58
self .addOutput (OutputVector (self .OUTPUT_LAYER , "Output layer" ))
66
59
67
60
def processAlgorithm (self , progress ):
68
- layer = QGisLayers .getObjectFromUri (self .getParameterValue (self .INPUT_VECTOR ))
61
+ layer = dataobjects .getObjectFromUri (self .getParameterValue (self .INPUT_VECTOR ))
69
62
70
63
rasterPath = unicode (self .getParameterValue (self .INPUT_RASTER ))
71
64
bandNumber = self .getParameterValue (self .RASTER_BAND )
@@ -99,8 +92,8 @@ def processAlgorithm(self, progress):
99
92
yMin = rasterBBox .yMinimum ()
100
93
yMax = rasterBBox .yMaximum ()
101
94
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 )
104
97
105
98
width = endColumn - startColumn
106
99
height = endRow - startRow
@@ -120,15 +113,15 @@ def processAlgorithm(self, progress):
120
113
memRasterDriver = gdal .GetDriverByName ("MEM" )
121
114
122
115
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 )
132
125
#idxMedian, fields = ftools_utils.findOrCreateField(layer, fields, columnPrefix + "median", 21, 6)
133
126
134
127
writer = self .getOutputFromName (self .OUTPUT_LAYER ).getVectorWriter (fields .toList (),
@@ -140,7 +133,7 @@ def processAlgorithm(self, progress):
140
133
outFeat .setFields (fields )
141
134
142
135
current = 0
143
- features = QGisLayers .features (layer )
136
+ features = vector .features (layer )
144
137
total = 100.0 / len (features )
145
138
for f in features :
146
139
geom = f .geometry ()
@@ -156,8 +149,8 @@ def processAlgorithm(self, progress):
156
149
yMin = bbox .yMinimum ()
157
150
yMax = bbox .yMaximum ()
158
151
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 )
161
154
162
155
width = endColumn - startColumn
163
156
height = endRow - startRow
0 commit comments