-
Notifications
You must be signed in to change notification settings - Fork 6
/
weathermath.py
59 lines (42 loc) · 1.14 KB
/
weathermath.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/local/bin/python
# coding: utf-8
'''
Source
http://www.wetterochs.de/wetter/feuchte.html
Bezeichnungen:
r = relative Luftfeuchte
T = Temperatur in C
TK = Temperatur in Kelvin (TK = T + 273.15)
TD = Taupunkttemperatur in °C
DD = Dampfdruck in hPa
SDD = Sättigungsdampfdruck in hPa
Parameter:
a = 7.5, b = 237.3 für T >= 0
a = 7.6, b = 240.7 für T < 0 über Wasser (Taupunkt)
a = 9.5, b = 265.5 für T < 0 über Eis (Frostpunkt)
R* = 8314.3 J/(kmol*K) (universelle Gaskonstante)
mw = 18.016 kg/kmol (Molekulargewicht des Wasserdampfes)
AF = absolute Feuchte in g Wasserdampf pro m3 Luft
Formeln:
SDD(T) = 6.1078 * 10^((a*T)/(b+T))
DD(r,T) = r/100 * SDD(T)
r(T,TD) = 100 * SDD(TD) / SDD(T)
TD(r,T) = b*v/(a-v) mit v(r,T) = log10(DD(r,T)/6.1078)
AF(r,TK) = 10^5 * mw/R* * DD(r,T)/TK; AF(TD,TK) = 10^5 * mw/R* * SDD(TD)/TK
'''
import math
R = 8314.3
mw = 18.016
def SDD(T):
if (T >= 0.0):
a = 7.5
b = 237.3
else:
a = 7.6
b = 240.7
return 6.1078 * math.pow( 10, ( (a*T)/(b+T) ) )
def DD(r, T):
return (r/100.0) * SDD(T)
def AF(r, T):
TK = T + 273.15
return 100000 * mw/R * DD(r, T)/TK