Imagico.de

blog

Peeking at peaks - importance rating of peaks in map production
Peeking at peaks - importance rating of peaks in map production

Peeking at peaks

| 0 comments

I have written about display of various landforms and topographic features in maps previously – in particular linear elements like cliffs, ridges and gullies. But there is one terrain form that stands out as uniquely iconic in maps – that is mountain peaks.

I don’t want to cover the full cartographic history of displaying mountains and mountain peaks in maps here. That is a very interesting subject, but something for another time.

Peaks rendering had received some upgrade in my experimental map style compared to what you know from OSM-Carto previously, that is:

  • Displaying elevation labels in a styling different from the name label and either together with that or separately – depending on available space.
  • A reduced symbol size for z11 (the initial zoom level at which peaks are shown)
Peak rendering in the AC-Style so far

Peak rendering in the AC-Style so far

But these are minor improvements in light of the elephant in the room regarding peak rendering, which i want to try look into addressing here. But before i do that, let’s first take a step back and look at why we actually display peaks in maps.

The function of peak rendering in maps

The first – and most obvious function the display of mountain peaks in maps has, is that of a classical point of interest. A location marker for a certain class of feature in a map – with a classifying symbol and a name label – plus an additional property: the elevation value. This is the original and main function of peak display in OSM-Carto and other non-topographic maps.

The second function of peak rendering is as an element of displaying the earth surface topography in some form. In this function, peak rendering often works together with the display of other topographic features, in particular ridges. But also in topographic maps with a more generic and more mechanical depiction of the topography (like through hachures, contour lines or shading) peak symbols are often used to guide and support understanding of the topography by the map user.

Here are a few examples.

USGS map of Alaska 1:2.5M from 1946 - note in particular the unusual top-view peak symbol resembling hachure maps

USGS map of Alaska 1:2.5M from 1946 – note in particular the unusual top-view peak symbol resembling hachure maps

Specialkarte vom westlichen Kleinasien by H. Kiepert from 1890-1892

Specialkarte vom westlichen Kleinasien by H. Kiepert from 1890-1892

Yosemite National Park Area by Automobile Club of Southern California from 1963

Yosemite National Park Area by Automobile Club of Southern California from 1963

Map of Aden, Yemen from 1914 by the Survey of India

Map of Aden, Yemen from 1914 by the Survey of India

Soviet tourist map of the Caucasus mountains from 1991

Soviet tourist map of the Caucasus mountains from 1991 with ridges, peaks and saddles prominently displayed

Adequately serving the second function requires displaying the peaks at relatively small map scales – at scales where, by far, not all peaks can be displayed. And in that situation you need a meaningful importance rating to select which peaks to display and which not to show.

The problem of importance rating peaks

The simple idea would be to use the peak’s elevation as a measure of importance. Higher peaks are more important that lower peaks. But if you think about this a bit further it will quickly become clear that this won’t work. In high altitude mountain areas every peak will have a high elevation and therefore a high importance, while huge parts of the planet will have no peaks shown at all, since they don’t reach the threshold altitude – while possibly being as mountainous as the high altitude regions.

With that realization some people have suggested to use topographic prominence as a rating criterion. Prominence is a rating of peaks popular among mountaineers. It specifies how far you at least need to re-ascend to that mountain peak when coming from a higher peak. I am not aware of any digital rule based global map implementing that idea, which is largely because topographic prominence is fairly hard to automatically determine. But, ultimately, this is also a fairly poor measure of importance for map rendering purposes. I will try to explain why.

Here a display of all peaks with a prominence of more than 1500m world wide – that is a popular prominence cut-off, indicating an ultra-prominent peak.

World wide distribution of peaks with a topographic prominence of more than 1500m

World wide distribution of peaks with a topographic prominence of more than 1500m

As you can see, the distribution of those is very uneven over the planet, much less so than if you would choose the same number of peaks ranked by elevation (which would all be in the Himalaya/Karakoram), still not a distribution that would be any useful for practical map display. For Europe in Mercator projection it would like this:

Ultra-prominent peaks in Europe with a topographic prominence of more than 1500m in Mercator projection

Ultra-prominent peaks in Europe with a topographic prominence of more than 1500m in Mercator projection

The underlying reason why topographic prominence is not a useful importance measure for peak rendering in maps is that it has no spatial component. The prominence value depends on the elevation of the peaks and of the saddles between them, but it is completely independent of the distances between those.

