How we found the CFB Wainwright 82 km/h gust: a step-by-step guide to Environment Canada’s wind data

Kevin J.S. Duska Jr. | Prime Rogue Inc | Calgary, AB | October 21, 2026

Header graphic reading "How we found the 82 km/h gust: a step-by-step guide to reading Environment Canada's raw wind data," beside a bar chart of hourly wind at the CFB Wainwright weather station with the 82 km/h gust at 3:16 p.m. marked in gold.

The strongest wind recorded near the CFB Wainwright fire on Oct. 17, 2026, was an 82 km/h gust from the west at 3:16 p.m. MDT, logged by the base’s own Environment Canada weather station. That number has been reported widely, but it does not appear in the hourly weather tables most people check, and another journalist queried Environment and Climate Change Canada where it comes from, and ECCC declined to comment. ECCC is, at present, declining to comment on the accuracy of its own weather data. (everyone should drop Ash a follow – she is a dogged advocate for transparency) It is, however, central to our live coverage of the fire, because it bears on when the wind turned and whether that change was foreseeable. As such, we determined it would be wise to provide the public with a guide to calculating the value on its own.

This explainer answers that, step by step. It shows which file the reading is in, how to read it, how to check it independently, and what it can and cannot tell us. Every file used here is public, and our archived copies are on GitHub, unaltered and timestamped, so anyone can repeat the work. At Prime Rogue, we firmly believe that data-driven journalism is important, and we will continue to strive to make it as publicly accessible as possible.

Step 1: Know that there are two kinds of wind numbers

An automatic weather station reports two different wind measurements, and confusing them explains most of the puzzle.

  • The hourly reading is the wind at the top of the hour, averaged over two minutes. This is what goes into Environment Canada’s historical hourly tables. It is a snapshot, so it misses anything that happens between readings.
  • The peak gust is the single strongest wind in the past hour, recorded with the minute it happened. It is reported separately, and the historical hourly CSV files have no column for it at all.

So a gust at 3:16 p.m. falls between the 3 p.m. and 4 p.m. hourly readings. It will not appear in the hourly table, but it will appear in the day’s maximum-gust summary. That is exactly the gap another journalist spotted: the monthly summary shows 82 km/h, while the hourly table tops out at about half that.

Step 2: Find the station’s raw reports

The peak gust lives in Environment Canada’s SWOB files (Surface Weather Observations), published on the Meteorological Service of Canada’s open Datamart. Each automatic station posts one small XML file per hour, and each file holds every field the station measured.

The station that matters here is Wainwright CFB Airfield 21, station code CZWN (climate ID 301S001). Its files are named by date, UTC hour and station, so the report we need is:

2026-10-17-2200-CZWN-AUTO-swob.xml

That is the report filed at 22:00 UTC, which is 4 p.m. MDT, and it covers the hour from 3 to 4 p.m.

One catch: the Datamart keeps these files for only about 30 days before they roll off. We downloaded the Oct. 16 to 18 files on Oct. 19 and archived them unchanged. Our copy of the 4 p.m. report is the one used below.

Step 3: Read the fields that matter

Open the XML file in any text editor or browser. Most of it is metadata. Six lines carry the wind story, copied here exactly as they appear:

<element name="max_wnd_spd_10m_pst1hr" uom="km/h" value="82.0">
<element name="max_wnd_spd_pst1hr_tm" uom="hhmm" value="2116">
<element name="wnd_dir_10m_pst1hr_max_spd" uom="°" value="269">
<element name="pk_wnd_rmk" uom="unitless" value="PK WND 2744 2116Z">
<element name="avg_wnd_spd_10m_pst2mts" uom="km/h" value="50.8">
<element name="avg_wnd_dir_10m_pst2mts" uom="°" value="306">
FieldValueWhat it means
max_wnd_spd_10m_pst1hr82.0 km/hStrongest wind in the past hour, measured 10 m above ground
max_wnd_spd_pst1hr_tm2116Time of that peak, in UTC (hours and minutes)
wnd_dir_10m_pst1hr_max_spd269°Direction the peak came from (270° is due west)
pk_wnd_rmkPK WND 2744 2116ZThe same peak in standard aviation shorthand (Step 4)
avg_wnd_spd_10m_pst2mts50.8 km/hThe two-minute average at 4 p.m.: the hourly-table number
avg_wnd_dir_10m_pst2mts306°Its direction: northwest

The last two rows are what the hourly table records for 4 p.m. The first three are the gust it leaves out.

Excerpt of Environment Canada's raw SWOB file for the CFB Wainwright station's 4 p.m. report, with the four gust fields highlighted in gold (82.0 km/h, 21:16 UTC, 269 degrees, and the remark PK WND 2744 2116Z) and the two hourly-table fields in blue (50.8 km/h from 306 degrees).
The six lines in Environment Canada’s raw file that carry the wind story. Fields 1 to 4 are the gust; fields 5 and 6 are what the hourly table shows. (Data: ECCC. Graphic: Prime Rogue Inc.)

Step 4: Check it against the station’s own remark

The pk_wnd_rmk field gives a second, independent way to confirm the number. It uses the peak-wind code pilots read in airport weather reports:

  • PK WND means peak wind.
  • 27 is the direction in tens of degrees: 270°, or west.
  • 44 is the speed in knots.
  • 2116Z is the time in UTC (Z stands for Zulu, or UTC).

