Denmark pilot: INSPIRE administrativeunit mask + CORINE cover #218
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#218
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 #211 (the catalogue). Mask plus cover for Denmark, both from the anonymous
Klimadatastyrelsen INSPIRE route — no token needed for the pilot.
https://api.dataforsyningen.dk/ogcapi/features/au_inspire/collections/administrativeunit/items→ 105 units; filter
nationallevel = 1stOrderfor the country polygon(
name_gn_spell_spellofna_text = "Danmark",nationalcode = DK). Verified live,anonymous, CC BY 4.0. This is also the clean answer to the Greenland/Faroes scope
question — they are separate country codes, not Danish administrative units in this
dataset, so no filtering hack is needed. Say that in the config comment so a later reader
does not go looking.
clms:provider, identity mapping (R116),NUTS0
DK. Denmark's ownlc_inspire/landcoverunit(576 118 polygons, anonymous,CC BY 4.0) is far finer, but its classification is a URI scheme into the Danish
grunddatamodel that must be enumerated and argued class by class in the
conf/se/conf/plstyle — that is the later upgrade, not the pilot.Denmark-specific
arrives.
and expect Natural Earth's 1:10 m coastline to disagree with it substantially at that
scale. That disagreement is a
conf/world.yamlmatter, not a Danish one — see thewarning below and #186.
sdfe.dk,sdfi.dkandkds.dkall still answer. Pin whichever host the metadata record itself gives.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.