Slovakia pilot: ZBGIS mask + SAŽP CORINE cover (no provider, no credential) #216
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#216
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?
Gated on #213 (the catalogue). Mask plus cover for Slovakia.
Slovakia's pilot is unblocked even though the rest of the country is not
The catalogue found ZBGIS's attribute layers behind a
/queryendpoint that is currentlyload-shedding (HTTP 503). Neither pilot layer touches it:
https://zbgisws.skgeodesy.sk/zbgis_administrativne_hranice_wfs/service.svc/get→ feature type
sr, exactly one polygon, the Slovak Republic. Anonymous, verifiedlive. (
obec= 2 927,okres,krajare in the same service for later.)https://geos.sazp.sk/geoserver/corine/clc2018/wfs→corine:clc2018,22 775 polygons, CC BY 4.0, anonymous, with
code_18— the same column nameGreece's CORINE delivery uses. So
conf/sk/02-cover.yamlis the Greece/Finland identityCASEalmost verbatim, and Slovakia needs neither theclms:provider nor anycredential — the national environment agency serves CORINE directly.
That makes this the cheapest pilot of the four to build, and worth landing early even
though Slovakia is the hardest country of the four to finish.
Two Slovakia-specific things to get right:
rather than assuming EPSG:4326.
consistency with Greece and Finland, and note 2024 as a future upgrade for all CORINE
countries at once rather than a Slovak decision.
The three things the Greece pilot got wrong — do not repeat them
from the national boundary source and stop.
conf/world.yamlcarves Natural Earth withNatural Earth's own admin-0 polygons and reads only the
countrycode frommap_country_mask_0, never its geometry (R144). Do not extend the mask over water to"fix" grey background land at a coast — Greece burned two rounds on exactly that, and the
cause was in
conf/world.yamland applied to every country (#184, #186).tautologically true —
background_landis Natural Earth minus the carve — so it passesfor any mask at all, including an empty one. The carve's real checks are R144/R145/R146 on
conf/world.yaml; a country config does not need its own.table explicitly, even when the mask happens to be the same geometry, or the check
silently stops meaning anything the day that changes.
Deliverables
conf/<cc>/per R17:base.yaml,downloads.yaml,staging.yaml,acceptance.yaml,01-country_mask.yaml,02-cover.yaml(build order is lexical),country: <cc>(R16).import-<cc>target chainingimport-world(R107) and afetch-<cc>paththrough the importer's declared-downloads route (R10).
conf/fi/01-country_mask.yamlpattern), R34 (cover gapless against the land table,1% budget), R22 (coarse-tier vocabulary equals the level-1 rollup tier), R120 (no NULL
cover_class), and a decoded tile (importer tiles --check).make acceptancetally in the PR — not ad-hoc SQL (AGENTS.md).Verify against the live database before committing: partitions at every zoom, row counts,
NULLs in the columns that matter, a decoded tile.