Convert the speed: 44 knots × 1.852 = 81.5 km/h. That matches the 82.0 km/h in the main field once you allow for rounding to whole knots. The direction and time match too. Two separately encoded fields saying the same thing make a transcription or parsing error very unlikely.

Step 5: Convert the time and line up the afternoon

SWOB times are in UTC. On Oct. 17, Alberta was on Mountain Daylight Time, six hours behind UTC, so 21:16 UTC is 3:16 p.m. MDT.

Repeating Steps 3 and 4 for each hourly file gives the full afternoon. The peak gusts climbed through the early afternoon, then jumped as the cold front arrived:

Time (MDT)Peak gustFromStation remark
1:34 p.m.45.7 km/h232° (southwest)PK WND 2325 1934Z
2:48 p.m.50.8 km/h246° (west-southwest)PK WND 2527 2048Z
3:16 p.m.82.0 km/h269° (west)PK WND 2744 2116Z
4:09 p.m.72.2 km/h288° (west-northwest)PK WND 2939 2209Z

The front shows up in the other fields too. Between the 3 p.m. and 4 p.m. reports, the temperature fell from 23.3 °C to 12.9 °C, humidity rose from 17% to 43%, and the wind swung from southwest to northwest.

The chart puts both kinds of numbers on one timeline: the hourly readings as bars, and each peak gust as a diamond at the minute it happened.

Chart of wind at the CFB Wainwright weather station on Oct. 17, 2026, showing hourly readings as bars and each hour's peak gust as a diamond. The 82 km/h gust at 3:16 p.m. sits between the 3 p.m. and 4 p.m. hourly readings.
Hourly readings (bars) miss the 82 km/h gust at 3:16 p.m.; the station’s peak-gust field (diamonds) records it. (Data: ECCC SWOB, CZWN. Graphic: Prime Rogue Inc.)

Step 6: Check where the measurement was taken

A reading is only as useful as its location. Each SWOB file gives the station’s coordinates: 52.8294° N, 111.0956° W. Measured against NASA’s satellite fire detections from Oct. 17, the station sits about 13 km west-northwest of the fire.

That matters in two ways:

  • The 82 km/h was measured at the station, not at the fire. It is the nearest official reading, and the right way to report it is “the base’s weather station recorded an 82 km/h gust.”
  • The timing at the fire was probably a little later. The storm line was moving east, so it reached the station first. Lloydminster, about 87 km east-northeast, in the same archive, recorded a 98 km/h gust in the same 3-to-4 p.m. hour, which fits a line sweeping across the region. The station data alone cannot say exactly when the gust front hit the fire, or how strong it was there.
Map showing the CFB Wainwright weather station about 13 km west-northwest of the Oct. 17 fire detections and burn scar near Peterson Pond, with a regional inset showing the storm line moving east to Lloydminster.
The base weather station sits about 13 km west-northwest of the fire. The storm line moved east, reaching the station first and Lloydminster later. (Data: ECCC, NASA FIRMS, NRCan CanVec, CGNDB. Graphic: Copyright, Prime Rogue Inc., 2026)

The satellite view shows the same afternoon from above. This 30-second loop of NOAA’s GOES-18 images, from 2:30 to 4:30 p.m., marks the station and the fire as the cold front’s cloud moves in from the west. The satellite shows cloud, not wind, so the loop illustrates the front’s direction of travel; the 82 km/h figure comes from the station alone.

GOES-18 visible imagery, 2:30 to 4:30 p.m. MDT, Oct. 17. The satellite shows cloud, not wind. (Data: NOAA GOES-18, NOAA fire product, ECCC. Video: Prime Rogue Inc.)

What this data can’t tell us

  • It is preliminary. SWOB data is near-real-time, and Environment Canada warns that its records can contain errors and values can change as doubtful data is found. It publishes no figure for how often that happens. But this reading has passed every check we can see. Each field in the file carries a quality flag, and the gust’s speed, time and direction are all flagged 100, which the SWOB user guide defines as acceptable or passed. ECCC issues corrections as separate files, and none has been issued for this report. The same 82 km/h from 270° also appears as the day’s maximum gust in ECCC’s historical daily data for the station, with no flag. More than four days after the fire, the original file on ECCC’s server has not been revised and is byte-for-byte identical to our archived copy. ECCC has not commented on the reading, and it remains the body that can confirm it as final.
  • It is one point. A single station 13 km away cannot give the wind speed or the exact minute the front reached the fire.
  • It doesn’t explain the deaths. The gust is one input to understanding what happened. The timeline, the fire’s location and the decisions made that day are separate questions.

Check it yourself

You don’t need to trust us. You can verify that our archived file is identical to what we downloaded, and that it hasn’t changed since:

  1. Download the 4 p.m. report from our archive.
  2. Compute its SHA-256 fingerprint (on Mac or Linux, sha256sum or shasum -a 256). It should be 8a67ce72a9c8190f4551569002ca5ff66865bda2c10267739948cc42e500b54b.
  3. Check that fingerprint against the archive’s manifests, which are timestamped on the Bitcoin blockchain through OpenTimestamps. The archive’s README shows the commands.
  4. Open the file and find the six fields from Step 3.

Found an error? Tell us through the archive page and we’ll correct it publicly.

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights