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