imagico.de
imagico.de

imagico.de

Geo-Visualisierung

Englische Version

Städte und Orte in OpenStreetMap

Vor einiger Zeit habe ich über die Erfassung und Darstellung von Siedlungen in OpenStreetMap geschrieben und mich dabei auf die mittlerem Maßstäbe konzentriert und die Frage, wie OpenStreetMap-Daten bei diesen Maßstäben in generalisierter Form für die Darstellung verwendet werden können. Hier möchte ich diese Diskussion erweitern hin zu den kleinen Maßstabsbereichen, wo Siedlungen im Allgemeinen lediglich als Punkte gezeigt werden.

Die grundsätzliche Erfassung von Siedlungen in in OpenStreetMap ist recht einfach - sie werden als place=city|town|village|hamlet|isolated_dwelling getaggt. Das sieht problemlos aus - der Eindruck, dass es dabei keine Fehler und Variationsmöglichkeiten gibt, täuscht jedoch:

Zunächst wird das place-Tag sowohl für Punkte als auch für Flächen verwendet, manchmal auch in beiden Varianten, was auch bedeutet, dass es viele Doppelungen in der Erfassung gibt - also mehrere Objekte, welche den selben Ort beschreiben. Meist sind dies Paare aus Fläche und Punkt, gelegentlich gibt es aber auch mehrere Punkte.

Dann gibt es zusätzliche Attribute mit weiteren Informationen. Mit name wird der Name des Ortes erfasst, welcher lokal verwendet wird. Da dieser Name dann im Standard-Kartenstil von OSM angezeigt wird, wird dieses Attribut oft als Beschriftungs-Attribut missbraucht und enthält die Beschriftungsform, die vom Erfassenden in der Anzeige gewüscht wird. Dies enthält zum Beispiel oft Versionen in verschiedenen Sprachen - je nach Gegend unterschiedlich getrennt. Ein anderes wichtiges Attribut für Orte ist capital, was dazu dient, administrative Funktionen des Ortes zu erfassen. Aber auch hierfür gibt es eine alternative Methode, nämlich das entsprechende Objekt mit der Rolle admin_centre in der entsprechenden Grenzrelation einzufügen.

Die Klassifikation von Orten

Das größte Problem ist jedoch die Klassifikation der Orte, also wie entschieden wird, welches der place-Attribute dieser erhält. Um dies zu erklären muss ich ein bisschen ausholen.

Dass sich menschliche Siedlungen in Orte verschiedener Größe gliedern ist ein sehr elementares Phänomen menschlichen Sozialverhaltens. Dies wird dadurch gesteuert, dass Siedlungen abhängig von ihrer Größe ihr Umfeld beeinflussen, Menschen, die in der Umgebung einer Großstadt leben nutzen und benötigen in gewissem Umfang die Dienste und Infrastruktur dieser Stadt - sie arbeiten dort, sie kaufen Produkte ein, nutzen Dienstleistungen und Anderes. Wie das Ganze genau im Detail abläuft hängt vor allem von den üblichen Transportmitteln in der Gegend, der Größe des Ortes und kulturellen Eigenarten der Region ab - insgesamt sind die Unterschiede hierbei global betrachtet aber erstaunlich gering, im Grunde ist dieser Einfluss vor allem eine Funktion der Bevölkerungszahl des Ortes.

Den Einfluss eines Ortes auf seine Umgebung würde ich als seine funktionelle Bedeutung bezeichnen. Idealerweise stünde dies hinter dem Konzept der verschiedenen Siedlungsklassen in OSM. place=city bezeichnet Orte, die aufgrund ihrer Größe alle gängigen Bedürfnisse der Menschen in ihnen und in ihrer näheren Umgebung erfüllen, so dass die Menschen im Allgemeinen kaum Notwendigkeit sehen, für solche Bedürfnisse andere, größere Orte aufzusuchen. place=town ist gedacht für Orte, die die meisten Bedürfnisse befriedigen, wo die Menschen aber für manche Sachen auch den nächsten deutlich größeren Ort mit place=city aufsuchen. place=village bietet nur die grundlegensten Dinge und die Bewohner greifen für viele Dinge auf naheliegende größere Orte zurück.

