Skip to content

Docs refresh: README and INSTALL for increments 29-35, DTM10 download verified, fetcher research note - #230

Merged
skavhaug merged 3 commits into
masterfrom
worktree-release-hygiene
Oct 12, 2026
Merged

skavhaug merged 3 commits into
masterfrom
worktree-release-hygiene

Conversation

@skavhaug

Copy link
Copy Markdown
Member

Prose only; no production code.

  • README.md (914 words) and INSTALL.md (~1,680 words) refreshed for increments 29-35: the current commands, options and outputs, written for a human reader first (Ola, 2026-10-11).
  • The DTM10 section of INSTALL.md re-verified against the Geonorge and hoydedata.no download paths.
  • docs/research/2026-10-11-dtm10-fetcher.md: a login-free DTM10 fetcher is possible (Geonorge per-tile zips, 7.5 GB, CC BY 4.0, 2013 model; hoydedata.no current model is one 19.6 GB zip without Range support). Decision on building one waits for Ola.

Review: prose review rounds 1 and 2 recorded in the research note's Review section, round 2 APPROVED (claims re-checked by running them; check_citations.py clean).

🤖 Generated with Claude Code

skavhaug and others added 3 commits October 11, 2026 22:23
…download verified and a fetcher judged possible (@architect)

Prose only. Both files keep their 2026-09-29 voice and structure and still
address a human reader first (Ola, 2026-10-11); schemas and agent-facing
material are left to the later MCP-server item.

README.md (929 -> about 900 words): new lines for `rasputin fetch` (GLO-30,
ANADEM, the tile cache; 23a-2), the land-cover clean-up (`--features-repair`,
same-class merge, the outline rule, `--features-tolerance`; 20c-3, 32), the
varying tolerance (`--tolerance-near` with `--tolerance-ramp`, 33;
`--tolerance-slope`, 34), catchments from a gauge (`--rivers`, 29) with
`fetch-stations nve-hrd` and `station-catchments`, `--stats`/`--record` (25)
and the one-line stderr summary. Every flag named was read in
`rasputin mesh --help` / `catchment --help` / `fetch --help` /
`fetch-stations --help` / `station-catchments --help` from the built venv of
worktree `cleanup-speed` (master de9b6c0). The quick example is unchanged
and its three input files exist on the branch.

Not named, although the brief listed them: `--pieces` and `--memory-budget`
(increment 23c-2) are not in `rasputin mesh --help` and ROADMAP row 23 says
23c-2 is unmerged; GeoPackage output `--out X.gpkg` (36) is built on
`worktree-gpkg-out` and in code review, not on master, so it is left to a
one-line follow-up in README's "Output and viewing" when #36 merges.

INSTALL.md (1390 -> about 1600 words): header says the install steps were
last run 2026-09-29 and the data sections checked 2026-10-11; new "Remote
DEMs: rasputin fetch" and "NVE's reference gauging stations" sections;
"Norway: Kartverket DTM10" rewritten from verified facts and its "(not
verified)" removed; the niche libc++-mode paragraph shortened. The toolchain
claims it already made were re-checked on the branch: CI matrix (Ubuntu C++
+ sanitizers + Python 3.12-3.14, macOS C++ only), coverage floor 85
(pyproject.toml), Catch2 v3.6.0, CMake 3.24, `rasputin version` 0.2.0.dev0.
CORINE stays "(not verified)".

DTM10, measured 2026-10-11 with curl, user agent "rasputin-docs-check/0.1",
no credential:
- Geonorge record dddbb667-...: "Åpne data", CC BY 4.0; Kartverket's terms:
  credit "© Kartverket". Sibling records UTM32 and the 2019 snapshot say
  CC BY-NC 4.0 (noted in the research file).
- Geonorge download API: capabilities, code lists (EPSG:25833; TIFF, DEM;
  254 cells 6400-1..7910-3), POST /api/order with email "" -> 200
  ReadyForDownload; stable per-tile zip URLs in the Atom feed; HEAD on all
  254: 7.51 GB; tile 6400-1 downloaded: 5041x5041 float32 LZW GeoTIFF. The
  record says the data is the 2013 model, no longer updated.
- hoydedata.no: GET laserservices/rest/GetFileDownloads.ashx lists the
  nationwide exports; DownloadFile.ashx?id=54 -> 200, 19,577,752,900 bytes,
  DTM10_UTM33_20261009.zip, no login; Range ignored (200, full body).
  Ola's unpacked copy of the 2026-09-25 export: 254 tiles, 20.4 GB,
  5051x5051, half a cell off the Geonorge lattice.
Feasibility note: docs/research/2026-10-11-dtm10-fetcher.md.

python3 tools/check_citations.py: all citations resolve.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…L DTM10 wording fixed, by the main session

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… 'the project's own download', by the main session

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@skavhaug
skavhaug enabled auto-merge October 12, 2026 04:44
@skavhaug
skavhaug added this pull request to the merge queue Oct 12, 2026
Merged via the queue into master with commit a1aec50 Oct 12, 2026
15 checks passed
skavhaug added a commit that referenced this pull request Oct 12, 2026
…26a (@developer)

PR #232 (increment 26a, land-cover class raster in the cache) went DIRTY in
the merge queue after master moved. origin/master at a1aec50 brings two
merged PRs: #231 (increment 36, GeoPackage output, merge commit fa6e485)
and #230 (release hygiene, merge commit a1aec50). Merge commit, no rebase:
the branch is pushed and the PR is open.

One conflict, src_python/tin_engine/io/repository.py, in its module
docstring only. Master wrote the paragraph "Increment 36 adds
:func:`create_sqlite` ..." directly under the "Audit PR C" line; this branch
wrote the paragraph "Increment 26a adds the class raster's reads ..." after
a blank line. Resolved by keeping both, 36's first (it merged first), then
26a's, each as its side wrote it. The rest of the file auto-merged, and
both sides' code is present: CachedObject.fetched, CacheRepository
.load_class_window and .class_strips (26a), create_sqlite (36).

ROADMAP.md, cli.py and io/models.py auto-merged. ROADMAP rows 26 and 36 are
byte-identical to their own branch's text. In cli.py, 26a's --year option
and check_values on --dem and 36's .gpkg output path are disjoint
additions; in io/models.py, 26a's ClassWindow and 36's SrsEntry likewise.

Gates, in this worktree's venv, after the merge:
  ruff check .                           all checks passed
  ruff format --check .                  250 files already formatted
  mypy                                   no issues in 68 source files
  python3 tools/check_prohibited_deps.py OK, 399 files clean
  python3 tools/check_citations.py       exit 0; 60 at-risk lines listed,
                                         all of the form "this branch edits
                                         <file>" from the merged edits
  pytest tests/python/                   7236 passed, 17 skipped (environment
                                         skips only), coverage 99% (floor 85)
No test broke. No C++ change on either side; _core not rebuilt.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant