roads.surface is manufactured where the source is silent, in Iceland, Poland and Finland #82
Labels
No labels
blocked
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#82
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?
Found auditing every country against
docs/country-requirements.md(#77). Violates R66 — a categorical column with no corresponding source value imports as NULL, never a default enum member.This is the generalization of #6, which found Sweden asserting
surface='unpaved'on 215 ferry rows that had noSlitlagervalue at all.What the data says
Sweden is the only country with any NULLs, and it has them only because #6 fixed its
ELSE. Iceland, Poland and Finland each assert a surface for every single road row, which would require their sources to record surface with perfect completeness. That is not plausible for national road datasets of 58k, 6.8M and 3.2M rows.Why it matters
A default silently manufactures data instead of surfacing "unknown". #6's ferry rows were the visible case — rows that were not roads at all inherited a road's surface. The invisible case is worse: every unsurveyed track in three countries is currently asserted as gravel or asphalt on the authority of a
CASEfallthrough, and nothing downstream can tell the difference between "measured unpaved" and "not recorded".The fix
For each of
conf/ismap.yaml,conf/plmap.yamlandconf/fimap.yaml, find thesurfaceCASEand confirm theELSEbranch is reached only by rows that genuinely carry that value. Where the source field is absent or empty, emit NULL.Note the interaction with R43: whether a
CASEmay have anELSEat all is a property of the source file. A file describing one kind of thing may have a totalCASE; a file that mixes kinds may not. Iceland's mapping (A/B/C → paved,D/F1/F2/F3 → unpaved) is already an exhaustiveINovervegtegund— the question there is what happens to rows wherevegtegundis NULL.Then check R64-style: does the style still render sensibly with NULL surface? Sweden's 91 NULL rows say yes, but confirm at the volumes this will produce.
Acceptance
Per country,
count(*) WHERE surface IS NULLis greater than zero and matches the count of rows whose source surface field is absent or empty.Result is in #89 — #89; the review note is the PR description.