In OSM erfasste Orte
Globale Verteilung der Siedlungen mit den Tags city/town/village in OpenStreetMap

Natürlich ist dieses Klassifikationssystem letztendlich recht vage und es gibt immer irgendwelche Grenzfälle. Da sich wie erwähnt die Abhängigkeit der funktionellen Bedeutung von der Bevölkerungszahl global nur recht wenig unterscheidet, ist es möglich, den verschiedenen Ortsklassen entsprechende Bevölkerungszahlen zuzuweisen. Im OSM-wiki dokumentiert ist dazu Folgendes:

  • place=city mindestens 100000 Einwohner
  • place=town 10000 Einwohner
  • place=village zwischen 1000 und 10000 Einwohner
  • place=hamlet weniger als 100-200 Einwohner
  • place=isolated_dwelling nicht mehr als zwei Haushalte

Dies sind keine festen Grenzen und die Liste oben enthält sogar eine Lücke zwischen village und hamlet. In den meisten Fällen sind diese Zahlen jedoch mindestens so nützlich als Anhaltspunkte wie die vagen Kriterien zur funktionellen Bedeutung. Als objektiveres und besser überprüfbares Maß kann man zusätzlich natürlich auch die Bevölkerungszahl erfassen.

Das wirkliche Problem besteht jedoch darin, dass die Klassifikation hinsichtlich der funktionellen Bedeutung in vielen Karten als Maß für die kartographische Bedeutung verwendet wird. Die Entscheidung, welche Orte dargestellt werden und wie stark sie hervorgehoben werden wird auf Basis dieses Attributes gefällt, was die Erfasser dazu verleitet, die Klassifikation in Hinblick darauf durchzuführen, ob und wie sie den Ort in der Karte angezeigt bekommen möchten.

Die kartographische Bedeutung von Orten

Bei groben Maßstäben dient die Darstellung von Siedlungen in Karten vor allem der Orientierung und um andere Informationen in den richtigen Zusammenhang zu stellen. Da wir in diesen Orten leben erkennen wir sie in der Karte und können andere Informationen dadurch besser interpretieren - wie zum Beispiel 'eine Reise von A nach B auf der Straße führt über C' oder 'Ort A liegt nahe bei B, jedoch auf der anderen Seite von Fluss C'.

Beispiel für die Ortsdarstellung in der OpenTopoMap

Um diesen Zweck optimal zu erfüllen ist ein scharfer Grenzwert bei der Klassifikation der Orte, wie zum Beispiel dass man nur place=city anzeigt, nicht sehr günstig. Die Dichte von Orten der verschiedenen Klassen variiert weltweit sehr stark mit der Bevölkerungsdichte. In den dicht besiedelten Regionen Mitteleuropas, Japans, Indiens und Chinas liegen Großstädte recht nahe beieinander, während anderswo in abgelegeneren Regionen die Menschen eventuell schon zur nächsten Kleinstadt lange Wege zurücklegen müssen. Folglich bewirkt ein fester Grenzwert bei der funktionellen Bedeutung, dass in Karten in einigen Gebieten die Orte sehr dicht angezeigt werden, während sie in andere Regionen praktisch leer sind.

Dichte Darstellung von Orten ind Deuschland Wenig dichte Darstellung von Orten in Estland
Unterschiedliche Darstellungsdichte von Orten mit einr festen Grenze bei der Klassifikation (place=city+town) beim OSM-Standardstil - beide Gebiete sind ähnlich dicht erfasst

