@@ -131,22 +131,22 @@ def processAlgorithm(self, context, feedback):
131
131
132
132
request = QgsFeatureRequest ().setFlags (QgsFeatureRequest .NoGeometry ).setSubsetOfAttributes ([field_name ], layer .fields ())
133
133
features = QgsProcessingUtils .getFeatures (layer , context , request )
134
+ count = QgsProcessingUtils .featureCount (layer , context )
134
135
135
136
data = []
136
137
data .append (self .tr ('Analyzed layer: {}' ).format (layer .name ()))
137
138
data .append (self .tr ('Analyzed field: {}' ).format (field_name ))
138
139
139
140
if field .isNumeric ():
140
- data .extend (self .calcNumericStats (features , feedback , field ))
141
+ data .extend (self .calcNumericStats (features , feedback , field , count ))
141
142
elif field .type () in (QVariant .Date , QVariant .Time , QVariant .DateTime ):
142
- data .extend (self .calcDateTimeStats (features , feedback , field ))
143
+ data .extend (self .calcDateTimeStats (features , feedback , field , count ))
143
144
else :
144
- data .extend (self .calcStringStats (features , feedback , field ))
145
+ data .extend (self .calcStringStats (features , feedback , field , count ))
145
146
146
147
self .createHTML (output_file , data )
147
148
148
- def calcNumericStats (self , features , feedback , field ):
149
- count = QgsProcessingUtils .featureCount (layer , context )
149
+ def calcNumericStats (self , features , feedback , field , count ):
150
150
total = 100.0 / float (count )
151
151
stat = QgsStatisticalSummary ()
152
152
for current , ft in enumerate (features ):
@@ -193,8 +193,7 @@ def calcNumericStats(self, features, feedback, field):
193
193
data .append (self .tr ('Interquartile Range (IQR): {}' ).format (stat .interQuartileRange ()))
194
194
return data
195
195
196
- def calcStringStats (self , features , feedback , field ):
197
- count = QgsProcessingUtils .featureCount (layer , context )
196
+ def calcStringStats (self , features , feedback , field , count ):
198
197
total = 100.0 / float (count )
199
198
stat = QgsStringStatisticalSummary ()
200
199
for current , ft in enumerate (features ):
@@ -224,8 +223,7 @@ def calcStringStats(self, features, feedback, field):
224
223
225
224
return data
226
225
227
- def calcDateTimeStats (self , features , feedback , field ):
228
- count = QgsProcessingUtils .featureCount (layer , context )
226
+ def calcDateTimeStats (self , features , feedback , field , count ):
229
227
total = 100.0 / float (count )
230
228
stat = QgsDateTimeStatisticalSummary ()
231
229
for current , ft in enumerate (features ):
0 commit comments