Terrain-intelligence viewer for hunting and fishing in Norway
  • TypeScript 96.9%
  • Shell 1.7%
  • Dockerfile 0.7%
  • CSS 0.6%
Find a file
Gjessing1 f7dfe2fc5b
All checks were successful
docker / build-and-push (push) Successful in 2m27s
docker / deploy (push) Successful in 16s
feat: river-score from real along-channel gradient — pools/riffles/seams now exist
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>
2026-07-17 10:23:00 +00:00
.forgejo/workflows fix: DTM ingest via direct WCS 1.0.0; native Android app loads locally 2026-06-20 21:09:12 +00:00
.github/workflows feat: single-image deploy — serve frontend from backend, add CI 2026-06-20 12:32:53 +00:00
backend feat: river-score from real along-channel gradient — pools/riffles/seams now exist 2026-07-17 10:23:00 +00:00
docs docs: roadmap — fishing direction is a 3-4 spot shortlist, keep model simple 2026-06-22 22:20:29 +00:00
frontend feat: river fishing model (river-score) — Elvenett + DTM channel gradient 2026-06-22 16:55:38 +00:00
scripts fix: DTM ingest via direct WCS 1.0.0; native Android app loads locally 2026-06-20 21:09:12 +00:00
shared feat: river fishing model (river-score) — Elvenett + DTM channel gradient 2026-06-22 16:55:38 +00:00
.dockerignore feat: single-image deploy — serve frontend from backend, add CI 2026-06-20 12:32:53 +00:00
.editorconfig chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00
.env.example feat: wind & weather from MET Norway in stand-insight card 2026-06-21 15:07:33 +00:00
.eslintrc.cjs chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00
.gitignore ci: harden APK scripts (no-sudo JDK), default server.url, ignore android/ 2026-06-20 19:03:37 +00:00
.nvmrc chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00
.prettierignore chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00
.prettierrc chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00
docker-entrypoint.sh feat: single-image deploy — serve frontend from backend, add CI 2026-06-20 12:32:53 +00:00
Dockerfile feat: phase 6 vector identify + phase 7 capacitor/offline downloads 2026-06-20 18:30:03 +00:00
fish_readme.md feat: river fishing model (river-score) — Elvenett + DTM channel gradient 2026-06-22 16:55:38 +00:00
package-lock.json feat: hunt-score layer, map scale+ruler, mobile safe-area & GPS (Phase 12) 2026-06-21 09:10:54 +00:00
package.json feat: single-image deploy — serve frontend from backend, add CI 2026-06-20 12:32:53 +00:00
tsconfig.base.json chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00
tsconfig.json chore: scaffold monorepo, shared schema and maplibre pwa shell 2026-06-20 11:26:21 +00:00