skitur turns a ski touring GPX track into a single HTML report.
It is built for side-by-side route comparison. When two routes both look plausible, the report helps reveal differences in movement style, terrain steepness, and directional character.
Note: USE AT YOUR OWN RISK. Winter travel involves inherent risks of injury and death. Skitur provides automated terrain analysis provided "AS IS" and "WITH ALL FAULTS" without warranties of any kind, including accuracy or fitness for a particular purpose. This software is for informational purposes only and does not constitute professional advice. This software is not a substitute for official forecasts, education, or field judgment.
Install:
pip install -e .Generate a report:
python -m skitur Twin_Lakes.gpx -o Twin_Lakes_report.htmlIf -o is omitted, output defaults to <gpx_stem>_report.html.
Terms used throughout:
- track slope: slope along the route itself (movement)
- ground slope: slope of terrain under/around the route
The map combines three layers:
- route line and color: track slope angle (what the skier is skiing)
- background shading: ground slope angle (what the terrain is doing)
- contours: terrain shape and flow
Reading them together gives quick signal:
- steep line + mellow shading usually means direct climbing/descending movement
- mellow line + steep shading usually means traversing or sidehilling
- steep line + steep shading means concentrated demanding terrain
Color scales are fixed across reports, so a given color means the same slope range every time.
These two charts answer different questions:
- Track slope distribution is direction-aware (uphill vs downhill movement)
- Ground angle distribution is not direction-split (terrain steepness only)
Use this pair to understand directional concentration:
- Slope by aspect shows where steepness clusters by direction
- Fraction on aspect shows directional share split into < 30° (green) and ≥ 30° (red)
A simple way to read it:
- inspect steepness concentration in Slope by aspect
- check total directional share in Fraction on aspect
Both charts allow you to view specifically >30° slopes separately. Hover over a wedge for numbers.
At a high level:
- each segment gets movement-based ratings
- those ratings are adjusted for underlying ground steepness
- the result is combined with the avalanche exposure rating metric into one final score
This rating rewards controllable, skiable, thrilling downhill movement over flatter routes and very steep descents.
- gentle downhill gets credit, but not the highest rating
- moderate downhill receives the best rating
- very steep downhill falls off quickly
- once downhill angle is very steep, the rating becomes negative
This rating rewards sustainable climbing angles and penalizes steeper climbs.
This multiplier adjusts "downhill fun" and "uphill doability" ratings by underlying terrain steepness.
On gentler ground, uphill/downhill movement keeps full credit. As ground steepness increases, ratings are scaled down. On very steep ground, only a small fraction is retained. (Negative fun and doability ratings are not adjusted.) Sidehilling sucks.
This is based on the ground slope, not a field forecast. Current conditions aren't used. The metric is approximate.
It combines both:
- the ground you are on: percent of track on 30°-45° ground (30-45 degree ground)
- the ground above you: uphill tracing from the track location for 500 m, the ground is monitored for slopes between 30°-45°. This is an extremely rough metric.
The final score is blended as:
- 45% downhill quality
- 25% uphill quality
- 30% avalanche exposure rating metric
(After blending, the score is forced to be between 0 and 100.)




