fix basic statistics calculation ( mean no longer always 0.00! )

git-svn-id: http://svn.osgeo.org/qgis/trunk@10848 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
cfarmer 2009-05-25 21:05:34 +00:00
parent cfd97adee1
commit d37aae28a6

View File

@ -174,11 +174,11 @@ class visualThread( QThread ):
fields = vprovider.fields() fields = vprovider.fields()
index = vprovider.fieldNameIndex( myField ) index = vprovider.fieldNameIndex( myField )
feat = QgsFeature() feat = QgsFeature()
sumVal = 0 sumVal = 0.0
meanVal = 0 meanVal = 0.0
stdVal = 0 stdVal = 0.0
cvVal = 0 cvVal = 0.0
nVal = 0 nVal = 0.0
values = [] values = []
first = True first = True
nFeat = vprovider.featureCount() nFeat = vprovider.featureCount()
@ -196,20 +196,17 @@ class visualThread( QThread ):
if value < minVal: minVal = value if value < minVal: minVal = value
if value > maxVal: maxVal = value if value > maxVal: maxVal = value
values.append( value ) values.append( value )
sumVal = sumVal + value sumVal = float( sumVal + value )
nElement += 1 nElement += 1
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement ) self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
nVal= float( len( values ) ) nVal= float( len( values ) )
print "to here" if nVal > 0.00:
if not nVal > 0.00:
print "then here"
meanVal = float( sumVal ) / nVal meanVal = float( sumVal ) / nVal
if not meanVal == 0.00: if not meanVal == 0.00:
for val in values: for val in values:
stdVal += ( ( val - meanVal ) * ( val - meanVal ) ) stdVal += float( ( val - meanVal ) * ( val - meanVal ) )
print "finally here" stdVal = float( math.sqrt( stdVal / nVal ) )
stdVal = math.sqrt( stdVal / nVal ) cvVal = float( stdVal / meanVal )
cvVal = stdVal / meanVal
lstStats = [] lstStats = []
lstStats.append( "Mean : " + unicode( meanVal ) ) lstStats.append( "Mean : " + unicode( meanVal ) )
lstStats.append( "StdDev : " + unicode( stdVal ) ) lstStats.append( "StdDev : " + unicode( stdVal ) )