Where does the data come from?

Data is collected over time from Environment and Climate Change Canada and from the Citizen Weather Observer Program (CWOP). Every individual location web site has several links on the "about page" so you can see where the information came from.

My favourite location is not listed. Can you add it?

All the locations provided by Environment and Climate Change Canada have been added to the system, with few exceptions. You can see the list of location on the location list.

Weatherstats.ca also gathers information from the Citizen Weather Observer Program. The Canadian stations listed at http://www.wxqa.com/states/canada.html are automatically added. There is a complete weatherstats.ca CWOP station list.

Argh! The data for my favourite site doesn't seem to be updating. Can it be fixed?

Sometimes Environment and Climate Change Canada discontinues one station and adds another. Therefore weatherstats.ca cannot get some or all of the data it used to. Send feedback to let us know about the issue and the problem will be worked as quickly as possible. We have monitoring in place that usually detects this situation and corrects it, but it doesn't catch all cases.

Why are there items like (1/2) in twitter updates?

Sometimes the message to send out is too long for one tweet (140 characters) to the system splits it into multiple parts and adds a part designator to each part of the message.

Sometimes tweets are full of abbreviations and sometimes they aren't. huh?

If the system thinks it can fit the message into fewer parts it will abbreviate some words so they take less space. Examples:

temperature: temp
thunderstorm: t-storm
percent: %
periods: pds
morning: morn
afternoon: aft
UV index 3 or moderate: UV: 3 moderate

Not all abbreviations are always applied... it depends how much the content needs to be squished.

Weather condition tweets don't always contain all the metrics. Why?

So that tweets don't exceed 140 characters, less-important metrics are dropped from the tweet starting from the end.

Weather conditions tweets sometimes need space for weather alerts and this takes a lot of space.

The temperature markers seem to have slightly different colours. Is this on purpose?

Yes, the background colour of the marker varies depending on the temperature so you can visually get the sense of the temperature without reading the actual numbers. The surrounding colour changes depending on if there is a weather alert or not.

No data* - Normal:
No data* with

These icons are used for windchill and humidex as well.

* The no data icons are used when there is a temperature value, but there is no windchill or humidex at the time... the temperature is shown instead.

The sunrise and sunset icons are sometimes different colors. Can you explain?

The sunrise and sunset icons will indicate if it is night time or daytime.

Day Time: (9am) (noon)
Night Time: (9pm) (midnight)

These are just examples. It may be still bright out at 9pm in the summer in which case the background would be yellow.

Speaking of colours, can I see all the colours for the health index?


Speaking of icons, can I see all the weather icons?

Here are all the weather condition icons used:

Some cities disapear from the map when I go back in time. Why?

Not all cities have the same amount of historical data. When you exceed the data available for a city, the marker will disappear. Additionally, sometimes data is not available for a city for a period of time, so the marker will disappear then as well.

Can you please explain the different time periods for which data is charted?

Data is accumulated in hourly and daily periods. There are charts for other time periods which are built by aggregating the daily data by either finding the min, max, sum and/or mean. Data download functions are not provided for these aggregations, since the calculations can be easily done by a pivot table in spreadsheet application.

Period Explanation
Hourly Rollup of realtime data, or summary for part of the whole or part of the hour
Daily Rollup of hourly values, or daily calculation
Weekly Starts on Monday
Monthly Starts on first day of the month
Quarterly Starts on January 1, April 1, July 1, October 1
Quarterly Seasonal Starts on December 1, March 1, June 1, September 1
Yearly Starts on January 1
Yearly July 1 - June 30 Starts on July 1 and ends on June 30. Good for looking at what is happing over the winter (eg snowfall for one season)

Can I download all the data for a specific location?

There is a download page for each location that allows you to download the daily data points for that location. Note that the data is an accumulation of multiple observation stations and when data is missing from one station it may be filled from another station.

What is the difference between avg_temperature and avg_hourly_temperature?

avg_temperature is the average between the daily maximum temperature and the daily minimum temperature. avg_hourly_temperature is the average of all the hourly temperatures within the day.

Please explain the column labels in the download data for normals and extremes

Column labels for normals and extremes:

Suffix Meaning
_v Calculated value (max, min or mean)
_s Standard deviation of mean
_c Count of (number of) values included
_d Date range for values
_y Years where extreme occurred (limited to first 40)

For monthly normal and extremes, the dates are always listed as the first day of the month. However, the data is for the first until the last day of the monthly (or until the current day for the ongoing month).

How can I embed a chart in a my web page?

You need to put in code like this in your web page:

<IFRAME SRC="https://ottawa.weatherstats.ca/icharts/temperature-weekly.html?width=600;height=400" FRAMEBORDER="0" VSPACE="0" HSPACE="0" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING="no" NORESIZE WIDTH="600" HEIGHT="400"></IFRAME>

Replace the BOLDed items follows:

I'm writing a report, can I take a copy of your data and/or charts?

You may use the data and/or charts for non-commercial use without extra permission. Please cite the source as "weatherstats.ca based on Environment and Climate Change Canada data". ECCC imposes license restrictions on their data see: http://climate.weather.gc.ca/prods_servs/attachment1_e.html.

For commercial usage, please contact us.

What progamming language do you use?

Server side programming is written in Perl served up by Apache running mod_perl. Client side is javascript and the charts are generated on-the-fly using Google Visualization tools with Bulma style sheets. Leaflet using Mapbox data is used for maps. Data is stored in a MariaDB database.

What operating system is the site running on?

The site is running on Debian Linux on dual processor Intel Xeon CPU E5-2650. The server has 512 GB of RAM and 10TB of storage (mirrored).

Please explain how hourly data is rollled up to daily

