Cover vocabulary runs 13 to 32 classes across countries; two have no wetland at all #83

Open
opened 2026-08-09 10:35:58 +00:00 by art-bot · 2 comments
Collaborator

Found auditing every country against docs/country-requirements.md (#77). Violates R22 (every enum value has an explicit rollup or a written exemption) and R44 (map a country's classes against the decisions already made for the same real-world concept).

What the data says

Distinct cover_class values at z13:

country classes notable absences
Iceland 32 —
Finland 29 —
Poland 19 no wetland class at all
Sweden 13 no wetland class, no pasture, no moor, no bare rock, no beach

Sweden puts 1,900,090 polygons — its single largest class by count — into natural_grassland, and Poland puts 1,312,312 into pasture. The two countries are describing similar ground with different words.

And at z3, where the rollup should leave exactly CLC's five level-1 classes:

cover_z3 fi -> agricultural, artificial, nature, water, wetland
cover_z3 is -> glacier, nature, water, wetland          (no agricultural, no artificial)
cover_z3 pl -> agricultural, artificial, nature, water  (no wetland)
cover_z3 se -> agricultural, artificial, nature, water  (no wetland)

glacier for Iceland is the documented deliberate exemption from #13. The rest are not documented anywhere.

Why it matters

The palette is keyed on the full CORINE vocabulary rather than on what any one country imports (R116), so the style is ready for all of it — this is a mapping gap, not a rendering gap. But a map where Sweden is grassland and Poland is pasture along the same latitude is a cross-country consistency failure of exactly the kind R44 exists to catch, and the reason #77 says vocabulary alignment "is a thing you have to do on purpose".

Scope

Three separable pieces, in the order they are worth doing:

  1. Sweden's missing wetland. Already open as #14 — Topo 10 sankmark is an overlay, not a coverage class, so R35 applies and it must be carved out rather than unioned in. Do not close this issue without it.
  2. Poland's missing wetland. Check whether BDOT10k carries a marsh/bog class among the twelve pokrycie terenu classes, and whether it is one we fetch (R6).
  3. The natural_grassland / pasture / moor boundary. Put the four countries' source conditions side by side and confirm they describe the same real-world concept, per R44's check. This is a review, not a code change, and its output belongs in conf/common.yaml next to the enum.

Acceptance

Every country's z3 cover produces exactly the tier's defined vocabulary or has a written exemption; the grassland/pasture mapping decision is recorded in conf/common.yaml.

Found auditing every country against `docs/country-requirements.md` (#77). Violates **R22** (every enum value has an explicit rollup or a written exemption) and **R44** (map a country's classes against the decisions already made for the same real-world concept). ## What the data says Distinct `cover_class` values at z13: | country | classes | notable absences | |---|---|---| | Iceland | 32 | — | | Finland | 29 | — | | Poland | 19 | no wetland class at all | | Sweden | 13 | no wetland class, no pasture, no moor, no bare rock, no beach | Sweden puts 1,900,090 polygons — its single largest class by count — into `natural_grassland`, and Poland puts 1,312,312 into `pasture`. The two countries are describing similar ground with different words. And at z3, where the rollup should leave exactly CLC's five level-1 classes: ``` cover_z3 fi -> agricultural, artificial, nature, water, wetland cover_z3 is -> glacier, nature, water, wetland (no agricultural, no artificial) cover_z3 pl -> agricultural, artificial, nature, water (no wetland) cover_z3 se -> agricultural, artificial, nature, water (no wetland) ``` `glacier` for Iceland is the documented deliberate exemption from #13. The rest are not documented anywhere. ## Why it matters The palette is keyed on the full CORINE vocabulary rather than on what any one country imports (**R116**), so the style is ready for all of it — this is a mapping gap, not a rendering gap. But a map where Sweden is grassland and Poland is pasture along the same latitude is a cross-country consistency failure of exactly the kind **R44** exists to catch, and the reason #77 says vocabulary alignment "is a thing you have to do on purpose". ## Scope Three separable pieces, in the order they are worth doing: 1. **Sweden's missing wetland.** Already open as #14 — Topo 10 `sankmark` is an overlay, not a coverage class, so **R35** applies and it must be carved out rather than unioned in. Do not close this issue without it. 2. **Poland's missing wetland.** Check whether BDOT10k carries a marsh/bog class among the twelve `pokrycie terenu` classes, and whether it is one we fetch (**R6**). 3. **The `natural_grassland` / `pasture` / `moor` boundary.** Put the four countries' source conditions side by side and confirm they describe the same real-world concept, per **R44**'s check. This is a review, not a code change, and its output belongs in `conf/common.yaml` next to the enum. ## Acceptance Every country's z3 `cover` produces exactly the tier's defined vocabulary or has a written exemption; the grassland/pasture mapping decision is recorded in `conf/common.yaml`.
Owner

Dependency: piece 1 (Sweden's missing wetland) is already tracked as #14, which is not available this run. Pieces 2 (Poland's wetland) and 3 (grassland/pasture mapping review) can be worked independently, but the issue's acceptance cannot be fully met until #14 lands. 2026-08-09.

Dependency: piece 1 (Sweden's missing wetland) is already tracked as #14, which is not available this run. Pieces 2 (Poland's wetland) and 3 (grassland/pasture mapping review) can be worked independently, but the issue's acceptance cannot be fully met until #14 lands. 2026-08-09.
Owner

Result is in #100 — #100; the review note is the PR description. Pieces 2 and 3 done (BDOT10k has no wetland class — catalogue-cited negative answer; grassland/pasture/moor boundary recorded in conf/common.yaml). Piece 1 (Sweden's wetland) is #14 and untouched, so the PR deliberately carries no closing keyword — #83 stays open until #14 lands.

Result is in #100 — https://git.blahonga.org/art/ismap/pulls/100; the review note is the PR description. Pieces 2 and 3 done (BDOT10k has no wetland class — catalogue-cited negative answer; grassland/pasture/moor boundary recorded in conf/common.yaml). Piece 1 (Sweden's wetland) is #14 and untouched, so the PR deliberately carries no closing keyword — #83 stays open until #14 lands.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
art/ismap#83
No description provided.