Data build scripts

One-off / occasional scripts that fetch source data and produce the maps/data/* and data/* artifacts the site ships. Run them from the repo root, e.g. python3 tools/build-stream-metrics.py.

External dependencies

Tool Needed by Install
python3 all *.py builders system
node all *.js builders system
tippecanoe build-stream-metrics.py (vector-tiles the gradient/width overlay) brew install tippecanoe

tippecanoe turns GeoJSON into .pmtiles vector tiles. It is required to regenerate maps/data/kootenay-stream-metrics.pmtiles; the map loads that file via the pmtiles protocol so the browser only downloads the tiles in view. (The existing fwa-streams.pmtiles / beats-basin.pmtiles are also vector tiles but were produced outside this repo.)

Map-data builders

Script Output Source
build-drift-suitability.py kootenay-drift-suitability.geojson American Whitewater GraphQL (whitewater ratings overlay)
build-stream-metrics.py kootenay-stream-metrics.pmtiles bcfishpass streams_vw (per-segment gradient, channel width, mean annual flow) → tiled with tippecanoe
build-canyon-hazards.py kootenay-canyon-hazards.geojson bcfishpass streams_vw (order 5+) scored with SRTM wall-rise via dem.py — canyon-confinement hazard tiers (amber ≥40 m, red ≥80 m, validated against American Whitewater grades); first run caches ~230 MB of DEM tiles in raw/dem/
build-classified-waters.py kootenay-classified-waters.geojson B.C. Reg. 125/90 classified waters
build-stocking.js kootenay-stocking.geojson FFSBC stocking records
build-lake-catalog.js lake-catalog.json lake catalogue

See each script's module docstring/header for parameters (bounding box, filters, etc.).