For daily rollup, wherever possible a localtime day is used. A localtime day means some days have either 23 or 25 hours on days where daylight savings time changes. The day starts at 01:00 and ends at 00:00 (eg July 6 01:00 to July 7 00:00). For precipitation, however, the day always ends at 06:00 UTC.

If you are looking at the download data you may see both an "avg" (average) value and an "avg_hourly" (hourly average) value. "avg" is the average of maximum and minium (avg + min /2), where as the hourly average is the average of all the data points retrieved during the day at the top of the hour (bottom of the hour for NL).

What is UV?

For information on UV, please see http://www.ec.gc.ca/uv/.

What is a heating/cooling/growing degree day?

A heating/cooling degree-day is given for each degree Celsius that the daily mean temperature departs below/above the baseline of 18 degrees Celsius. It is used to estimate energy requirements and is an indication of fuel consumption.

A growing degree-day uses either 5 degrees or 10 degrees Celsius as the base. See https://en.wikipedia.org/wiki/Growing_degree-day#GDD_calculation for more details.

The value is calculated using the daily mean (average) temperature: (maximum temperature + minimum temperature) / 2.

How do I interpret the wind direction chart?

The wind direction over the past 24 hours chart plots the number of hours the wind was in a specific direction. If it was not windy at all, there would be no data on the chart. Data is sampled once per hour. Wind speed is not taken into account.

There are multiple charts for cloud cover. Why?

Measuring cloud cover is dependent on the observation method. There are 3 possible charts available:

A number between 0 and 4

Value Explanation
0 (Clear) Sky clear (cloud amount of 0 oktas or 0/10)
1 (Few) Cloud amount of 1 to 2 oktas (1/10 to 3/10)
2 (Scattered) Cloud amount of 3 to 4 oktas (cloud coverage of ≤49% for MSC AWOS observations)
3 (Broken) Cloud amount of 5 to 7 oktas (cloud coverage of 50% to 89% for MSC AWOS observations)
4 (Overcast) Cloud amount of 8 oktas ( cloud coverage of ≥90% for MSC AWOS observations)

A number between 0 and 8

Using oktas.

Value Explanation
0 0 oktas or 0/10 - clear sky
1 1 okta or less, but not zero (1/10 or less, but not zero)
2 2 oktas (2/10 - 3/10)
3 3 oktas (4/10)
4 4 oktas (5/10)
5 5 oktas (6/10)
6 6 oktas (7/10 - 8/10)
7 7 oktas or more, but not 8 oktas (9/10 or more, but not 10/10)
8 8 oktas (10/10)

A number between 0 and 10

Multiply by 10 to get a percentage.

What is the difference between precipitation / rain / snow?

Here is a brief explanation:

Type Explanation
Precipitation The amount of rain/snow/etc received. Snow is melted to create a water equivalent. 1cm snow is approx 1mm of precipitation, but the exact amount depends on the snow density (eg corn snow vs light fluffy snow).
Rain The amount of precipitation, not including snow. Measured in mm.
Snow Measured in cm.

Different weather stations use different technologies to measure all types of precipitation. Some is measured by hand, others are automated.

To compute the daily amount, measuring runs from 06:00 to 05:59 UTC across the country.

Why do your normals and extremes not match those from ECCC?

Normals: ECCC calculates normals every 10 years (using data for previous 30 years) whereas weatherstats.ca calculates normals every day using the previous 30 years of data. Prior normals are always kept and can be used for comparison. The list of climate stations used to build a normal varies as well.

Extremes: The weatherstats.ca extremes are calculated for a given location, whereas the ECCC extremes are calculated for a given climate station. weatherstats.ca normally includes multiple climate stations in a given location to account for station changes and/or station unavailability.

Check the detailed normal or extreme charts for the details on sample size and date ranges. eg https://ottawa.weatherstats.ca/charts/normal_max_temperature-daily.html

How is Humidex calculated?

sub humidex {
        my ($temp, $dew_point) = @_;

        if ((! defined $temp) || (! defined $dew_point)) {
                return undef;
        return undef if ($temp < 20);
        my $humidex = $temp + 0.5555 * ((6.11 * 2.71828 ** (5417.753 * ((1/273.16) - (1/(273.15 + $dew_point))))) - 10);
        $humidex = round ($humidex);
        return undef if ($humidex <= 24);
        return $humidex;

How is Windchill calculated?

sub windchill {
        my ($temp, $wind_speed) = @_;

        if ((! defined $temp) || (! defined $wind_speed)) {
                return undef;
        return undef if ($temp > 0);
        if ($wind_speed > 5) {
                my $windchill = 13.12 + 0.6215 * $temp - 11.37 * ($wind_speed ** 0.16) + 0.3965 * $temp * ($wind_speed ** 0.16);
                return round ($windchill);
        } elsif ($wind_speed > 0) {
                my $windchill = $temp + ((-1.59 + 0.1345 * $temp) / 5) * $wind_speed;
                return round ($windchill);
        } else {
                return undef;

Is there a list of all the Air Quality Stations?

Yes, there is a list of all available Air Quality Stations.

If you see a station listed that should be associated to one of the listed locations but is not, please send feedback.

Can you list all the stations you retrieve data from?

The list of all available climate stations is available. Some are used by weatherstats.ca, others are not (yet). If you see a station listed that has data and should be associated to one of the listed locations but is not, please send feedback.

Is there a list of all Canadian Location Codes used for weather alerts?

The list of all Canadian Location Codes is available.

Your site is great, but I wish it had feature XYZ. Can you add that?

Please check the wish list and see if your request is already noted. If not (or even if it is), send us feedback for anything that you want to see.

I have a question, but the answer is not here. Help!

Please send us feedback for anything that is puzzling you.

Also, please see the Environment and Climate Change Canada Weather and Meteorology page for general weather topics. There is a comprehensive glossary section.