bffda776a6a485a306123f8c8284d2972aea99fd
[owSlave2.git] / stest / separate1.py
1 import sys
2 import os
3 import os.path
4 import subprocess
5 import io
6 import time
7 import math
8 import shutil
9 import datetime
10
11
12 #Parameter:
13 #a = 7.5, b = 237.3 fuer T >= 0
14 #a = 7.6, b = 240.7 fuer T < 0 ueber Wasser (Taupunkt)
15 #a = 9.5, b = 265.5 fuer T < 0 ueber Eis (Frostpunkt)
16 a=7.5
17 b=237.3
18 Rs = 8314.3 #J/(kmol*K) (universelle Gaskonstante)
19 mw = 18.016 #kg/kmol (Molekulargewicht des Wasserdampfes)
20
21 def SDD(T):
22         return 6.1078 * 10**((a*T)/(b+T))
23         
24 def AF1(r,T):
25         return r/100.0*SDD(T)/(T+273.15)*mw/Rs*10000
26
27 def RF1(a,T):
28         return a*100/(SDD(T)/(T+273.15)*mw/Rs*10000)    
29 #print(0.5*SDD(20)/(20+273.15)*mw/Rs*10000)
30
31 def rdiff(r1,t1,t2):
32         return (r1)-RF1(AF1(r1,t1),t2)
33
34
35 def calcDerivation(Name,Valuetype,Value,T):
36         return [0.5,0.5]
37
38
39 devdict={}
40 devwholist=[]
41 f=open("DEVLIST.txt","r")
42 for l in f.readlines():
43         ls=l.split(" ")
44         if (len(ls)>1):
45                 devdict[ls[0]]=l.replace("\n","").split(",")[0].split(" ")[1]
46                 devwholist.append(ls[0])
47 f.close()
48
49 sel_list=["Temperatur","Luftfeuchte","Beleuchtungsstaerke","R0","VOC","RS","Corr"]
50 data=[]
51 for s in sel_list:
52         data.append(["Time"])
53
54 for ds in devwholist:   #fuer Jedes Geraet in DEVLIST.txt
55         fname="log_%s.ow1" %(ds)  #Sind Daten da?
56         if os.path.exists(fname):
57                 f=open(fname,"r")  #Lesen
58                 lines=f.readlines()
59                 ti=lines[0][:-1].split("\t")  #Ueberschriften aufteilen
60                 i=0
61                 if ("Temperatur" in ti):
62                         tempindex=ti.index("Temperatur")
63                 for t in ti:   #fuer jedes Element in der Ueberschrift
64                         if t in sel_list:  #schauen ob es Uebernommen werden soll
65                                 p=sel_list.index(t)  #schaue nach Nummer in der Datenbank
66                                 data[p][0]=data[p][0]+","+ds+" "+devdict[ds] #hinzufuegen der Ueberschrift in der Tabelle
67                                 if len(data[p])==1: #erstes Element, Time einfuegen und neue zeile anlegen
68                                         for l in lines[1:]:
69                                                 l=l[:-1]
70                                                 ll=l.split("\t")
71                                                 la=ll[0].split(" ")
72                                                 lb=la[0].split(".")
73                                                 ts=lb[2]+"/"+lb[1]+"/"+lb[0]+" "+la[1]
74                                                 data[p].append(ts)
75                                 j=1;
76                                 for l in lines[1:]:
77                                         #print(ll)
78                                         l=l[:-1] #\n wegmachen
79                                         ll=l.split("\t") #telen
80                                         fl=float(ll[i].replace(",","."))
81                                         if "VOC" in devdict[ds] or "Lum" in devdict[ds]:
82                                                 if (t=="Temperatur"):
83                                                         ltemp=fl
84                                                         fl=fl-1
85                                                 if (t=="Luftfeuchte"):
86                                                         ltemp=float(ll[tempindex].replace(",","."))
87                                                         fl=fl-rdiff(fl,ltemp,ltemp-1)
88                                         data[p][j]=data[p][j]+",%0.2f" % (fl)
89                                         j=j+1
90                         i=i+1
91                 f.close()               
92                          
93         
94 #print data
95
96 for i in range(len(sel_list)):
97         f=open("/var/www/html/"+sel_list[i]+".csv","w")
98         for l in data[i]:
99                 f.write(l+"\n")
100         f.close()
101
102         
103