Een simpele formule hiervoor bestaat niet. Door middel van een kort computerprogramma kun je de uitkomst iteratief benaderen, d.w.z. in een loopje ga je steeds door totdat er een verwaarloosbaar verschil optreedt.
In de programmertaal C heb ik de volgende functie, die Tw berekent uit temperatuur (T), dauwpunt (Td) en luchtdruk (P):
double CalcWetBulb(double T, double Td, double P)
{
// input: temp and dew in C, pres in hPa
double tmin, tmax, e, tcur, vpcur, peq, diff;
tcur = 0.0;
tmin = __min(T, Td);
tmax = __max(T, Td);
e = 6.112 * pow(10.0, ((7.5 * Td) / (237.7 + Td)));
while (1)
{
tcur = (tmax + tmin) / 2.0;
vpcur = 6.112 * pow(10.0, ((7.5 * tcur) / (237.7 + tcur)));
peq = 0.000660 * (1 + 0.00155 * tcur) * P * (T - tcur);
diff = peq - vpcur + e;
if (fabs(diff) < 0.01)
break;
if (diff < 0.0)
tmax = tcur;
else
tmin = tcur;
}
return tcur;
}
En om het dauwpunt te berekenen uit temperatuur en rel. vochtigheid:
double calcdew(double temp, double rh) // T en Td in °C
{
// verify that the input data is valid before continuing
if (rh<1.0f || rh>100.0f || temp<-100.0f || temp>200.0f)
return INVALIDF; // signal error
double ews, num, den;
double dp;
ews= rh*0.01*exp((17.502*temp)/(240.9+temp));
// ews is proportional to the vapor pressure
num= 240.9*(log(ews)); // "log" is really "ln" (i.e. log base e)
den= 17.5-(log(ews));
dp= num/den;
return dp;
}
Quote selectie