That brings me to the other popular measure of cartographic importance of peaks – the topographic isolation. Topographic isolation measures how far a peak is away from the closest higher point in elevation. This measure is used practically in maps as an importance rating for peaks, most prominently in the OpenStreetMap context in OpenTopoMap.

Topographic isolation in a way is the complete opposite of topographic prominence, it is a purely spatial measure not taking the quantitative differences in elevation into account at all.

Calculating the topographic isolation is much easier than determining the topographic prominence. But to do that you need an elevation data set. Accuracy and resolution of the data is not as critical as for prominence calculation, but on a global scale there is still some heavy lifting involved.

Self contained topographic isolation estimates from OSM data alone

However, we are not in need of precise isolation values. We just need a reasonable importance measure based on which to select which peaks to show at a certain scale and which not to show. The exact cutoff value is a subjective design choice anyway, and some level of non-uniformity in importance values is acceptable. Therefore, we can think about taking a simplified approach and estimating topographic isolation based on peak elevations alone. Or in other words: We determine the topographic isolation of peaks using the elevations of all the other peaks in the OSM database as elevation data set. That does not only save us the heavy lifting with a global elevation data set, it also allows doing the topographic isolation calculation on the fly during rendering. This is how this is done (see code here)

SELECT
way <-> points_all.way AS dist
FROM
planet_osm_point others
WHERE
("natural" = 'peak') AND
(tags ? 'ele') AND
(tags->'ele' ~ '^-?\d{1,4}(\.\d+)?$') AND
(tags->'ele')::NUMERIC > (points_all.tags->'ele')::NUMERIC
ORDER BY dist
LIMIT 1

To understand what is happening here: We essentially estimate the topographic isolation, that is the distance of a peak to the closest point of the earth surface of higher elevation, by determining the distance to the closest peak with a higher elevation. This approximation will systematically over-estimate the distance of course. You could therefore try to compensate for that over-estimation based on an estimate of the slope of terrain in the relevant area. But again: Since we just want a relative rating and don’t need really quantitative results i am not going to make it more complicated.

I have not actually measured performance, but it is quite clear that this is efficient enough to do on the fly.

The results can be seen below – these are the peaks of Europe with a distance to the closest higher peak of more than 32 Mercator kilometers (all km distances in the following are going to be Mercator kilometers). This allows fairly easy comparison to the map with the prominence based cutoff above since the density of peaks in the Alps is similar in both.

Peaks based on OpenStreetMap data with an estimated topographic isolation of more than 32 kilometers in Mercator projection

Peaks based on OpenStreetMap data with an estimated topographic isolation of more than 32 kilometers in Mercator projection

You can see the drastic difference. As said: The isolation measure is completely independent of quantitative differences in elevation. So a 100m hill in the northern German plain will have an isolation of more than 32 kilometers if it is that far away from any higher peak. It can be discussed if that is desirable, especially at the scale shown here (which is, of course, not really the scale i am targeting with this).

Practical results

Practically, the isolation can be used to decide which peaks should be rendered at earlier and which at later zoom levels. I used this to extend the zoom level range for peaks from z11 down to z9 and to stagger the addition of all peaks up to z14. To integrate this isolation dependent starting zoom level i defined five variants of peaks in the symbols and labels rendering system, each setting a different cutoff for a different zoom level threshold. The labels are always shown one zoom level after the symbols – if there is sufficient space in the map. How this looks like is shown in the following. Please note these are rendered based on local extracts of OSM data – hence peaks outside the extract area are not taken into account in the isolation calculation.

Pyrenees mountains around Monte Perdido at z9

Pyrenees mountains around Monte Perdido at z10

Pyrenees mountains around Monte Perdido at z11

Pyrenees mountains around Monte Perdido at z12

Pyrenees mountains around Monte Perdido at z13

Pyrenees mountains around Monte Perdido at z14

The first example is of the Pyrenees mountains between France and Spain. At z9 two peaks are shown – Monte Perdido (3349m) is the third highest peak of the Pyrenees and regularly shown here. Pico Espadas (3328m) would normally not be shown because it is very close to Pico Posets (3369m). The latter, however is just outside the data extra extract area in the test database and is therefore not considered in calculation of isolation. Pico Posets would also define the topographic isolation of Monte Perdido – the distance between those is about 45 Mercator kilometers.

