Identifying where and when avalanches are likely
2026-02-27
On 1 February 2003, seven experienced backcountry skiers died in the Revelstoke area of British Columbia when an avalanche released on a slope of approximately 38°. They were skilled, equipped, and had assessed the conditions carefully. But they were in avalanche terrain — a slope in the critical 30–45° angle range, with a recent wind slab loaded from the prevailing southwest, above a convex rollover that concentrated stress — and the snowpack failed. Their deaths, and those of the approximately 15 people killed by avalanches in Canada in an average year, share a common geography: they happen in terrain that can be identified on a map long before anyone enters the field.
Avalanche terrain analysis is the systematic application of terrain parameters — slope angle, aspect, elevation, shape, and the presence of anchors like trees and rocks — to identify which parts of a mountain are likely to produce, channel, or be reached by avalanche runout. Unlike snowpack assessment, which changes day to day and requires specialist training to interpret, terrain is fixed. A GIS analysis of a DEM can identify all slopes between 30° and 45° facing a given aspect range, trace the runout zones below them using flow routing algorithms, and produce a hazard map that remains valid for decades. This model builds that analysis, derives the slope thresholds from snow mechanics, and implements the ATES (Avalanche Terrain Exposure Scale) classification used across North America.
Is this slope safe to ski, or will it avalanche?
Avalanche terrain analysis identifies hazardous areas based on:
Terrain factors (unchanging): - Slope angle (30-45° = avalanche terrain) - Aspect (wind loading, solar exposure) - Elevation (snowpack depth/stability varies) - Terrain shape (convex vs. concave) - Anchors (trees, rocks that hold snow)
Snowpack factors (time-varying): - Recent snowfall (loading) - Wind (slab formation) - Temperature (weak layer formation) - Layer structure (buried weak layers)
Human factors: - Route choice - Group management - Decision-making
The mathematical question: Given a DEM and snowpack conditions, how do we classify terrain by avalanche risk and predict where avalanches might run?
Avalanche release zones:
\theta_{\text{start}} = 30-45°
Why this range?
Below 30°: Snow doesn’t slide (friction too high)
30-35°: Common for wet loose avalanches
35-40°: Peak slab avalanche frequency
40-45°: Still avalanche, but less snow accumulates (sloughs off)
Above 50°: Too steep to hold deep snowpack
Most dangerous: 38° (statistically most fatal avalanches)
1. Loose Snow Avalanche (Sluff) - Point release, fan-shaped - Surface snow only - Low danger unless terrain trap
2. Slab Avalanche - Cohesive layer breaks as unit - Wide fracture line - Most deadly (accounts for 90% of fatalities) - Requires weak layer beneath slab
3. Wet Avalanche - Warm temperatures or rain - Full-depth release (to ground) - Heavy, destructive
Avalanche Terrain Exposure Scale:
Simple: - Primarily < 30° slopes - Some avalanche terrain nearby - Multiple route options - Risk: Low
Challenging: - 30-35° slopes common - Exposure to avalanche paths - Limited route options - Risk: Moderate
Complex: - Multiple 35-45° slopes - Overhead hazard (terrain traps below steep slopes) - Few safe zones - Risk: High
Gradient magnitude (from Model 8):
|\nabla z| = \sqrt{\left(\frac{\partial z}{\partial x}\right)^2 + \left(\frac{\partial z}{\partial y}\right)^2}
Slope angle:
\theta = \arctan(|\nabla z|)
In degrees:
\theta = \arctan(|\nabla z|) \times \frac{180}{\pi}
Finite difference (3×3 window):
\frac{\partial z}{\partial x} \approx \frac{(z_{i,j+1} - z_{i,j-1})}{2\Delta x}
\frac{\partial z}{\partial y} \approx \frac{(z_{i+1,j} - z_{i-1,j})}{2\Delta y}
Based on slope angle:
\text{Hazard} = \begin{cases} \text{Non-avalanche} & \theta < 30° \\ \text{Low hazard} & 30° \leq \theta < 35° \\ \text{Moderate hazard} & 35° \leq \theta < 40° \\ \text{High hazard} & 40° \leq \theta < 45° \\ \text{Extreme steep} & \theta \geq 45° \end{cases}
Maximum runout distance:
Alpha angle from avalanche start to stop:
\alpha = \arctan\left(\frac{z_{\text{start}} - z_{\text{stop}}}{d_{\text{horizontal}}}\right)
Empirical: - Small avalanches: \alpha \approx 28-30° - Medium avalanches: \alpha \approx 25-27° - Large avalanches: \alpha \approx 18-22°
Runout zone: All terrain downslope from start zone where \alpha > \alpha_{\text{threshold}}
Example: Avalanche starts at 3000m elevation - Alpha = 25° - Stop when: \arctan(\Delta z / d) = 25° - If horizontal distance 1000m: \Delta z = 1000 \times \tan(25°) = 466 m - Stops at: 3000 - 466 = 2534m elevation
Features that increase consequence:
Gullies/Couloirs: - Funneling effect (deep debris) - Burial depth increases - Hard to escape
Cliffs: - Trauma risk - Carried over cliff by avalanche
Trees (dense): - Trauma from impact - Difficult rescue
Flat areas below steep slopes: - Appears safe but runout zone - “Terrain trap”
Risk multiplication:
R_{\text{total}} = P_{\text{avalanche}} \times C_{\text{terrain trap}}
Where C > 1 for terrain traps (amplifies consequence).
Problem: Classify avalanche terrain for ski route planning.
DEM elevations (meters, 30m cell size):
j=0 j=1 j=2 j=3 j=4
i=0 2900 2880 2850 2810 2760
i=1 2920 2900 2870 2820 2770
i=2 2940 2920 2890 2840 2790
i=3 2960 2940 2910 2860 2810
Calculate slope angle at cell (1,1).
Step 1: Finite differences
At (1,1):
\frac{\partial z}{\partial x} \approx \frac{z[1,2] - z[1,0]}{2 \times 30} = \frac{2870 - 2920}{60} = \frac{-50}{60} = -0.833
\frac{\partial z}{\partial y} \approx \frac{z[2,1] - z[0,1]}{2 \times 30} = \frac{2920 - 2880}{60} = \frac{40}{60} = 0.667
Step 2: Gradient magnitude
|\nabla z| = \sqrt{(-0.833)^2 + (0.667)^2} = \sqrt{0.694 + 0.445} = \sqrt{1.139} = 1.067
Step 3: Slope angle
\theta = \arctan(1.067) = 46.9° \times \frac{180}{\pi} = 46.9°
Wait, that’s too high. Recalculate:
\theta = \arctan(1.067) \text{ radians} = 0.818 \text{ rad}
\theta = 0.818 \times \frac{180}{\pi} = 46.9°
Actually this is correct! The slope is 46.9° - extremely steep, minimal snow accumulation.
Step 4: Classification
\theta = 46.9° > 45° → Extreme steep
Interpretation: This slope is: - Too steep for most slab avalanches (snow sloughs off) - Potential loose snow avalanches - Not prime avalanche terrain (not enough snow accumulates) - But dangerous for climbing/skiing (rockfall, sluffs)
Step 5: Calculate for (2,2) as well
\frac{\partial z}{\partial x} = \frac{2840 - 2940}{60} = -1.667
\frac{\partial z}{\partial y} = \frac{2910 - 2870}{60} = 0.667
|\nabla z| = \sqrt{2.778 + 0.445} = 1.796
\theta = \arctan(1.796) = 60.9°
Extremely steep cliff!
Below is an interactive avalanche terrain classifier.
<label>
Terrain complexity:
<select id="terrain-type">
<option value="simple">Simple (rolling terrain)</option>
<option value="moderate" selected>Moderate (varied slopes)</option>
<option value="complex">Complex (steep alpine)</option>
</select>
</label>
<label>
Show hazard zones only:
<input type="checkbox" id="show-hazard-only">
</label>
<label>
Show aspect:
<input type="checkbox" id="show-aspect">
</label>
<div class="ava-info">
<p><strong>Hazard distribution:</strong></p>
<p>Non-avalanche: <span id="pct-safe">--</span>%</p>
<p>Avalanche terrain: <span id="pct-hazard">--</span>%</p>
<p>Extreme steep: <span id="pct-extreme">--</span>%</p>
</div>
<canvas id="ava-terrain-canvas" width="700" height="350" style="border: 1px solid #ddd;"></canvas>
<p><strong>Colors:</strong>
<span style="color: #2E7D32">■ Safe (<30°)</span>
<span style="color: #F57F17">■ Low (30-35°)</span>
<span style="color: #E64A19">■ Moderate (35-40°)</span>
<span style="color: #B71C1C">■ High (40-45°)</span>
<span style="color: #4A148C">■ Extreme (>45°)</span>
</p>
Try this: - Simple terrain: Mostly green (safe slopes) - Moderate terrain: Mix of safe and hazard zones - Complex alpine: More red/purple (steep avalanche terrain) - Show hazard only: Gray out safe terrain, highlight danger zones - Show aspect: Right panel shows slope direction (N=blue, S=red, E=yellow) - Color code: Green=safe, Yellow/Orange/Red=avalanche terrain, Purple=extreme - Notice: Most avalanche terrain clusters in gullies and ridge flanks!
Key insight: Terrain classification enables route planning—stay in green zones, minimize time in red zones, avoid terrain traps!
Decision matrix:
| Terrain | Hazard Level | Action |
|---|---|---|
| Simple (<30°) | Low | Safe travel |
| Challenging (30-35°) | Moderate | Assess snowpack, spacing |
| Complex (35-45°) | High | Expert only, stability tests |
| Extreme (>45°) | Variable | Sluff risk, limited accumulation |
Spacing: - Simple: Group together - Challenging: 50m spacing - Complex: One at a time, safe zones
North aspects (0-45°, 315-360°): - Cold, persistent weak layers - Longer avalanche season - Higher danger in cold climates
South aspects (135-225°): - Warm, quicker stabilization - Wet avalanches in spring - Lower danger in winter, higher in spring
East/West (45-135°, 225-315°): - Moderate - Wind effects important
Lee slopes (downwind): - Wind-loaded slabs - Very dangerous
Danger scale: 1. Low 2. Moderate 3. Considerable 4. High 5. Extreme
Terrain selection by danger:
| Danger | Terrain |
|---|---|
| Low | All terrain OK (with normal caution) |
| Moderate | Avoid wind-loaded slopes >35° |
| Considerable | Simple terrain only |
| High | Avoid all avalanche terrain |
| Extreme | Stay home |
Coarse DEM (30m): - Misses small gullies (terrain traps) - Smooths cliffs - Underestimates slope on convex features
Example: 30m DEM shows 35° slope, reality is 42° rollover.
Solution: Use highest resolution DEM (1-3m LiDAR ideal).
Terrain alone insufficient:
Wind loads lee slopes with thick slabs.
Example: - West aspect, 38° slope - Westerly winds → not wind-loaded (windward) - Lower danger than expected from slope alone
vs:
Solution: Wind models, weather data, field observation.
Most avalanche fatalities:
Victim or group member triggered avalanche (90%+).
Terrain selection just first step.
Also need: - Snowpack assessment - Decision-making skills - Communication - Rescue skills
Terrain analysis ≠ safety guarantee.
Green zones below steep slopes = terrain traps.
Example: - Flat bench at 2500m (10° slope, “safe”) - Above: 600m vertical of 38° terrain - Runout zone extends to bench - Extremely dangerous despite being “safe” slope angle
Solution: Alpha angle runout modelling.
Canadian system:
Simple (Green): - Exposure to low-angle or primarily forested terrain - Some forest openings may involve steeper terrain - Many options for route finding with overhead hazard minimal - Avalanche terrain is avoidable
Challenging (Blue): - Exposure to well-defined avalanche paths, starting zones, or terrain traps - Options exist to reduce or eliminate exposure with careful route finding - Requires knowledge of avalanche terrain and winter travel skills
Complex (Black): - Exposure to multiple overlapping avalanche paths or large expanses of steep, open terrain - Multiple avalanche starting zones and terrain traps below - Minimal options to reduce exposure - Requires extensive avalanche knowledge and winter travel skills
Implementation: Requires expert judgment + terrain analysis.
Shear stress vs. shear strength:
\tau = c + \sigma \tan\phi
Where: - \tau = shear strength - c = cohesion - \sigma = normal stress - \phi = internal friction angle
On a slope:
Driving stress (downslope):
\tau_d = \rho g h \sin\theta
Resisting stress:
\tau_r = c + \rho g h \cos\theta \tan\phi
Failure when: \tau_d > \tau_r
Factor of safety:
FS = \frac{\tau_r}{\tau_d} = \frac{c + \rho g h \cos\theta \tan\phi}{\rho g h \sin\theta}
Stable: FS > 1
Failure: FS < 1
For cohesionless material (c = 0):
FS = \frac{\tan\phi}{\tan\theta}
Failure when: \theta > \phi
Dry snow: \phi \approx 30-40° → slopes >40° unstable
Wet snow: \phi \approx 20-30° → slopes >30° unstable
This explains why avalanches occur on 30-45° slopes!