Fire Weather Index — CFFDRS Reference
The Canadian Forest Fire Weather Index (FWI) System is a component of the Canadian Forest Fire Danger Rating System (CFFDRS). Developed by van Wagner (1987), it uses six sub-indices derived from daily noon weather observations to represent fuel moisture and fire potential.
FFMC
Fine Fuel Moisture Code. Numerical rating of the moisture content of litter and other cured fine fuels. A critical indicator of ease of ignition and flammability.
DMC
Moisture content of loosely compacted organic layers of moderate depth. Responds to temperature and rain.
DC
Drought Code. Represents the moisture content of deep, compact organic layers. Indicators of seasonal drought and smoldering potential.
Initial Spread Index
Calculated from FFMC and Wind Speed. It represents the potential rate of fire spread without the influence of fuel quantity.
BUI
Total fuel available for combustion. A combination of DMC and DC values.
FWI
The final numerical rating of fire intensity. It combines the Initial Spread Index (ISI) and the Buildup Index (BUI).
Atmospheric Dependencies
FWI Classification Scale
Fuels do not ignite easily. Fires spread slowly and are easily controlled.
Fires start easily from sparks. Moderate spread rate; control is feasible with initial attack.
Fire starts readily and spreads quickly. Suppression requires increased resources.
Intense fire behaviour. Spotting and crowning possible. Difficult to control.
Blow-up potential. Erratic fire behaviour. Direct attack not recommended.
Source: van Wagner, C.E. (1987). Development and Structure of the Canadian Forest Fire Weather Index System. Forestry Technical Report 35. Canadian Forestry Service.
Fire Behavior Prediction System
ST-X-3 · 1992The FBP System translates FWI System outputs and fuel type into operational fire behaviour outputs: Rate of Spread (ROS), Head Fire Intensity (HFI), Crown Fraction Burned (CFB), and flame length. FBP outputs depend on fuel type — the same FWI conditions produce vastly different fire behaviour in C2 Boreal Spruce vs. D1 Leafless Aspen.
Operational Caution — Taylor, Pike & Alexander (1997)
"Fire behavior predictions are intended to assist in decision making, and are not a substitute for experience, sound judgment, or observation of actual fire behavior." ROS predictions are accurate to approximately ±20% for rates > 3 m/min; accuracy decreases for slow-moving fires. Predictions assume flat terrain, open-canopy wind, and homogeneous fuel — adjust for slope, sheltering, and fuel patchiness. CFB thresholds: <10% surface fire; 10–89% intermittent crown fire; ≥90% continuous crown fire.
Core Equations
Rate of Spread (m/min)
ROS = a × (1 − e−b·ISI)c × BE
where BE = exp(50 · ln(q) · (1/BUI − 1/BUI₀))
Head Fire Intensity (kW/m)
HFI = (H × TFC × ROS) / 60
H = 18,000 kJ/kg; TFC = SFC + (CFB × CFL)
Flame Length (m)
L = 0.0775 × HFI0.46
Byram (1959)
Crown Fraction Burned
CFB = 1 − e−0.23(ROS−RSO)
Van Wagner (1977); RSO = CSI / (H × SFC)
FBP System HFI Intensity Class 1–6
Official classification published in the Alberta Wildland Urban Interface Pocket Guide (Government of Alberta, Forestry & Parks). Originating source: Cole & Alexander (1995), Canadian Forest Service Northern Forestry Centre, Edmonton.
| Class | HFI (kW/m) | Flame Length | Attack Mode |
|---|---|---|---|
| 1 — Low | < 10 | < 0.2 m | Direct attack with hand tools · Should anchor |
| 2 — Moderate | 10 – 500 | 0.2 – 1.5 m | Direct attack with hand tools · Should anchor |
| 3 — High | 500 – 2,000 | 1.5 – 2.5 m | Direct attack with pump and hose · Should anchor |
| 4 — Very High | 2,000 – 4,000 | 2.5 – 3.5 m | Indirect attack; direct attack on less intense area · Must anchor |
| 5 — Extreme | 4,000 – 10,000 | 3.5 – 5.5 m | Indirect attack; direct attack on less intense area · Must anchor |
| 6 — Catastrophic | > 10,000 | > 5.5 m | No direct attack — evacuate structure zone |
Sources: Taylor, Pike & Alexander (1997), Special Report 11 [8]; Alberta WUI Pocket Guide (Gov. of Alberta); Forestry Canada Fire Danger Group (1992), ST-X-3 [3].
Grass Curing — O1a & O1b Fuel Types
FBP ST-X-3 · Van Wagner · Dominant driver of grass fire behaviour
For O1a (Matted Grass) and O1b (Standing Grass), percent curing is the dominant driver of fire behaviour — more influential than wind speed or FFMC. At 0% curing the grass is fully green and will not carry fire; at 100% curing the grass is fully desiccated and spread rates reach their theoretical maximum. The FBP System applies a Curing Factor (CF) to modify the effective ISI before the ROS formula is evaluated.
Curing Factor Equation
CF = 0.005 × (e0.061 × PC − 1)
ISIeff = CF × ISI
ROS = a × (1 − e−b · ISIeff)c × BE
where PC = percent curing (0–100). The O1a/O1b a, b, c coefficients (190/0.031/1.4 and 250/0.035/1.7) are calibrated to work with CF-modified ISI.
CF Reference Values
| Curing % | CF | Operational State |
|---|---|---|
| 0% | 0.000 | Green grass — no spread |
| 30% | 0.028 | Early dry-down — negligible spread |
| 60% | 0.190 | Marginal — threshold for notable spread |
| 80% | 0.649 | Default — typical Alberta active season |
| 90% | 1.175 | Late summer / drought conditions |
| 100% | 2.222 | Fully desiccated — maximum spread (ISI × 2.2×) |
Operational Note — Alberta Application
The default curing value in this application is 80% — representative of typical Alberta active-season conditions. Adjust curing using the stepper on the Home page when O1a or O1b is selected. At 60% curing, CF ≈ 0.19 — spread is marginal; at 100%, CF ≈ 2.22 — ISI is amplified 2.2× and ROS approaches extreme values. Field observation or satellite-derived curing estimates (e.g., NDVI-based phenology products) should inform this value when available. Prior to July 1, field-observed curing in southern Alberta grasslands commonly exceeds 80%; standing-grass (O1b) stations often reach 90%+ by August.
Source: Forestry Canada Fire Danger Group (1992). Development and structure of the Canadian Forest Fire Behavior Prediction System. ST-X-3. §O1 grass fuel type equations.
Data Sources & Methodology
Full ProvenanceWeather Source — Three-Tier Hierarchy
CWFIS WFS · MSC SWOB Realtime · ECMWF IFS 0.25° · Client-Side Only · No API Key
All data is fetched live in the browser — no server, no caching. Current conditions use a three-tier priority. Tier 1 — CWFIS (NRCan firewx_stns_current WFS): provincial fire weather stations with pre-computed FWI chain; used when a station is found within ±2° (~220 km). Tier 2 — MSC SWOB Realtime (api.weather.gc.ca/collections/swob-realtime): real sensor observations from Environment Canada's automated weather station network; used when CWFIS has no coverage. Targets noon LST (19:00 UTC) when available. Tier 3 — ECMWF IFS 0.25° via Open-Meteo: numerical weather model output at exact station coordinates, noon LST targeted; last resort only. Forecasts use CWFIS NAEFS ensemble (14–16 days) as primary, falling back to ECMWF IFS 0.25° (7 days at exact lat/lng) when no NAEFS station is within 150 km. ECMWF IFS is the same model ECCC uses for verification — the 12Z run (initialized 06:00 MST) is available on Open-Meteo by approximately 13:00 MST, aligning with the 16:00 MST FBAN planning window.
GET cwfis.cfs.nrcan.gc.ca/geoserver/public/ows
?service=WFS&version=2.0.0&request=GetFeature
&typeName=public:firewx_stns_current
&outputFormat=application/json&count=50
&CQL_FILTER=lat BETWEEN {lat-2} AND {lat+2}
AND lon BETWEEN {lng-2} AND {lng+2}
Station selection uses a two-pass algorithm: the app first identifies the nearest station with an active FWI chain (FFMC and DC not null — NRCan carry-over in progress); if no FWI-chain station exists within 200 km of the nearest weather-only station, the weather-only station is used instead. This ensures DC and FFMC continuity during the fire season rather than defaulting to the geographically closest sensor regardless of data quality. When CWFIS provides FWI codes (fire season, approx. Apr–Oct), they are used directly. Off-season, FWI codes are null and Van Wagner equations are applied to observed weather with cold-start DC values.
DC Divergence Warning: DC is a long-memory index (53-day e-folding time) shaped primarily by accumulated precipitation. Unlike temperature or wind, DC cannot be meaningfully interpolated between stations that have experienced different rainfall — a single convective cell can produce 30 mm at one gauge and 2 mm 20 km away. When ≥2 CWFIS stations within 75 km of the selected location differ by ≥75 DC units, the app flags this as a potential representativeness issue: a localised precipitation event likely fell between stations, and the nearest station DC may overestimate (or underestimate) actual fuel moisture. The operator should review nearby station DCs and consider selecting the station whose precipitation history best matches the target fuel complex.
Minute-level automated weather station observations from Environment Canada's national network. CORS-enabled (Access-Control-Allow-Origin: *). Nearest station within ±1.5° (~150 km) is selected by Haversine distance. The hourly-averaged wind field (avg_wnd_spd_10m_pst1hr) is used rather than instantaneous wind, consistent with CFFDRS input requirements. Observation time is checked: if within ±1 hour of 19:00 UTC (noon LST), the source label reads noon LST; otherwise latest obs.
GET api.weather.gc.ca/collections/swob-realtime/items
?bbox={lng-1.5},{lat-1.5},{lng+1.5},{lat+1.5}
&limit=50&f=json
CFFDRS specifies noon Local Standard Time (LST) as the standard daily observation time — equivalent to 19:00 UTC year-round for Alberta (UTC−7, standard time used regardless of DST). This app targets the 19:00 UTC hourly value from Open-Meteo. If noon LST has not yet occurred today, the most recent available hour is used as best-available and labelled accordingly. Once CWFIS stations are active for the fire season, this fallback is not used for covered stations and the noon LST constraint is moot — CWFIS provides operationally correct daily values directly.
GET api.open-meteo.com/v1/forecast
?latitude={lat}&longitude={lng}
&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m,wind_direction_10m,precipitation
&forecast_days=1&timezone=UTC
→ select index where UTC hour = 19 (noon LST)
GET cwfis.cfs.nrcan.gc.ca/geoserver/public/wfs
?service=WFS&version=2.0.0&request=GetFeature
&typeNames=public:firewx_naefs
&outputFormat=application/json
&CQL_FILTER=code={station_code}&count=20
Returns up to 16 daily forecast records per station. The nearest NAEFS station within 150 km is selected by Haversine distance. max_temp and min_rh are used (fire weather peak conditions, consistent with CFFDRS 13:00 LST standard). FWI is computed client-side via Van Wagner carry-forward chain from current observed values. Ensemble spread (pct25/pct75) is available in the layer but not yet displayed.
GET api.open-meteo.com/v1/forecast
?latitude={lat}&longitude={lng}
&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m,precipitation
&timezone=auto&forecast_days=7
→ models=ecmwf_ifs025 removed (premium-only endpoint; default model used)
Returns 168 hourly values (7 days × 24 h) at the exact station lat/lng. Two hour indices are extracted per day: day × 24 + 12 (noon LST) drives the Van Wagner FWI carry-forward chain; day × 24 + 14 (14:00 LST) provides peak burn temperature, RH, and wind for FBP fire behaviour prediction. ECMWF IFS is the European Centre for Medium-Range Weather Forecasts global model — the same model ECCC uses for verification and one of the highest-skill global NWP systems for Canadian latitudes. The 12Z run (initialized 06:00 MST) is typically available via Open-Meteo by 13:00 MST, making it current for the 16:00 MST FBAN planning window.
GET api.open-meteo.com/v1/forecast
?latitude={lat}&longitude={lng}
&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m,precipitation
&timezone=auto&past_hours=23&forecast_hours=0
Returns the previous 23 completed hours. FWI is chained hour-by-hour from spring startup defaults. Bars are coloured by danger class; solid = past, translucent = current hour.
D+1 Peak Burn Prediction — FBAN Operational Product
Fire Behaviour Analyst · 16:00 MST Planning Window · FBP ST-X-3
The operational FBAN workflow requires a specific product: at approximately 16:00 MST, the analyst needs to predict fire behaviour during the next day's peak burn period (~14:00 MST) so that resources can be committed overnight. This app generates that product automatically on the Forecast page and in the Station Briefing print output.
Calculation Chain
Step 1 — Today's observed FFMC / DMC / DC (from CWFIS or SWOB) → chain starting state
Step 2 — Tomorrow's noon forecast (NAEFS max_temp / min_rh / median_ws, or ECMWF hour 12) → Van Wagner carry-forward → D+1 FFMC / DMC / DC
Step 3 — Tomorrow's 14:00 forecast (NAEFS peak values, or ECMWF hour 14) + D+1 FFMC/DMC/DC → calculateFBP(fuelCode, ffmc, dmc, dc, wind_14h)
Step 4 — Outputs: Head ROS (m/min), HFI (kW/m), Flame Length (m), Fire Type, CFB (%)
Why 14:00, not noon?
Van Wagner's FWI System uses noon LST as the standard observation time for daily indices (FFMC, DMC, DC). Peak fire behaviour, however, typically occurs in the mid-afternoon when temperature is highest and RH is lowest — approximately 13:00–15:00 LST. The FBP calculation uses the FFMC/DMC/DC from the noon chain (correct for fuel moisture state) but applies the 14:00 wind and weather to predict actual fire behaviour at peak burn.
FBP System HFI Intensity Class 1–6
1–2 — < 500 kW/m · Direct attack with hand tools · Should anchor
3 — 500–2,000 kW/m · Direct attack with pump and hose · Should anchor
4 — 2,000–4,000 kW/m · Indirect attack; direct on less intense area · Must anchor
5 — 4,000–10,000 kW/m · Indirect attack; direct on less intense area · Must anchor
6 — > 10,000 kW/m · No direct attack — evacuate structure zone
Taylor, Pike & Alexander (1997) Special Report 11; Alberta WUI Pocket Guide
Model Timing (MST)
By 16:00 MST both the ECMWF 12Z run and the NAEFS daily update are available, initialized on the same morning atmospheric state. Fuel type is selected manually (default C2 — Boreal Spruce) and persisted across pages via localStorage.
Station Network — 193 Alberta CWFIS Locations
Canadian Wildland Fire Information System · Natural Resources Canada
Station names and coordinates match the NRCan CWFIS fire weather station network. Coordinates are hard-coded in fwi.js → ALBERTA_STATIONS[]. For current conditions, each coordinate queries the CWFIS WFS layer for the nearest physical sensor within ±2° — the actual sensor name and distance are shown in the station UI. Forecasts use CWFIS NAEFS ensemble (primary, 23 stations) or Open-Meteo NWP (fallback). Stations span all Alberta forest management zones from High Level (58.52°N) to Cardston (49.20°N).
High Level, Fort Chipewyan, Peace River, Grande Prairie, Fort McMurray, Fort Vermilion, Manning, Wabasca, Slave Lake, High Prairie, Valleyview
Athabasca, Lac La Biche, Bonnyville, Cold Lake, Fox Creek, Whitecourt, Edson, Hinton, Jasper, Grande Cache, Edmonton, Drayton Valley, Rocky Mtn House, Vegreville, Camrose, Lloydminster, Wetaskiwin, Stettler
Red Deer, Drumheller, Calgary, Banff, Claresholm, Brooks, Medicine Hat, Pincher Creek, Lethbridge, Cardston
Calculation Pipeline — Client-Side JavaScript
fwi.js · No server · Equations run in browser
Weather inputs (T, RH, W, r) → FFMC → DMC → DC → ISI → BUI → FWI. All six equations implemented verbatim from the Forestry Canada publication. No simplifications or approximations. Day-length adjustment factors (DMC_LL, DC_LL) applied by calendar month, indices 1–12.
Spring startup defaults: FFMC = 85, DMC = 6. These are uniform across Alberta. DC startup is station-specific by fuel/climate zone — ranging from DC = 100 (boreal north: Fort Chipewyan, High Level, Fort Vermilion, Manning, Wabasca — high precipitation and snowpack) through DC = 150 (central boreal), DC = 175–200 (mountain), DC = 250–300 (parkland/AG zone including Edmonton) to DC = 375–450 (southern Alberta: Lethbridge, Medicine Hat, Drumheller — dry winters, minimal snowpack). Van Wagner's dc = 15 (fully saturated) is not used. These cold-start values are moot during fire season when CWFIS provides live DC from the daily carry-over chain — they apply to off-season fallback and the NAEFS forecast chain.
Inputs: FFMC, DMC, DC, wind speed, user-selected fuel type. Outputs: ISI, BUI, surface ROS, BUI effect (BE), slope-adjusted ROS, surface fire intensity (SFI), crown fraction burned (CFB), total fuel consumption (TFC), head fire intensity (HFI), flame length.
Crown fire assessment uses Van Wagner (1977). Foliar moisture content (FMC) is computed seasonally via the Van Wagner (1987) DOY + latitude equation: FMC = 85 + 0.0189 × (DOY − D₀)², clamped to [85, 120]%, where D₀ is the latitude-adjusted green-up date. FMC declines from ~120% (early spring, wet foliage) toward ~85% (peak summer), reducing the Critical Surface Intensity (CSI) threshold and making crown fire initiation progressively easier through the season. CFB = 1 − e−0.23(ROS − RSO). Flame length from Byram (1959): L = 0.0775 × HFI0.46. Fuel type parameters (a, b, c, q, BUI₀, CBH, CFL, SFC) from ST-X-3 Tables 4–6.
Fuel type is auto-selected per station from the 40-station lookup table derived from the NRCan 30m fuel classification grid (see Station Fuel Type Assignments below). C2 — Boreal Spruce is the fallback when no assignment exists. User-selectable from 14 fuel types via the picker on the Home page.
The station detail page fetches NRCan's SCRIBE pre-computed FWI forecast (public:firewx_scribe_fcst) for today, +24h, and +48h at the nearest met station. Displayed as a secondary validation strip below the FWI components when valid data is available (SCRIBE activates progressively through fire season — sentinel value −101 indicates no data yet for a station). SCRIBE provides an independent NRCan model estimate against which to compare the live observed chain.
The regional map provides two toggleable live overlays from CWFIS. Active Fires (public:activefires_current): official agency-reported fire locations with name, size (ha), and stage of control; circle radius scaled by area. Hotspots 24h (public:hotspots_24h): MODIS/VIIRS/Sentinel satellite detections from the past 24 hours with pre-computed FBP outputs (HFI, ROS, fuel type). Both layers are fetched live with no API key required.
Primary References
- [1]Van Wagner, C.E. & Pickett, T.L. (1985). Equations and FORTRAN program for the Canadian Forest Fire Weather Index System. Forestry Technical Report 33. Canadian Forestry Service, Ottawa.
- [2]Van Wagner, C.E. (1987). Development and structure of the Canadian Forest Fire Weather Index System. Forestry Technical Report 35. Canadian Forestry Service, Ottawa.
- [3]Forestry Canada Fire Danger Group (1992). Development and structure of the Canadian Forest Fire Behavior Prediction System. Information Report ST-X-3. Forestry Canada, Ottawa.
- [4]Van Wagner, C.E. (1977). Conditions for the start and spread of crown fire. Canadian Journal of Forest Research, 7(1), 23–34.
- [5]Byram, G.M. (1959). Combustion of forest fuels. In K.P. Davis (Ed.), Forest Fire: Control and Use (pp. 61–89). McGraw-Hill.
- [6]Zuur, E. & Förster, D. (2022–present). Open-Meteo: Free Weather API. open-meteo.com. Used for current conditions fallback (Tier 3) and 7-day forecast fallback when no NAEFS station is within 150 km. Default model (no
models=parameter);models=ecmwf_ifs025is now a premium-only endpoint and is not used. 12Z run available ~13:00 MST. - [7]Environment and Climate Change Canada / NOAA (2003–present). North American Ensemble Forecast System (NAEFS). Bi-daily 00Z/12Z ensemble runs; 14-day horizon. Distributed via NRCan CWFIS WFS layer public:firewx_naefs.
- [8]Taylor, S.W.; Pike, R.G.; Alexander, M.E. (1997). Field Guide to the Canadian Forest Fire Behavior Prediction (FBP) System. Special Report 11. ISBN 0-660-17099-X. Natural Resources Canada, Canadian Forest Service, Northern Forestry Centre, Edmonton, AB. 60 p. — Primary operational field reference for HFI intensity classes 1–6, flame length scale anchors, attack mode decisions, crown fraction burned thresholds, and the caution that "fire behavior predictions are intended to assist in decision making, and are not a substitute for experience, sound judgment, or observation of actual fire behavior."
All 16 CFFDRS FBP Fuel Types — ST-X-3 Parameters
Forestry Canada ST-X-3 (1992) · National Standard · User-selectable via fuel picker
The FBP System defines 16 fuel types. Selecting the correct fuel type is the single most impactful decision in a fire behaviour prediction — the same FWI can produce HFI values that differ by 10× across fuel types. Alberta defaults are C2 — Boreal Spruce (Fuel A) and D1 — Leafless Aspen (Fuel B). Parameters below are sourced directly from fwi.js → FUEL_TYPES{}.
| Code | Name | a | b | c | q | BUI₀ | CBH m | CFL kg/m² | SFC kg/m² | Alberta Occurrence |
|---|---|---|---|---|---|---|---|---|---|---|
| Conifer Types | ||||||||||
| C1 | Spruce-Lichen Woodland | 90 | 0.0649 | 4.5 | 0.90 | 72 | 2 | 0.75 | 0.75 | Far north boreal; open lichen-spruce; low crown fuel |
| C2 ★ | Boreal Spruce | 110 | 0.0282 | 1.5 | 0.70 | 64 | 3 | 0.80 | 0.80 | ★ Fuel A default — dominant AB boreal: Fort McMurray, Slave Lake, High Level, Fox Creek |
| C3 | Mature Jack/Lodgepole Pine | 110 | 0.0444 | 3.0 | 0.75 | 62 | 8 | 1.15 | 1.15 | Rocky Mountain foothills: Banff, Jasper, Cold Lake; higher CBH than C2 |
| C4 | Immature Jack/Lodgepole Pine | 110 | 0.0293 | 1.5 | 0.75 | 66 | 4 | 1.20 | 1.20 | Post-fire regenerating jack pine; Fort McMurray reburn areas |
| C5 | Red and White Pine | 30 | 0.0697 | 4.0 | 0.80 | 56 | 18 | 1.20 | 1.20 | Eastern Canada type; rarely dominant in AB. Very high CBH = crown-fire resistant. |
| C6 | Conifer Plantation | 30 | 0.0800 | 3.0 | 0.80 | 62 | 7 | 1.80 | 1.80 | Dense planted stands; highest CFL of all types — extreme crown fire fuel load when ignited |
| C7 | Ponderosa Pine / Douglas-fir | 45 | 0.0305 | 2.0 | 0.85 | 106 | 10 | 0.50 | 0.50 | Rare in AB (Waterton/Crowsnest foothills); dominant BC south interior type |
| Deciduous Types | ||||||||||
| D1 ★ | Leafless Aspen | 30 | 0.0232 | 1.6 | 0.90 | 32 | 0 | 0.00 | 0.35 | ★ Fuel B default — AB parkland: Calgary, Drayton Valley, Red Deer, Valleyview. Surface fire only. |
| D2 | Green Aspen | 6 | 0.0232 | 1.6 | 0.90 | 32 | 0 | 0.00 | 0.35 | Very low spread (a=6); green leaf moisture suppresses fire. Summer aspen stands. |
| Mixedwood Types (Blended ROS) | ||||||||||
| M1 | Boreal Mixedwood — Leafless | ROS = PS% × C2_ROS + (1−PS%) × D1_ROS | AB boreal transition: Edson, Slave Lake, Whitecourt, Rocky Mtn House | |||||||
| M2 | Boreal Mixedwood — Green | ROS = PS% × C2_ROS + (1−PS%) × D2_ROS | Same stand as M1 in summer (green hardwood suppresses spread significantly) | |||||||
| Grass Types (Curing-Dependent) | ||||||||||
| O1a | Matted Grass | 190 | 0.031 | 1.4 | 1.00 | 1 | 0 | 0.00 | 0.35 | SE AB grasslands, Peace Country, agricultural edges; curing % required — see below |
| O1b | Standing Grass | 250 | 0.035 | 1.7 | 1.00 | 1 | 0 | 0.00 | 0.35 | Lethbridge, Medicine Hat, Cardston; faster spread than O1a; extreme at 100% curing |
| Slash Types (Surface Fire — No Crown) | ||||||||||
| S1 | Jack/Lodgepole Pine Slash | 75 | 0.0297 | 1.3 | 0.75 | 38 | 0 | 0.00 | 4.50 | Post-harvest pine cutblocks; SFC=4.50 — extremely high surface fire intensity |
| S2 | White Spruce / Balsam Slash | 40 | 0.0438 | 1.7 | 0.75 | 63 | 0 | 0.00 | 4.50 | Post-harvest spruce/balsam fir cutblocks; slower spread than S1 but same high SFC |
| S3 | Cedar / Hemlock / DF Slash | 55 | 0.0829 | 3.2 | 0.75 | 31 | 0 | 0.00 | 4.50 | Uncommon in AB; primarily BC coastal/cedar-hemlock type |
C2 vs D1 — The Two Alberta Defaults
C2 (boreal spruce, CBH=3m) and D1 (leafless aspen, CBH=0) behave very differently. C2 initiates crown fire at low surface intensity due to its low crown base — in the boreal, continuous crown fire is common at FWI ≥ 20. D1 cannot crown (CFL=0) — it is a surface-fire-only type regardless of FWI. The pairing is operationally useful: C2 shows worst-case boreal crown fire behaviour while D1 shows the surface-only parkland scenario for the same weather.
M1/M2 — Mixedwood Blending (PS% Parameter)
M1/M2 do not have their own a/b/c coefficients. ROS is a weighted blend: ROS = PS% × ROS_C2 + (1−PS%) × ROS_D1/D2, where PS% is the percent softwood by crown volume. At PS=100% M1 behaves like C2; at PS=0% it behaves like D1. Typical AB mixedwood transition zones run PS=40–60%. M2 (green aspen hardwood component) spreads significantly slower in summer.
O1a/O1b — Grass Curing Controls Everything
Curing percent is the dominant driver for grass types — more influential than wind speed or FFMC. The FBP system applies a Curing Factor (CF): CF = 0.005 × (e^(0.061×PC) − 1). At 60%, CF≈0.19 (marginal spread); at 80%, CF≈0.51; at 100%, CF≈2.22 (ISI amplified 2.2×). O1b (standing, a=250) spreads faster than O1a (matted, a=190). Southern Alberta grasslands reach 90–100% curing by August. Use the curing slider on the station detail page.
Station Fuel Type Assignments
Source: CWFIS cffdrs_fbp_fuel_types WMS · NRCan 30m · Sampled Apr 2026
Dominant FBP fuel type within 5 km of each CWFIS station coordinate, derived from the NRCan national 30m fuel classification grid. M1/M2 mixedwood mapped to C2. Northern boreal airport stations where the grid returned agricultural grass were corrected to regional forest type. All assignments are overridable via the fuel picker.
| Station | Fuel | Type Name | Source |
|---|---|---|---|
| Athabasca | C2 | Boreal Spruce | Corrected (boreal) |
| Banff | C3 | Mature Jack/Lodgepole Pine | WMS ✓ |
| Bonnyville | O1a | Matted Grass | WMS — agricultural |
| Brooks | O1a | Matted Grass | WMS ✓ SE grassland |
| Calgary | D1 | Leafless Aspen | WMS ✓ parkland |
| Camrose | O1a | Matted Grass | WMS — agricultural |
| Cardston | O1a | Matted Grass | WMS ✓ SW grassland |
| Claresholm | O1a | Matted Grass | WMS ✓ foothills |
| Cold Lake | C3 | Mature Jack Pine | WMS ✓ |
| Drayton Valley | D1 | Leafless Aspen | WMS ✓ parkland |
| Drumheller | O1a | Matted Grass | WMS ✓ badlands |
| Edmonton | D2 | Green Aspen | YEG airport; D2 for WUI context |
| Edmonton Blatchford | D2 | Green Aspen | North Edmonton WUI context |
| Edson | C2 | Boreal Spruce | M1→C2 mixedwood |
| Fort Chipewyan | C2 | Boreal Spruce | WMS ✓ N. boreal |
| Fort McMurray | C4 | Immature Jack/Lodgepole Pine | WMS ✓ post-2016 reburn |
| Fort Vermilion | C2 | Boreal Spruce | Corrected (N. boreal) |
| Fox Creek | C2 | Boreal Spruce | WMS ✓ |
| Grande Cache | C2 | Boreal Spruce | WMS ✓ |
| Grande Prairie | O1a | Matted Grass | WMS ✓ Peace Country |
| High Level | C2 | Boreal Spruce | WMS ✓ N. boreal |
| High Prairie | D2 | Green Aspen | Corrected (boreal transition) |
| Hinton | C2 | Boreal Spruce | WMS ✓ |
| Jasper | C3 | Mature Jack/Lodgepole Pine | WMS ✓ Rocky Mountain |
| Lac La Biche | D1 | Leafless Aspen | WMS ✓ |
| Lethbridge | O1a | Matted Grass | WMS ✓ grassland |
| Lloydminster | O1a | Matted Grass | WMS — agricultural |
| Manning | C2 | Boreal Spruce | Corrected (boreal) |
| Medicine Hat | O1a | Matted Grass | WMS ✓ SE grassland |
| Peace River | D2 | Green Aspen | Corrected (Peace transition) |
| Pincher Creek | O1a | Matted Grass | WMS ✓ foothills |
| Red Deer | D1 | Leafless Aspen | WMS ✓ parkland |
| Rocky Mtn House | C2 | Boreal Spruce | M1→C2 mixedwood foothills |
| Slave Lake | C2 | Boreal Spruce | M1→C2 Lesser Slave |
| Stettler | O1a | Matted Grass | WMS — agricultural |
| Valleyview | D1 | Leafless Aspen | WMS ✓ Peace Country |
| Vegreville | O1a | Matted Grass | WMS — agricultural |
| Wabasca | C2 | Boreal Spruce | M1→C2 boreal mixedwood |
| Wetaskiwin | O1a | Matted Grass | WMS — agricultural |
| Whitecourt | C2 | Boreal Spruce | M1→C2 boreal mixedwood |
Data Sources & Station Network
Three-tier live data hierarchy · 39 Alberta reporting zones
Each of the 39 reporting zones queries three data sources in priority order. The first that returns valid temperature, humidity, and wind data wins. The source badge shown in every popup and table row tells you which tier was used.
NRCan firewx_stns_current WFS layer. Certified fire weather stations operated by NRCan and provincial services, typically co-located at airports or forestry offices. Searched within ±2° (~220 km) of the reporting zone; nearest station with valid obs selected. When active (approx. Apr–Oct), returns the pre-computed daily FWI carry-over chain — FFMC, DMC, DC, ISI, BUI, and FWI from NRCan's official calculation using yesterday's codes as startup values. This is the operationally authoritative source. Many stations go dormant in winter; the query returns null and falls through to Tier 2.
Environment and Climate Change Canada swob-realtime API. All-year real sensor data from airports, climate reference stations, and AgriMet sites. Searched within ±1.5° (~165 km), past 3-hour window; nearest station with valid T/RH/wind selected. Preferentially uses noon LST observation (19:00 UTC ±1 hr) to align with CFFDRS calculation timing — if no noon obs is found in the window, falls back to most recent. FWI codes are not pre-computed — Van Wagner equations are applied live against spring startup constants or the last known carry-over. Good coverage across southern and central Alberta (airports are dense); sparser in the deep boreal north.
Open-Meteo ECMWF IFS 0.25° model, targeting noon LST (19:00 UTC) — the standard CFFDRS observation time. Used when both CWFIS and SWOB fail (station offline, outside search radius, or data gap). NWP interpolates grid-point model output to the exact coordinate; it captures synoptic patterns but misses valley inversions, terrain channelling, and local lake/urban influence. FWI chain uses startup constants. Zones in remote or mountainous areas most commonly fall back here. Identified in the popup by the amber NWP badge.
The popup shows "X km offset" — the distance between the reporting zone's nominal coordinate and the physical station that actually provided the data. A 0 km offset means the data came from a station at essentially the same location. A large offset (e.g. 37 km for Wetaskiwin → Camrose SWOB) means local micro-climate effects may differ. For operational use, verify the source station name is plausible for your zone of interest.
CWFIS stations concentrate in the forested boreal and foothills — where wildfire risk is highest. Southern agricultural zones (Lethbridge, Brooks, Camrose, Stettler, Vegreville) typically report via SWOB from the nearest airport. Urban zones (Edmonton, Calgary) now target the main international airport coordinate for reliable all-season SWOB coverage. Off-season (Nov–Mar) most zones fall to SWOB or NWP as CWFIS dormant stations return null.
These are the search origin coordinates used to query the data hierarchy above — not necessarily the location of the physical station that responds. The actual station name and its true coordinates are returned in the API response and shown in the popup.
| Zone | Sector | Search Origin | Notes |
|---|---|---|---|
| High Level | Far North | 58.517, -117.133 | Near CYOH airport — CWFIS/SWOB active |
| Fort Chipewyan | Far North | 58.767, -111.117 | Near CYFH — remote; CWFIS in-season |
| Fort Vermilion | Far North | 58.383, -116.017 | Near CYFV — CWFIS/SWOB |
| Manning | Far North | 56.917, -117.617 | CWFIS in-season; NWP off-season |
| Peace River | North | 56.233, -117.283 | Near CYPE — CWFIS/SWOB |
| Wabasca | North | 55.967, -113.833 | Remote boreal; CWFIS primary |
| Fort McMurray | North | 56.650, -111.217 | Near CYMM — strong CWFIS/SWOB |
| Grande Prairie | North | 55.167, -118.883 | Near CYQU — reliable SWOB year-round |
| High Prairie | North | 55.433, -116.483 | CWFIS in-season; SWOB fallback |
| Slave Lake | North | 55.283, -114.767 | Near CYZH — CWFIS/SWOB |
| Valleyview | North | 55.083, -117.283 | CWFIS in-season; NWP off-season |
| Athabasca | Central-N | 54.717, -113.283 | Near CYAH — CWFIS/SWOB |
| Lac La Biche | Central-N | 54.767, -111.967 | Near CYLB — CWFIS/SWOB |
| Bonnyville | Central-N | 54.267, -110.733 | SWOB primary (ag zone) |
| Cold Lake | Central-N | 54.417, -110.283 | Near CYOD (CFB) — strong SWOB |
| Fox Creek | Central-N | 54.400, -116.800 | CWFIS in-season; NWP off-season |
| Whitecourt | Central-N | 54.150, -115.683 | Near CYZU — CWFIS/SWOB |
| Edson | Central | 53.583, -116.433 | Near CYET — CWFIS/SWOB |
| Hinton | Central | 53.400, -117.567 | CWFIS in-season; NWP off-season |
| Grande Cache | Central | 53.883, -118.433 | Shifted east toward Hinton SWOB corridor |
| Edmonton | Central | 53.309, -113.580 | CYEG Intl Airport — SWOB year-round |
| Edmonton Blatchford | Central | 53.572, -113.521 | North Edmonton — nearest available SWOB |
| Vegreville | Central | 53.500, -112.050 | SWOB from nearest ag/airport station |
| Lloydminster | Central | 53.283, -110.000 | Near CYLL — SWOB year-round |
| Drayton Valley | Central | 53.217, -114.983 | CWFIS in-season; SWOB fallback |
| Jasper | Central-S | 52.867, -118.083 | Near CYJA — CWFIS/SWOB |
| Camrose | Central | 53.017, -112.833 | Near CYCX — SWOB year-round |
| Wetaskiwin | Central | 52.967, -113.367 | Ag zone — SWOB from Camrose/Lacombe area |
| Rocky Mtn House | Central-S | 52.367, -114.917 | Near CYRM — CWFIS/SWOB |
| Stettler | Central-S | 52.317, -112.717 | Ag zone — SWOB; CWFIS rare |
| Red Deer | Central-S | 52.267, -113.800 | Near CYQF — strong SWOB year-round |
| Drumheller | South | 51.467, -112.717 | Ag/badlands — SWOB from nearest airport |
| Calgary | South | 51.050, -114.067 | Near CYYC — strong SWOB year-round |
| Banff | South | 51.183, -115.567 | Near CXBF — CWFIS/SWOB; terrain effects |
| Brooks | South | 50.567, -111.900 | Near CYBR — SWOB year-round |
| Claresholm | South | 50.017, -113.583 | Foothills — SWOB from nearest airport |
| Medicine Hat | South | 50.033, -110.683 | Near CYXH — strong SWOB year-round |
| Pincher Creek | South | 49.483, -113.950 | Foothills — CWFIS in-season |
| Lethbridge | South | 49.700, -112.833 | Near CYQL — strong SWOB year-round |
| Cardston | South | 49.200, -113.300 | Near CZCD — SWOB; near US border |
Reading the Live Map
Bicolor pill markers · Cluster bubbles · Popup detail
Bicolor Pill Markers
Each station is shown as a split pill. The left half encodes the FWI Danger class; the right half encodes the HFI Byram intensity class. Both indices can differ for the same observation — a dry but calm day may have High FWI but only Moderate HFI, while a windy day in dense fuel may show both extreme.
Left Half — FWI Danger
Right Half — HFI Byram Class
Marker Shape — Data Source
Cluster Bubble
At provincial zoom (≤ 6), stations too close to display separately collapse into a dark-blue numbered circle. The number is the station count. Click to spiderfy and see individual pills. Clustering dissolves automatically at zoom 7+.
Loading State
A gray … pill means the data fetch for that station is still in progress. All 39 stations load concurrently; most resolve within 2–4 seconds. If a station stays gray, it failed silently and its popup will show no data.
Zoom & Size
Pills scale with zoom: small at provincial (zoom ≤ 5), medium at regional (zoom 6–7), large at municipal (zoom ≥ 8). Labels for FWI value and HFI class word become readable at medium and large sizes.
Station Popup
Click any pill to open a detail popup. It shows: the zone name and the actual source station name (e.g. Fort McMurray A), coordinates and km offset from the zone search origin, the data tier badge (CWFIS / SWOB / NWP), the observation timestamp, and the full FWI + HFI grid. When FWI was calculated using Van Wagner equations (SWOB/NWP tier), a Carry-over line shows the CWFIS station and date whose FFMC/DMC/DC values seeded the calculation — improving accuracy at the shoulder of fire season.
Operational Limitations
Read Before Use in Operations
- ▸Carry-over chain — in-season: When CWFIS provides FWI codes (approx. Apr–Oct), NRCan's daily carry-over chain is used as-is — FFMC, DMC, and DC reflect accumulated drying from previous days. This is operationally accurate.
- ▸Spring DC underinitialization — CWFIS airport stations: Many MSC airport stations in CWFIS use DC=15 at season open — the 1985 Van Wagner "no prior data" fallback — instead of the Lawson & Armitage (2008) overwinter carryover equation. This causes DC to be systematically too low at spring season open. For example, Edmonton Blatchford opens near DC=162 while properly-initialized stations in the same city (Edmonton International CS) show DC=296+. Pyra corrects this with a regional DC floor (
getRegionalDCFloor): coordinate-based spring minimums calibrated from April 2026 CWFIS well-initialized station data and Alberta Wildfire's AEF pmwx.csv network (which uses proper overwinter initialization). The floor is applied only March–June and only when the raw station value is below 70% of the zone floor. Edmonton zone floor: 250. SE prairies (Lethbridge/Medicine Hat): 450. Once the live chain accumulates past the floor naturally, the correction becomes a no-op. - ▸No carry-over — off-season: Outside fire season, CWFIS FWI codes are null. Van Wagner equations run against spring startup constants (FFMC 85, DMC 6, DC 300). Mid-season DC is systematically underestimated if the chain was not seeded from a prior day's values.
- ▸CWFIS physical sensor (primary): In-season, weather and FWI codes come from the nearest certified NRCan/MSC fire weather station — not NWP interpolation. Nearest station name and distance are shown in the UI. Micro-climate effects within the sensor footprint still apply.
- ▸NWP fallback (off-season / no station): When CWFIS has no station within ±2° or fails to respond, Open-Meteo NWP is used. NWP interpolates model output at the coordinate; valley inversions, terrain channelling, and lake influence are absent.
- ▸Wind direction — displayed, not applied to FBP: Wind direction (°) is sourced from CWFIS (
wdir) and Open-Meteo (wind_direction_10m) and shown on the station card. FBP outputs still assume head-fire conditions — ROS and HFI reflect the worst-case spread direction at observed wind speed. - ▸No slope aspect: FBP slope factor uses 0% for all stations. Actual HFI on slopes may be up to 2× higher (Butler 2007 cap). Mountain stations (Banff, Jasper, Hinton) are most affected.
- ▸Fuel type auto-assigned from NRCan 30m grid, user-overridable: Each station is pre-assigned a dominant FBP fuel type derived from the CWFIS
cffdrs_fbp_fuel_typesWMS layer (NRCan national 30m grid, Apr 2026). Method: modal fuel type within 5 km radius of each station coordinate. M1/M2 mixedwood codes mapped to C2 (boreal spruce dominant). Northern boreal airport stations where the sampled pixel returned agricultural grass were corrected to regional forest type. The fuel picker on the Home tab shows the derived type and can be overridden for any scenario. - ▸Situational awareness only: Suppression resource decisions require certified CWFIS station observations and interpretation by a qualified Fire Behaviour Analyst (FBA).
STANDARDS
About Pyra
Pyra is an open-source wildfire weather tool built for operational use by wildland firefighters, fire behaviour analysts, and emergency managers. It integrates live fire weather observations from the Canadian Wildland Fire Information System (CWFIS) with NRCan's Canadian Forest Fire Danger Rating System (CFFDRS) — combining real-time FWI codes from the operational carry-over chain with FBP System fire behaviour predictions across standard fuel types. Weather data flows through a three-tier hierarchy: CWFIS fire weather stations (pre-computed FWI chain), MSC SWOB real-sensor observations, and ECMWF IFS numerical forecast as a last resort. Station coverage includes Alberta (39 stations) and British Columbia (260+ stations grouped by Fire Centre). Built by Travis Kennedy, Claude, and Glenn. Free, open, no login required.