Terrain-intelligence viewer for hunting and fishing in Norway
- TypeScript 96.9%
- Shell 1.7%
- Dockerfile 0.7%
- CSS 0.6%
The first cut classified pool/riffle from gdaldem slope at the channel with thresholds in DEGREES (pool <4°, fast >=9°). A 4° water surface is a 7% grade (a cascade), so on any real river every cell read "pool", nothing read fast, no seams or riffles existed and the layer was a uniform featureless ribbon. Now: sample the DTM along each Elvenett polyline (25 m stations, one batched gdallocationinfo -wgs84 call), enforce downstream monotonicity (a water surface only drops — strips DTM/bank noise), take the drop over a ±100 m window as the reach gradient in PERCENT, and classify with physically real thresholds (pool <=0.25%, riffle 0.45-6.5%, fast >=1.3%). gdaldem slope + warp are gone; zero-grid templates come from gdal_create. Also: confluences split major/minor (a Strahler>=2 tributary mouth vs a roadside-ditch trickle at half strength), and the ramp is recalibrated to the measured distribution (flat-pool plateau ~34, multi-signal lies 55-70) with a ribbon-legible low end — verified on the Begna at Fønnhus: gorge reads blue, pools calm green, pool-head seams + tributary mouths pop orange/red. exec.run() gains an `input` option (stdin) for the batched point sampling. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| .github/workflows | ||
| backend | ||
| docs | ||
| frontend | ||
| scripts | ||
| shared | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| fish_readme.md | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.base.json | ||
| tsconfig.json | ||