Ski Slope Analyzer
Measures ski run steepness from OpenSkiMap data and USGS elevations
Ski Slope Analyzer answers the question trail maps dodge: how steep is this run, really? It takes the runs file published by OpenSkiMap, samples elevation every 10 meters along each run, and reports the maximum slope, the distance-weighted average, and the share of the run above 15 and 20 degrees. From those figures it assigns its own green, blue, black, or expert rating, which can be compared with the resort’s.
The main workflow is: load runs.geojson once (the Electron version indexes it into SQLite so the large file is only parsed on import), pick a resort by name or state, choose which difficulty levels to include, and run the analysis. Results are saved per resort, so a resort opened later shows its runs immediately. Clicking a run shows its stats, an elevation profile with segments colored by difficulty, a slope distribution chart, and links to the run on OpenSkiMap and OpenStreetMap.
Elevations come from the USGS Elevation Point Query Service by default. Pointing the app at a folder of 1/3 arc-second DEM tiles from the USGS National Map makes analysis roughly 70 times faster, and the app falls back to the API for any points the local tiles do not cover. Because a full resort can take a while over the API, the app can send a Pushover notification when a run finishes.
The original is a Streamlit script with Plotly charts; the Electron port keeps the same analysis and adds pinned favorite resorts, editable run type filters in the results view, and a rebuild command for the run database.