Greece: peaks — EU-DEM-derived spot heights into the shared peaks layer #206
Labels
No labels
blocked
claude-wip
map-report
map:is
map:se
needs-review
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
art/ismap#206
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Greece: peaks — EU-DEM-derived spot heights into the shared peaks layer
Scope: Greece's
peakspartition of the sharedmap_peaks_<z>tables, closing the last terrain gap where Iceland has data and no one else. (Siblings: Sweden #101, Finland #108, and the Greece contours issue.)The source: EU-DEM v1.1 (Copernicus, 25 m — the European Commission's pan-European DEM), fetched for Greece through the existing
clms:provider (the same OAuth flow that already fetched the CORINEcoverlayer). The research gate (done):importer/dem.go(issue #108) is a native Go GeoTIFF COG reader that extracts local-maximum spot heights (radius de-clustering + elevation floor) — the exact shape the sharedpeakscontract wants (geom + elevation, no name). The importer's first raster stage is reusable as-is; EU-DEM tiles are the same tiled/LZW COG shape family, though the CRS and elevation units must be verified against dem.go's assumptions (Finland: KKJ/EPSG:2393, decimetres — EU-DEM is likely EPSG:3035/3857 and whole metres; if the format differs enough, extend dem.go to a shared generic tile reader rather than duplicating it).Plan:
conf/gr/downloads.yamlas aclms:entry (dataset_id/download_id for EU-DEM v1.1, NUTSEL— the worker must verify the CLMS API's EU-DEM identifiers and per-NUTS download shape; EU-DEM is distributed per 1°×1° sheet on the portal, so the NUTS-crop pattern may not apply and a per-sheet glob may be needed — verify against the CLMS API docs and the existing clms.go flow before committing).dem.go's local-maxima stage for thepeakspartition — parameters (radius/floor) tuned for Greek relief (Olympus 2 917 m, Pindus, Taygetos, Crete's Lefka Ori — the floor/thinning cadence should keep the high summits at coarse zoom like Iceland/Sweden/Finland).conf/gr/NN-peaks.yaml(extends: peaks), with acceptance tests: the shared R119/R120 plus Greece-specific claims (the summit ladder — Olympus is Greece's highest and must appear at coarse zoom; a NULL-elevation check).Verify against the live database: per-zoom counts, NULLs, partitions at every zoom, a decoded tile,
make acceptance. Cite R-numbers from docs/country-requirements.md. Updatedocs/country-gr.md's layer-by-layer verdict table with the new row.Blocked at the source — EU-DEM v1.1 is retired from every official channel (verified 2026-08-21). No code written.
The issue's premise — "EU-DEM v1.1 fetched for Greece through the existing
clms:provider (the same OAuth flow as CORINE)" — does not hold, and it was never a CLMS-API dataset:@search?portal_type=DataSetwas exhausted (all 241 datasets, 3 batches) plusSearchableTextqueries (eudem,EU-DEM,digital elevation,elevation model): no EU-DEM/COP-DEM dataset exists, so there is nodataset_id/download_idfor aclms:entry and thenuts:crop cannot apply. EU-DEM predates the CLMS 2.0 download API.published-files.eea.europa.euandelevationeu.eea.europa.euare NXDOMAIN; the EEA EU-DEM WCS is 404.eudem_dem_5deg_*.tifelevation tiles were never archived (CDX verified). A non-official archive would fail R2/R10 anyway.Recommendation — this needs a source decision, not an implementation:
clms:flow — a newimporter/fetcher plus adownloads.yamlentry for the ~4–6 GLO-30 tiles over Greece, not a per-NUTS crop./10rounding and the 3200-cell (80 km) tile-grid halo/ownership offsets are hardcoded indem.go; COP-DEM is 30 m, whole metres, EPSG:4326/3857, so each becomes ademPeaksConfigfield.No commits to push, no PR. Handing the source decision back.
Maintainer decision (2026-08-21): approve COP-DEM GLO-30 (the official EU successor to the retired EU-DEM) as Greece's terrain source, fetched through a new CDSE S3/STAC OAuth provider. Re-interprets the #84 line: EU-official (Copernicus), not global-vendor. dem.go generalization to 30 m / whole-metre / EPSG:4326 is in scope. Unblocked.
Blocked at the credential — all the mechanism landed on
issue-206-gr-peaks-cop-dem. No PR (there is nothing to import until the credential exists), but the branch is pushed and reviewable.What is done and verified
importer/cdse.go): mints a Bearer token at the CDSE realm endpoint (client-credentials or password grant) and signs each S3 object GET with AWS SigV4. Registered in the fetch/list plumbing, the include merge and theneededFilesglob matching.importer list conf/gr cdseshows all 54 orders.importer/dem.gogeneralized (not copied): COP-DEM's shape (Float32, Deflate+predictor-3, whole metres, 1/3600° EPSG:4326, 3600-cell grid) isdem_peaks:config; the dem25m shape stays the defaults. Verified on the real dem25m tiles: the generalized reader reproduces the documented FI extraction exactly — 26 296 peaks, 885 ≥ 500 m.cdse:orders (one per 1° GLO-30 tile the land outline intersects), thegr_dem_peaksstaging entry, andconf/gr/10-peaks.yaml(extends: peaks, z13 ≥ 800 / z11 ≥ 1500, three acceptance tests that skip until the partition exists). Docs updated (docs/country-gr.mdverdict + catalogue + a Peaks section,importer-cli.md,secrets.example.yaml).make build,make test, config-check for all five configs,make acceptance→ 63 test(s): 59 passed, 0 failed, 3 skipped, 1 not run (the 3 skips are the new GR peaks tests).Why it is blocked (and precisely what is needed)
CDSE's S3 endpoint is not anonymous (403 without a token, verified live 2026-08-21); the token endpoint rejects empty credentials; the STAC catalogue does not list COP-DEM; and there is no
cdseblock inconf/secrets.yaml(or anywhere on this machine). To unblock:Then
make fetch-grandimporter import conf/gr --layer peaksrun the whole pipeline. The one thing the first live fetch must confirm is the SigV4 signing form (token-as-S3-credential vs the S3 keys); the unit tests lock the mechanics.Two findings worth knowing
gr_perifereies; the identical product's public AWS copy lists 1036 MB for exactly these 1° cells). The config declares all 54.map_peaks_14(48+ min); I terminated that dead session so acceptance could run. No leftover locks.Maintainer pause (2026-08-21): implementation paused while the data license of COP-DEM/GLO-30 and the contour/peak generation approach are reviewed. The mechanism branch (issue-206-gr-peaks-cop-dem) stays pushed and unmerged; the only missing piece is the cdse: credential block in conf/secrets.yaml. Not a rejection — a hold for review. #207 waits on this decision.