At z10 both these peaks are labeled and in addition Vignemale (3298m) and Pic Long (3192m) and shown, Vignemale is 23km from Cilindro de Marboré, which is just northwest of Monte Perdido. Pic Long has an isolation of 19km, the closest higher peak is Pico Marboré. At z11, Pic Long also gets a label (Vignemale is out of view here) and again, additional peaks are added to the map – among them Pico de la Munia (3133m) – which is 11km from Pic de Lentilla (3157m) – slightly southeast of Pic Long. At z12 the same procedure repeats, Pico de la Munia gets a label (only elevation, because the name tagging is messed up, the name tag contains a compound name the components of which can both not be found in the individual language name tags). z13 adds further peaks and at z14 all peaks are shown, the new ones again only with a symbol, the labels of those would be added at z15.

Freiburg area with Black Forest and Kaiserstuhl mountains at z9

Freiburg area with Black Forest and Kaiserstuhl mountains at z10

Freiburg area with Black Forest and Kaiserstuhl mountains at z11

Freiburg area with Black Forest and Kaiserstuhl mountains at z12

Freiburg area with Black Forest and Kaiserstuhl mountains at z13

Freiburg area with Black Forest and Kaiserstuhl mountains at z14

The second example shows the area around Freiburg in the upper Rhine valley at the German-French border and the Black Forest and the Kaiserstuhl mountains. At z9 we have a similar situation as in the Pyrenees. The Feldberg (1493m) is shown – the closest higher peak for that according to OSM data is the Gnipen in Switzerland – 145km away. The sample shows another peak on the French side – La Bloss (826m), which is just a minor peak and only shows up because the higher peaks just west of this are outside the extract area. Zooming in around Freiburg to z10 leads to three more peaks showing up: The Belchen (1414m), which is 21km west of the next higher peak, the Herzogenhorn (1416m), the Kandel (1242m), which is the highest peak in the Black Forest north of the Dreisam valley, 27km north of the closest higher peak, the Hochfahrn (1263m). And finally the Totenkopf at just 557m. The last is the highest peak in a small mountain area in the Rhine valley, the Kaiserstuhl. And despite its low height it is 26km from the closest higher peak in the Black Forest, the Schönberg (644m).

At z11 these peaks all get their labels – though the Feldberg, Kandel and Belchen are now out of view. We, in addition, get the Schauinsland (1284m), which is 10km from the Schmaleck (1287m) as the closest higher peak, and two really low elevation peaks in the Rhine valley, which are the highpoints of two smaller, but distinct geological formations in the Rhine valley – the Tuniberg (314m) and the Nimberg (253m) with isolation values of 8.8/8.9km. For further zooming in i will center on the Kaiserstuhl mountains. Here, at z12, we get seven additional peaks shown, in particular Eichelspitze, Katharinenberg and Staffelberg on the outer ridge of the Kaiserstuhl. And at z13 also two peaks in the inner Kaiserstuhl, which are lower than the outer ridge – the Badberg (417m) and Ohrberg (427m).

This should give you an impression how the staggered addition of additional peaks based on an importance rating by topographic isolation looks like.

Peaks without an elevation tag, by the way, are assumed to have zero isolation and are therefore only shown at z14 and above.

Conclusions

The main question is, of course, if the topographic isolation is a good measure for cartographic importance. It depends a bit on the purpose of the map i think. Above i already mentioned that topographic isolation in a way is the opposite extreme compared to topographic prominence, measuring purely the spatial component and completely ignoring the quantitative elevation differences. Some might remember that a long time ago i discussed a fairly similar importance rating problem with regards to populated places. There i suggested an intermediate approach which takes both differences in the local properties (there: population, here: elevation) and spatial distance into account. A similar approach could be used for peaks as well. It would, however, probably not be possible to calculate that on the fly any more.

For a map where a substantial goal is to provide mapper feedback, the topographic isolation based rating is quite a good approach i think, because it provides meaningfully differentiated feedback not only on the mapping of mountain peaks, but in particular also for the topography in less mountainous surroundings, which can be practically pretty relevant as well. And in areas where few peaks are mapped, those which are mapped are going to be shown earlier than they would with more complete mapping of peaks, which is not a problem. In most cases, of course, mappers will locally often add the higher peaks first and the lower elevation ones later.

The implementation of what i showed can be found in the Alternative Colors map style. Compared to approaches used elsewhere it is a very light weight method and can easily also be adjusted to other map styles and map rendering frameworks.

Leave a Reply

Required fields are marked *.



By submitting your comment you agree to the privacy policy and agree to the information you provide (except for the email address) to be published on this blog.