Salome HOME
Small fix
[modules/smesh.git] / src / Tools / Verima / Stats / mean.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 import os
5 import numpy, scipy
6 import scipy.stats
7
8
9 def getMean(fichierStatMaillage):
10   """
11   """
12   try :
13      monTableau=numpy.loadtxt(fichierStatMaillage)
14   except :
15      print "impossible de charger le fichier : ", fichierStatMaillage
16
17   mesIntervalles=monTableau[ :, 0:2 ]
18   mesPoids=monTableau[ : ,2]
19   moyIntervalles=numpy.average(mesIntervalles, axis=1)
20   moyenne=numpy.average(moyIntervalles,weights=mesPoids)
21   freqCum=numpy.cumsum(mesPoids)
22   nbVal=freqCum[-1 ]
23   mesFrequences=mesPoids/nbVal
24   mesValeurs=scipy.stats.rv_discrete(values=(moyIntervalles,mesFrequences))
25   Q1=mesValeurs.ppf(0.25)
26   M=mesValeurs.median()
27   Q3=mesValeurs.ppf(0.75)
28
29   i=mesPoids.shape[0]  -1
30   while i > 0:
31     if mesPoids[i] > 0: 
32        max=mesIntervalles[i][1]
33        break
34     i=i-1
35   i=0
36   while i < mesPoids.shape[0]  -1:
37     if mesPoids[i] > 0: 
38        min=mesIntervalles[i][0]
39        break
40     i=i+1
41   i=0
42   
43   return [max,min,Q1,M,Q3,moyenne]
44
45
46 if __name__ == "__main__":
47       from optparse import OptionParser
48       p=OptionParser()
49       p.add_option('-f',dest='fichier',default='tetra.taille',help='fichier a traiter')
50       #p.add_option('-f',dest='fichier',default='Mesh_1_aspect_ratio_3d.txt',help='fichier a traiter')
51       options, args = p.parse_args()
52
53       getMean(options.fichier)
54