Üblicherweise versucht man das Problem dadurch zu lösen, dass man die Grenze bei der Klassifikation entwerden abschwächt oder ganz weglässt und die Symbole für die Orte bis zu einer bestimmten Darstellungsdichte anzeigt, wobei den höheren Klassen natürlich Priorität gegeben wird, damit diese Orte in dicht besiedelten Gegenden nicht ungünstigerweise ausgelassen werden. Das ist im Grunde, was in den meisten OpenStreetMap-Stilen bei mittleren Zoomstufen gemacht wird - man zeigt place=city oder place=city+town, jedoch ist in vielen Gegenden für alle diese Orte garnicht genug Platz, so dass viele weggelassen werden - welche genau ist oft weitgehend Zufall. Gleichzeitig werden in dünn besiedelten Gegenden, insbesondere bei höheren Breiten, wo der variable Maßstab der Mercator-Projektion erschwerend hinzu kommt, immer noch so gut wie keine Orte angezeigt, was dann verbreitet dadurch kompensiert wird, dass Dörfer zum Beispiel als place=city getaggt werden.

Ein möglicher Ansatz für die Bestimmung eines besseren Maßes für die kartographische Bedeutung liegt darin, eine Landschaft der funktionellen Bedeutung zu bestimmen und das Maß, in dem jeder Ort diese Landschaft beeinflusst als Maß für die kartographische Bedeutung zu nehmen. Ergänzt man dies mit einem zusätzlichen Bonus für Orte mit administrativer Funktion ergibt sich ein für die Kartendarstellung recht brauchbares Maß.

Konstruktion der Landschaft der funktionellen Bedeutung zur Bestimmung der kartographische Bedeutung 'i'
Konstruktion der Landschaft der funktionellen Bedeutung zur Bestimmung der kartographische Bedeutung 'i'

Wenn man eine mit wachsendem Abstand vom Mittelpunkt des Ortes abfallende Funktion verwendet, um dessen potentielle funktionellen Bedeutung für die Menschen an jedem beliebigen Ort zu beschreiben, kann man aus dem Maximum dieser Funktionen für alle Orte eine Gesamtfunktion bestimmen, die im Grunde näherungsweise beschreibt, wie einfach an jedem Punkt der Erde der Zugang zu eventuelle benötigten Annehmlichkeiten ist. Fügt man nun irgendwo einen weiteren Ort hinzu und liegt dessen eigene funktionellen Bedeutung unterhalb der gesamten Landschaft der funktionellen Bedeutung der übrigen Orte, bedeutet dies, dass der Ort das allgemeine Niveau der Zugänglichkeit von Annehmlichkeiten nicht nennenswert steigert, da es andere, größere Orte in der unmittelbaren Umgebung gibt, welche bessere Versorgung bieten. Wenn dagegen ein Ort aus der Bedeutungslandschaft der übrigen Orte hervorstößt, ist der Abstand von dieser Landschaft ein recht gutes Maß für dessen kartographische Bedeutung.

Es gibt in diesem Modell eine ganze Reihe von Parametern, an denen man drehen kann. Insbesondere natürlich der Basiswert der funktionellen Bedeutung am Ort selbst. Idealerweise basiert dieser auf der Bevölkerungszahl, sollte hierzu jedoch nicht direkt proportional sein, da oberhalb einer gewissen Zahl ein weiterer Anstieg der Bevölkerung bei einer Großstadt nicht mehr wirklich eine größere funktionelle Bedeutung bewirkt.

Die größte Einschränkung dieses Verfahrens liegt darin, dass in der Realität die funktionelle Bedeutung eine mehrdimensionale Größe ist. Für verschiedene Aspekte des Lebens sind wir in unterschiedlichen Maße von größeren Orten abhängig, wodurch sich unterschiedliche Bedeutungslandschaften ergeben würden. Grenzen und natürliche Hindernisse wie Gebirge oder Flüsse machen die Dinge zusätzlich komplizierter. Wenn man jedoch soweit geht ist man auch schon weit in dem Bereich, wo zusätzlich kunturelle und wirtschaftliche Unterschiede eine Rolle spielen und dadurch wird das Ganze schnell so komplex, dass sich das realistischerweise nicht mehr modellieren lässt.

Hier ein paar Ergebnisse mit diesem Ansatz auf Basis von Orten mit place=city/town/village aus OpenStreetMap.

Orte weltweit mit Bedeutungs-Rating
Orte weltweit mit Bedeutungs-Rating - die Farbe stellt die kartographische Bedeutung dar

