## Still Cold eh!

Well you might of read my recent post on 'Temperature-Windchill' and as I have a few mins I think I will use this post to create and send in a patch to this mod so us Canuck's can us it to on near calm days.

Well I should first provide a little background to justify my patch so here is a link NOAA Wind chill calculatior

and the formula as stolen from the Canadian website

wind <= 5 ) ) {
chill=(temp +((-1.59+0.1345*temp)/5)*wind) ;

and for good measure checking the the US version seem they are a little more lazy and just set the wind chill to be the Ambient temperature if it is about that like this

WindChill = ( 35.74 + 0.6215*TempF - 35.75*Math.pow(WindMph,0.16) + 0.4275*TempF*Math.pow(WindMph,0.16) );
if ( WindChill > Temp) WindChill = Temp;

So as this is Canadian wind chill I will add it in (with some pod as I love that part) as its own function

``````

Calculates the windchill in International ("SI") units, i.e. temperature in
degrees Celsius and windspeed in kilometers per hour but extends down to 1 kph which is customary to do in Canada.

Example:

# what's the windchill at -5 C and 20 KPH?
my \$chill = windchill_si( -5, 20 );
print "the windchill is: \$chill C";

=cut

sub windchill_ca {
my (\$temp, \$windspeed) = @_;
return windchill_si(\$temp, \$windspeed)
if \$windspeed >5;
return (\$temp +((-1.59+0.1345*\$temp)/5)*\$windspeed) ;
}

``````
Also remembering to add it into the export as well first
``````
@EXPORT_OK = qw( windchill_si windchill_us windchill_ca);

``````

As it is not my Mod I will leave all the version and other admin stuff up to the maintainer.

Now it is also nice to send along some tests as well so I came up with

``````
#!perl -T

use Test::More tests => 17;

use_ok('Temperature::Windchill', 'windchill_ca');

# check a range of valid values
{
my \$wc = sub {
return 0 + sprintf('%.1f' , windchill_ca(@_))
};
my @valid = (
# temperature, windspeed, windchill
[   5,  1,  4.8  ],
[   0,  2, -0.6  ],
[  -5,  3, -6.4  ],
[ -10,  4, -12.3 ],
[ -15,  5, -18.6 ],
[ -20,  1, -20.9 ],
[ -25,  2, -27.0 ],
[ -30,  3, -33.4 ],
[ -35,  4, -40.0 ],
[ -40,  5, -47.0 ],
[ -45,  1, -46.5 ],
[ -10,  2, -11.2 ],
[ -10,  3, -11.8 ],
[ -10,  4, -12.3 ],
[ -10,  5, -12.9 ],
[ -45,  20, -62.0],
);

for (@valid) {
my (\$temp, \$speed, \$chill) = @\$_;
is(\$wc->(\$temp, \$speed), \$chill);
}
}
``````

No need to test anything above 5c as it is just a call out to windchill_si for those but I added one in for good measure.

Now this does not seem to have a repo anywhere so off I go to rt.cpan and add in a ticket and lets see what happens

And for every one else here is a funny dog picture