Wind Chill or RealFeel?

163 views
Skip to first unread message

goo...@wittongilbert.free-online.co.uk

unread,
Jan 14, 2010, 5:46:27 PM1/14/10
to py...@googlegroups.com
Wondering how easy it would be to record WindChill Temperatures on the graph.

BBC Weather say they now use this equation:

Old windchill formula

where T is the air temperature °C
V is the wind speed in Kilometres per hour
Vr assumed average walking speed.  (4.8km/hr)

( http://www.bbc.co.uk/weather/features/az/alphabet69.shtml )

Several variants of the equation appear here:  http://en.wikipedia.org/wiki/Wind_chill

Is someone can point me to where to begin I can have a go... do I do this in the xml files?  or the Graph.py or one of the LogData files or some combination?

Alternatively is there a better temperature to plot like Accuweather's RealFeel(TM) - the patent described its calcualtion (ugh!) - but as its patented it can't be used anyway!

http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=7,251,579.PN.&OS=PN/7,251,579&RS=PN/7,251,579

 

Jim Easterbrook

unread,
Jan 15, 2010, 11:43:49 AM1/15/10
to py...@googlegroups.com
goo...@wittongilbert.free-online.co.uk wrote:
> Wondering how easy it would be to record WindChill Temperatures on the
> graph.
>
> BBC Weather say they now use this equation:
>
> Old windchill formula
>
>
> where T is the air temperature �C
> V is the wind speed in Kilometres per hour
> Vr assumed average walking speed. (4.8km/hr)
>
> ( http://www.bbc.co.uk/weather/features/az/alphabet69.shtml )
>
> Is someone can point me to where to begin I can have a go... do I do
> this in the xml files? or the Graph.py or one of the LogData files or
> some combination?

The xml templates are the place for this. Use your chosen wind chill
expression in a <ycalc>, substituting "data['temp_out']" for "T" and
"(data['wind_ave'] * 3.6)" for "V".

If you (and anyone else interested) decide on a widely acceptable
formula, I could add it to the "pre-compiled" ones such as dew_point().
--
Jim Easterbrook <http://www.jim-easterbrook.me.uk/>

Artur

unread,
Jan 16, 2010, 3:39:44 AM1/16/10
to pywws
I have this in my weatherstation.py

def wind_chill(temp, wind):
"""Compute wind chill, using formula from
http://en.wikipedia.org/wiki/wind_chill."""
v = math.pow(float(wind), 0.16)
t = float(temp) * 0.6215
a = (13.12 + float(t))
b = (11.37 * float(v))
c = ((0.3965 * float(temp)) * float(v))
vc = ((a - b) + c)
if wind<1.5:
tvc = temp
elif temp>10:
tvc = temp
else:
tvc = vc
if tvc>temp:
tvc=temp
return tvc


But display at graph is not so easy because wind chill is related to
the wind and you must somehow approx points to get line (like bezier
in gnuplot). I have played with this but haven't get good effects.
Sometimes line of wind chill was above real temp because of approx,
esspecially when there is no wind.
Maybe anyone has better idea?

goo...@wittongilbert.free-online.co.uk

unread,
Jan 16, 2010, 4:55:04 AM1/16/10
to py...@googlegroups.com
Artur wrote:
> I have this in my weatherstation.py
>
> <snip>
>

>
> But display at graph is not so easy because wind chill is related to
> the wind and you must somehow approx points to get line (like bezier
> in gnuplot). I have played with this but haven't get good effects.
> Sometimes line of wind chill was above real temp because of approx,
> esspecially when there is no wind.
> Maybe anyone has better idea?
>
>

Not sure what you are passing to the function but wind_ave looks like
its m/s normally, so needs converted to KPH.

I've modified your formula to:

def wind_chill(temp, wind):
"""Compute wind chill, using formula from
http://en.wikipedia.org/wiki/wind_chill."""

wind_kph = float ( wind * 3600 ) / 1000
v = math.pow(float(wind_kph), 0.16)


t = float(temp) * 0.6215
a = (13.12 + float(t))
b = (11.37 * float(v))
c = ((0.3965 * float(temp)) * float(v))
vc = ((a - b) + c)

if wind_kph<=4.8:


tvc = temp
elif temp>10:
tvc = temp
else:
tvc = vc
if tvc>temp:
tvc=temp
return tvc

For anyone else trying to reproduce this that is in WeatherStation.py

Then in Plot.py add a line near the top with:
from WeatherStation import wind_chill

Then to 24hr.png.xml plot add:
<subplot>
<colour>5</colour>
<ycalc>wind_chill(data['temp_out'], data['wind_ave'])</ycalc>
<title>Wind Chill</title>
</subplot>

at the moment that gives me a potentially plausible numbers but I'll
watch for a few days and see.

I notice the Australians have an equation for wind, temp and humidity
which seems more like RealFeel's principle. I may give that a play at
some point... http://www.bom.gov.au/info/thermal_stress/

Artur

unread,
Jan 16, 2010, 6:08:01 AM1/16/10
to pywws

Gina

unread,
Mar 10, 2010, 7:57:37 AM3/10/10
to py...@googlegroups.com
Thank you for the info.

Having produced a Gauges page for my weather station web site with Air
Temperature and Dew Point, I came to the conclusion the Dew Point wasn't
really very useful to most people and that "Real Feel" or "Feels Like"
would be better - taking temperature, humidity and wind speed into
account.

So following on from this discussion, I have taken the Australian
calculation of Apparent Temperature and added it to my software.

So in WeatherStation.py I have added :-
<code>
def apparent_temp(temp, rh, wind):
"""Compute apparent temperature (real feel), using formula from
http://www.bom.gov.au/info/thermal_stress/"""
vap_press = rh / 100 * 6.105 * math.exp(17.27 * temp / (237.7 +
temp))
AT = temp + 0.33 * vap_press - 0.70 * wind - 4.00
return AT
</code>

This can also be used to produce an extra graph in the same way as Wind
Chill was used in the earlier post (quoted below).

I hope others may find this useful.

Regards
Gina
Weather website :- http://ginad.org.uk/weather/

On Sat, 2010-01-16 at 09:55 +0000,

Jim Easterbrook

unread,
Mar 10, 2010, 12:22:15 PM3/10/10
to py...@googlegroups.com
Gina wrote:
>
> So following on from this discussion, I have taken the Australian
> calculation of Apparent Temperature and added it to my software.
>
> So in WeatherStation.py I have added :-
> <code>
> def apparent_temp(temp, rh, wind):
> """Compute apparent temperature (real feel), using formula from
> http://www.bom.gov.au/info/thermal_stress/"""
> vap_press = rh / 100 * 6.105 * math.exp(17.27 * temp / (237.7 +
> temp))
> AT = temp + 0.33 * vap_press - 0.70 * wind - 4.00
> return AT
> </code>

Thanks Gina. I'll add this and the 'wind_chill' function to the pywws
source code in the near future.

Gina

unread,
Mar 12, 2010, 4:07:41 AM3/12/10
to py...@googlegroups.com
Found an error with the code on testing - the division of rh by 100 is
evaluated as integer hence always producing zero. The fix is to use
100.0 to force floating point calculation. So the calculation is :-

vap_press = rh / 100.0 * 6.105 * math.exp(17.27 * temp / (237.7 + temp))

---
Regards
Gina
http://ginad.org.co.uk/weather

Reply all
Reply to author
Forward
0 new messages