From aa039cb83c1f588b747da3d142651ea9fdbf926f Mon Sep 17 00:00:00 2001 From: cfarmer Date: Mon, 25 May 2009 21:05:34 +0000 Subject: [PATCH] fix basic statistics calculation ( mean no longer always 0.00! ) git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@10848 c8812cc2-4d05-0410-92ff-de0c093fc19c --- python/plugins/fTools/tools/doVisual.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/python/plugins/fTools/tools/doVisual.py b/python/plugins/fTools/tools/doVisual.py index e8e21008e4d6..7fb6957bd28d 100755 --- a/python/plugins/fTools/tools/doVisual.py +++ b/python/plugins/fTools/tools/doVisual.py @@ -174,11 +174,11 @@ def basic_statistics( self, vlayer, myField ): fields = vprovider.fields() index = vprovider.fieldNameIndex( myField ) feat = QgsFeature() - sumVal = 0 - meanVal = 0 - stdVal = 0 - cvVal = 0 - nVal = 0 + sumVal = 0.0 + meanVal = 0.0 + stdVal = 0.0 + cvVal = 0.0 + nVal = 0.0 values = [] first = True nFeat = vprovider.featureCount() @@ -196,20 +196,17 @@ def basic_statistics( self, vlayer, myField ): if value < minVal: minVal = value if value > maxVal: maxVal = value values.append( value ) - sumVal = sumVal + value + sumVal = float( sumVal + value ) nElement += 1 self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement ) nVal= float( len( values ) ) - print "to here" - if not nVal > 0.00: - print "then here" + if nVal > 0.00: meanVal = float( sumVal ) / nVal if not meanVal == 0.00: for val in values: - stdVal += ( ( val - meanVal ) * ( val - meanVal ) ) - print "finally here" - stdVal = math.sqrt( stdVal / nVal ) - cvVal = stdVal / meanVal + stdVal += float( ( val - meanVal ) * ( val - meanVal ) ) + stdVal = float( math.sqrt( stdVal / nVal ) ) + cvVal = float( stdVal / meanVal ) lstStats = [] lstStats.append( "Mean : " + unicode( meanVal ) ) lstStats.append( "StdDev : " + unicode( stdVal ) )