Sweden's peaks come from a geodetic control network, not summits — no point above 2000 m exists in the layer #203

Open
opened 2026-08-20 23:08:53 +00:00 by art-bot · 0 comments
Collaborator

Sweden's peaks partition, landed in #101 (PR !202), is built from a source that
does not contain peaks. Either find a real one or drop the partition. Do not
synthesize one
— see "Not the fix" below.

What the source actually is

Topo 10 tema Höjd, layer hojdpunkt, is a geodetic control network, not a
terrain spot-height set:

objekttypnr objekttyp count min max what it is
2413 Höjdfixpunkt 30 039 1 1727 height benchmarks / levelling fixpoints
2412 Triangelpunkt 3 222 1 1768 triangulation stations
2411 Markhöjd 522 22 1797 surveyed ground heights

89% is levelling benchmarks — markers set along levelling lines, on bedrock,
bridges and buildings. The layer records where Lantmäteriet has measured, not
where the land is high.

The symptom

  • Zero points above 2000 m in the whole country. Sweden has twelve 2000 m
    summits. Only 32 points nationwide clear 1500 m.
  • Within 30 km of Kebnekaise (2096 m) the highest point in the layer is
    1584 m; the nearest is a 773 m Triangelpunkt 5.7 km away, which is what the map
    currently draws as the peak of the Kebnekaise massif.
  • The highest point in the entire layer, 1797 m, is Helagsfjället in
    Härjedalen — the highest mountain south of the Arctic Circle, roughly Sweden's
    13th overall. Kebnekaise, Sarek and Akka are all absent.

The contours from the same theme are correct and stay: within 5 km of Kebnekaise
they run to 2090 m in closed rings. The terrain data has the mountain; the
peaks layer does not.

Why the acceptance tests did not catch it

They are honest and they pass. R120: every Sweden peak made it through compares
the map partition to the source row for row — true, and irrelevant, because the
source is the wrong register. Nothing asserts the layer contains the mountains.
Whatever replaces the source should come with a check that would have failed
here: the highest point in each country's partition should be within some margin
of that country's actual high point, or the partition's maximum should be at
least as high as its own contours' maximum.

The contrast that makes it a contract problem

Iceland's haedarpunktar tops out at 2110 m at 64.0142/-16.6771 — Hvannadalshnúkur,
the country's actual highest point. The two partitions of the shared peaks
contract are therefore semantically different things: Iceland's samples terrain
and hits the summits, Sweden's samples the survey network and misses them. The
contract (conf/shared/contracts/19-peaks.yaml) says "a surveyed spot height",
which is loose enough to admit both — worth tightening to say what the layer is
for once the Sweden source is settled.

Not the fix: deriving summits from the contours

The obvious move — take the innermost closed contour ring, call its centroid a
peak — was considered and rejected. It is technically easy (the rings are
genuinely closed; Kebnekaise's 2090 m ring has 11 points), but it manufactures
map data that no survey produced, and peaks are garnish: a nice-to-have label
layer, not something the map needs badly enough to invent. Prefer removing the
partition over synthesizing one.

Options, in order of preference

  1. Find a real summit register. Not yet located. Ruled out so far:
    • the Höjd theme holds only hojdpunkt, hojdlinje and hojdkurvstext — no
      summit class;
    • the text theme's TERRTX (273 311 terrain names, and Kebnekaise is in
      there at 67.9004/18.4658) carries no elevation and no category — it is
      undifferentiated terrain text covering islands, headlands and moors as well
      as summits, so it cannot be filtered to peaks;
    • Topo 50's themes on disk are mark and administrativindelning only.
      Still unexplored: other Lantmäteriet products (Topo 100/250 generalized
      height points), and Ortnamnsregistret's name-type codes, if any of them
      distinguish a summit as a class rather than as a name.
  2. Drop the Sweden partition. conf/se/17-peaks.yaml and the
    se_hojdpunkt_t10 staging entry go; map_peaks_<z> holds Iceland only again,
    as it did before #101. The shared contract and Iceland's partition are
    unaffected, and the layer stops making a false claim about the fjäll. This is
    the right outcome if (1) comes up empty.

Sweden's contours from the same import are unaffected either way and stay.

Notes

  • Found from the map: the peak drawn near Kebnekaise fjällstation is a 773 m
    Triangelpunkt, not a summit.
  • #101 / PR !202 is merged; this is fix-forward, not a revert of that PR.
  • Related: #104 (Poland peaks) and #108 (Finland's undecided peaks source) should
    read this before picking their sources — "the national spot-height layer" is
    not automatically a peaks layer.
