Landcover absorption drifts every class into the dominant one #41
Labels
No labels
claude-wip
map-report
map:is
map:se
needs-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
art/ismap#41
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?
Noticed while measuring #36. Pre-existing, not caused by that work, and not fixed by it.
What
Polygon absorption reclassifies a sub-threshold polygon to its dominant neighbour, the
largest thing beside it. Repeated once per zoom, that is a ratchet toward whatever the
country's dominant class is, and it has no notion of preserving the class proportions.
Sweden's
cover, area per class per zoom, on the code as it stood before #36:km². Sweden loses 97% of its agricultural area and 97% of its built-up area between z9
and z5, both into
nature. #36 makes absorption actually merge, which takes those to 105and 2 km² — the direction was already set, the change just finishes the job.
The visible consequence: at z5 Sweden is uniformly forest-green. Skåne is not farmland and
Stockholm is not a city, on a map where both are several pixels across and a reader would
expect to see them.
Poland drifts the other way (agricultural is its dominant class) and less far: nature
−33%, agricultural +18%, artificial +44% from z9 to z5.
Why it happens
"Dominant neighbour" is the right de-speckling rule for a speck and the wrong one for a
region made of specks. Sweden's farmland at z5 is thousands of individual fields, none of
them a pixel; each absorbs into the forest beside it, and the region they collectively form
— which is the thing a reader can see — is never considered.
Shapes a fix could take, none of them investigated
cluster against the threshold, so a thousand touching fields count as one region. This
is the cartographically standard answer and probably the right one.
crude, but it would preserve proportions by construction.
speck of the locally-dominant class wins over a single large polygon of another.
The
absorb_boundarymechanism (conf/common.yaml) is a precedent for the shape of a fix:a preference ordering ahead of
n._a DESC, never a filter, so the coverage stayshole-free.
Not urgent
The map is not wrong, it is over-generalized, and it has been like this since absorption
landed. Filed so it is written down somewhere other than a docs paragraph.
Greenlit by maintainer 2026-08-04. Cross-ref: #47 (water eats coastlines) may be the water-specific face of the same absorption ratchet — the #47 worker investigates that first; if the fixes are shared, this closes as fixed-by, otherwise it gets its own pass with the cluster-before-absorbing direction from the body.
art referenced this issue2026-08-04 15:18:40 +00:00
art-bot referenced this issue2026-08-04 18:38:06 +00:00
PR #56 — #56