Orte mit Bedeutungs-Rating in Nordamerika Orte mit Bedeutungs-Rating in Europa
In Nordamerika In Europa

Man kann sehen, dass im Vergleich zur Verteilung der Originaldaten (siehe erstes Bild oben) die dicht besiedelten Gebiete deutlich ausgedünnt sind und nur die größeren Städte dort angezeigt sind während in den entlegeneren Gebieten auch kleine Städte und Dörfer zu sehen sind. Dies lässt sich durch Variation der abfallenden Funktion der Bedeutung und durch einen Schwellwert bei der kartographischen Bedeutung variieren. Hier eine weitere Darstellung mit noch stärkerer Ausdünnung.

Orte weltweit mit Bedeutungs-Rating
Orte weltweit mit Bedeutungs-Rating - mit geringerer Dichte in den dicht besiedelten Gebieten

Natürlich hängt die Qualität der Ergebnisse stark von der Qualität der Ausgangsdaten ab. Insbesondere benötigt dieser Ansatz mehr oder weniger genaue Bevölkerungszahlen oder - falls diese nicht verfügbar sind - korrekte Klassifikationen der Orte, welche den dokumentierten Wertebereichen entsprechen. Und wenngleich sich viele offensichtliche Doppelerfassungen von Orten automatisch entfernen lassen gibt es auch einige Fälle, insbesondere wenn der Name sich unterscheidet, wo eine zuverlässige Erkennung von Doppelungen nicht funktioniert. So der Fall zum Beispiel bei Sanaa, Jemen und La Habana, Kuba.

Das Ganze ist in dieser Form erst einmal von der Kartenprojektion unabhängig, basiert also auf den tatsächlichen Abständen der Orte. Für Karten mit stark variablem Maßstab wie der Mercator-Projektion wäre es natürlich auch denkbar, die Berechnung in projizierten Koordinaten durchzuführen und so die Maßstabsverzerrung mit zu berücksichtigen.

Test in einer Karte

Die erste Version oben findet sich in einer Karte dargestellt auf maps.imagico.de.

Sie können die zugehörigen Daten auch zum selber ausprobieren herunterladen

Die Daten sind © OpenStreetMap-Mitwirkende und sind unter der Open Database License verfügbar.

Christoph Hormann, Mai 2015

Kommentare:

von tyr_asd aus Italy am Sun May 10 2015 13:48:45
Thank you for this very interesting article!

Do you plan on open-sourcing the data analysis software/scripts you used to create the filtered data? Or at least the formulas how you actually calculated the individual importances and how you modeled the spacial dilution of each place's weight?
von chris aus Germany am Sun May 10 2015 16:30:01
Yes, ultimately i will put up some code/formulas, this will depend on when i have time available. At the moment this is still very unfinished, not much beyond what i have written, just putting the idea to a quick test - you should be able to reproduce this more or less from what i have written, just pick some falloff function (like exponential) and estimate population numbers for those places where it is not tagged based on place class.
Kommentar schreiben
Sie müssen Javascript aktivieren, um Kommentare schreiben zu können.
Verifikation Bitte geben Sie die Buchstabenfolge im Bild links in das Eingabefeld ein, damit ich Sie einfacher von Spam-Programmen unterscheiden kann.
* * Erforderliches Feld
Informationen über Sie
*
wird nicht veröffentlicht
wird mit ihrem Kommentar angezeigt
Ihr Kommentar (kein HTML)

*

Wenn Sie mir, dem Autor dieser Seite, eine private Nachricht senden möchten, können Sie dies per Email tun.

Die Kommentare werden erst nach einer Überprüfung freigeschaltet. Er kann somit einige Zeit dauern, bis Ihr Beitrag auftaucht.

Bitte beachten Sie, dass die Kommentarfunktion zum Kommentieren der Bilder und Texte und nicht zur Diskussion politischer oder religiöser Ansichten dient. Kommentare ohne Bezug zum Inhalt dieser Seite werden nicht freigeschaltet.