Sweden's `peaks` partition, landed in #101 (PR !202), is built from a source that does not contain peaks. Either find a real one or drop the partition. **Do not synthesize one** — see "Not the fix" below. ## What the source actually is Topo 10 tema Höjd, layer `hojdpunkt`, is a **geodetic control network**, not a terrain spot-height set: | objekttypnr | objekttyp | count | min | max | what it is | |---|---|---|---|---|---| | 2413 | Höjdfixpunkt | 30 039 | 1 | 1727 | height benchmarks / levelling fixpoints | | 2412 | Triangelpunkt | 3 222 | 1 | 1768 | triangulation stations | | 2411 | Markhöjd | 522 | 22 | 1797 | surveyed ground heights | 89% is levelling benchmarks — markers set along levelling lines, on bedrock, bridges and buildings. The layer records where Lantmäteriet has *measured*, not where the land is *high*. ## The symptom - **Zero points above 2000 m in the whole country.** Sweden has twelve 2000 m summits. Only 32 points nationwide clear 1500 m. - Within 30 km of **Kebnekaise** (2096 m) the highest point in the layer is 1584 m; the nearest is a 773 m Triangelpunkt 5.7 km away, which is what the map currently draws as the peak of the Kebnekaise massif. - The highest point in the entire layer, 1797 m, is **Helagsfjället** in Härjedalen — the highest mountain south of the Arctic Circle, roughly Sweden's 13th overall. Kebnekaise, Sarek and Akka are all absent. The contours from the same theme are correct and stay: within 5 km of Kebnekaise they run to **2090 m** in closed rings. The terrain data has the mountain; the peaks layer does not. ## Why the acceptance tests did not catch it They are honest and they pass. `R120: every Sweden peak made it through` compares the map partition to the source row for row — true, and irrelevant, because the source is the wrong register. Nothing asserts the layer contains the mountains. Whatever replaces the source should come with a check that would have failed here: the highest point in each country's partition should be within some margin of that country's actual high point, or the partition's maximum should be at least as high as its own contours' maximum. ## The contrast that makes it a contract problem Iceland's `haedarpunktar` tops out at 2110 m at 64.0142/-16.6771 — Hvannadalshnúkur, the country's actual highest point. The two partitions of the shared `peaks` contract are therefore semantically different things: Iceland's samples terrain and hits the summits, Sweden's samples the survey network and misses them. The contract (`conf/shared/contracts/19-peaks.yaml`) says "a surveyed spot height", which is loose enough to admit both — worth tightening to say what the layer is *for* once the Sweden source is settled. ## Not the fix: deriving summits from the contours The obvious move — take the innermost closed contour ring, call its centroid a peak — was considered and **rejected**. It is technically easy (the rings are genuinely closed; Kebnekaise's 2090 m ring has 11 points), but it manufactures map data that no survey produced, and peaks are garnish: a nice-to-have label layer, not something the map needs badly enough to invent. Prefer removing the partition over synthesizing one. ## Options, in order of preference 1. **Find a real summit register.** Not yet located. Ruled out so far: - the Höjd theme holds only `hojdpunkt`, `hojdlinje` and `hojdkurvstext` — no summit class; - the `text` theme's `TERRTX` (273 311 terrain names, and `Kebnekaise` is in there at 67.9004/18.4658) carries no elevation and no category — it is undifferentiated terrain text covering islands, headlands and moors as well as summits, so it cannot be filtered to peaks; - Topo 50's themes on disk are `mark` and `administrativindelning` only. Still unexplored: other Lantmäteriet products (Topo 100/250 generalized height points), and Ortnamnsregistret's name-type codes, if any of them distinguish a summit as a class rather than as a name. 2. **Drop the Sweden partition.** `conf/se/17-peaks.yaml` and the `se_hojdpunkt_t10` staging entry go; `map_peaks_<z>` holds Iceland only again, as it did before #101. The shared contract and Iceland's partition are unaffected, and the layer stops making a false claim about the fjäll. This is the right outcome if (1) comes up empty. Sweden's `contours` from the same import are unaffected either way and stay. ## Notes - Found from the map: the peak drawn near Kebnekaise fjällstation is a 773 m Triangelpunkt, not a summit. - #101 / PR !202 is merged; this is fix-forward, not a revert of that PR. - Related: #104 (Poland peaks) and #108 (Finland's undecided peaks source) should read this before picking their sources — "the national spot-height layer" is not automatically a peaks layer.
art-bot self-assigned this 2026-08-20 23:08:53 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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#203
No description provided.