imagico.de
imagico.de

imagico.de

Geo-Visualisierung

Englische Version

Die Datenqualität der OpenStreetMap Küstenlinien

Eine Eigenschaft der OpenStreetMap-Daten, welche Jedem bewußt sein sollte, der die Daten verwendet und welche Jeder, der mit den Daten in größerem Umfang arbeitet, früher oder später bemerkt, ist die uneinheitliche Qualität der Daten. Die Küstenlinien, mit denen ich in letzter Zeit recht viel gearbeitet habe sind in dieser Hinsicht ein Spezialfall, da sie die einzigen Daten in OpenStreetMap darstellen, welche routinemäßig im OpenStreetMap-Projekt in ihrer Gesamtheit verarbeitet werden. Aus diesem Grund gibt es bei diesen eine gewisse Garantie der Daten-Konsistenz – wenngleich diese fortlaufende Anstrengungen erfordert wie in Jochen Topf's Statusbericht beschrieben. Diese Konsistenz der Daten sagt jedoch noch nichts über ihre Genauigkeit aus, welche zu beurteilen ich hier versuchen möchte.

Ich habe zuvor bereits geschrieben, dass die OpenStreetMap Küstenlinien-Daten einen recht guten Qualitätsstandard erreicht haben, habe diese Behauptung jedoch nicht nachprüfbar belegt. Die große Schwierigkeit bei der Beurteilung der Genuaigkeit geographischer Daten liegt darin, dass man dafür eigentlich einen deutlich genaueren Referenzdatensatz benötigt. Konkret wäre für die Beurteilung der Genauigkeit einer Küstenlinie eine präzise Kenntnis der tatsächlichen Form der Küste notwendig.

Während es lokal in manchen Gegenden sicher detailliertere Daten gibt, als in Openstreetmap, sind in den meisten Fällen diese Daten nicht so viel genauer, dass man die Unterschiede zu den OSM-Daten vollständig als Ungenauigkeit der letzteren interpretieren könnte. Alle globalen Datensätze (einige sind im Openstreetmap wiki aufgezählt) sind zumindest in weiten Teilen weniger detailliert als die OpenStreetMap-Daten und eignen sich deshalb sowieso nicht als Referenz.

Beurteilung der Datenqualität ohne Referenz

Letztendlich müssen wir überlegen, wie man die Qualität ohne eine Referenz abschätzen kann. Naheliegend scheint, die Dichte der Datenpunkte in den Linien zu bestimmen. Die Küstenlinien sind in den Daten als Linienzüge vorhanden, Reihen von Punkten verbunden mit geraden Linien (was genau gerade in diesem Fall bedeutet werde ich wann anders mal dikutieren). Je dichter die Datenpunkte liegen, desto besser kann die tatsächliche Küstenlinie abgebildet werden. Aber es gibt zwei Probleme bei diesem Ansatz: Zum einen lässt sich ein sehr gerader Küstenlinienabschnitt recht genau mit nur sehr wenigen Punkten darstellen. Zum anderen kann eine Küstenlinie selbst mit sehr vielen Punkten ungenau sein, falls die Punkte garnicht an der tatsächlichen Küste liegen.

Krumme Küstenlinie mit ungenauer Erfassung Gerade Küstenlinie mit genauer Erfassung Küstenlinie mit detaillierter aber ungenauer Erfassung
Krumme Küstenlinie mit ungenauer Erfassung Gerade Küstenlinie mit genauer Erfassung Küstenlinie mit detaillierter aber ungenauer Erfassung

Das zweite Problem ist ohne Referenzdaten nicht lösbar – im einfachsten Fall einer konstanten Verschiebung der Daten wie im obigen Beispiel sehen die Daten abgesehen von der Verschiebung genau so aus, wie die tatsächliche Küstenlinie und sind dennoch nicht korrekt. Das erste Problem lässt sich jedoch berücksichtigen. Die wichtigste Unterschied zwischen den roten Linien im ersten und zweiten Bild oben liegt in den Winkeln zwischen den Liniensegmenten an den Knoten. Deren Berechnung liefert neben der Knoten-Dichte einen zusätzlichen Wert zur Charakterisierung der Daten.

Bevor ich jetzt die Küstenlinien-Daten analysiere möchte ich einen Schritt zurücktreten und sehen, was wir hier eigentlich betrachten. Dies erfordert ein gewisses Verständnis davon, wie die betrachteten Daten erfasst werden. Im Fall von OpenStreetMap variiert dies etwas, die Daten basieren jedoch fast immer auf Luft- oder Satellitenbildern. Der Bearbeitungsprozess wird in den folgenden Bildern dargestellt:

Küstenlinien-Erfassung basierend auf Bild-Klassifikation Küstenlinien-Erfassung durch manuelles Abzeichnen von Bildern
Küstenlinien-Erfassung basierend auf Bild-Klassifikation Küstenlinien-Erfassung durch manuelles Abzeichnen von Bildern

Die meisten Küstenlinien Datensätze wie auch der Teil der Openstreetmap-Daten, welcher von anderswo importiert wurde (das sind insbesondere PGS-Daten) sind auf Basis von Satellitenbildern durch Wasser/Land-Klassifikation und anschließende Vektorisierung der Klassifikationsmaske produziert. Die durch die OSM-Gemeinschaft erfassten Daten sind im Wesentlichen durch Abzeichnen von Bildern per Hand produziert.

Da wie gesagt keine geeigneten Referenzdaten zur Verfügung stehen, sind die Möglichkeiten, diesen Prozess im Detail zu betrachten, beschränkt. Da wir nur das Endprodukt analysieren können, betrachten wir die Zwischenschritte nur durch den Filter der nachfolgenden Bearbeitungen. Hierdurch ergibt sich zwar ein sehr klarer Blick auf den Vektorisierungsschritt, bzw. das Abzeichnen, die Datenqualität wird jedoch vor allem auch von den davor liegenden Schritten beeinflusst und wir können diese nur indirekt und nur mit Hilfe von Annahmen über die Vektorisierung oder das Abzeichnen betrachten.

Analyse der Daten

Ich beginne mit der Auswertung des durchschnittlichen Abstands zwischen den Küstenlinien-Punkten auf der Erdoberfläche. Die Farbe der Pixel im nachfolgenden Bild repräsentiert die durchschnittliche Länge der Küstenlinien-Segmente im Gebiet des jeweiligen Pixels.

Durchschnittlicher Knoten-Abstand in den OSM-Küstenlinien

Durch Klick auf das Bild können Sie eine größere Version anzeigen. Man sieht, dass der durchschnittliche Punktabstand starken Schwankungen unterliegt. Diese Schwankungen scheinen weder zufällig zu sein noch sind sie klar mit Unterschieden in der Form der tatsächlichen Küstenlinie verbunden. Die Obergrenze von 850m in der Darstellung hat keine besondere Bedeutung, es gibt einige kleinere Bereiche, in denen der durchschnittliche Abstand noch deutlich größer ist.

Klar erkennbar ist, dass die Bereiche der Erde, die auch ansonsten in Openstreetmap detailliert erfasst sind, insbesondere Europa und Japan, eine hohe Punktdichte in der Küstenlinie aufweisen – was auch nicht anders zu erwarten ist. Interessanter sind einige abrupte Änderungen in der Punktdichte, so zum Beispiel an der Grenze zwischen Alaska und Kanada zu sehen oder der Unterschied zwischen der Ost- und Westküste Grönlands.

Als nächstes eine ähnliche Darstellung des durchschnittlichen Winkels zwischen den Liniensegmenten an den Knoten. Ein Winkel von Null Grad bedeutet, dass sich der Knoten direkt in der Mitte zwischen dem vorigen und dem nächsten Knoten befindet und 90 Grad entsprechen einem rechtwinkligen Knick in der Linie an diesem Punkt.

Durchschnittlicher Winkel an den Knoten der OSM-Küstenlinie

Zunächst einmal ist bemerkenswert, dass der durchschnittliche Winkel recht groß ist (das globale Mittel liegt bei 63 Grad). Auf der hier betrachteten Größenskala (zwischen einigen wenigen und einigen hundert Metern) gibt es in der Küstenlinie der Erde nur wenige klar definierte scharfe Ecken. Folglich deutet ein großer durchschnittlicher Winkel darauf hin, dass die Daten keine besonders gute Näherung für die in den als Grundlage verwendeten Bildern sichtbare Küstenlinie darstellen. In anderen Worten: durch eine detailliertere Vektorisierung oder präziseres manuelles Abzeichnen hätte man auf Basis der selben Datengrundlage deutlich genauere Daten produzieren können. Warum wurde dies nicht getan? Der Grund hierfür ist im Allgemeien Datensparsamkeit. Bei der Datenerfassung ist oft nicht die maximale Genauigkeit das Ziel und gleichzeitig bestehen oft enge Grenzen in Bezug auf das Datenvolumen.

Die meisten Gebiete mit durchgehend großen Winkeln (die roten bis orangenen Bereiche in der Karte oben) sind Gegenden, in denen PGS-Daten importiert wurden. Diese Daten weisen eine recht einheitliche Signatur sowohl in Bezug auf den durchschnittlichen Knotenabstand als auch bei den Winkeln auf. Dies kann man besonders gut im südlichen Alaska, in Südchile sowie in Westgrönland sehen. Diese Signatur hat ihre Ursache vermutlich in dem verwendeten Vektorisierungs-Verfahren. Das bedeutet jedoch nicht, dass alle mit automatischen Verfahren erzeugten Küstenlinien-Daten derart einheitliche Eigenschaften aufweisen. Ganz im Gegenteil wird eine effiziente Vektorisierungstechnik die Knotendichte an die Krümmung der Linie anpassen. Dies lässt sich zum Beispiel bei der Küste im Westen Polens beobachten (wobei diese vermutlich per Hand gezeichnet wurde). Der durchschnittliche Knotenabstand ist hier recht groß, mit am Größten in Europa, während der durchschnittliche Winkel sehr niedrig ist. Da die tatsächliche Küstenlinie hier ziemlich gerade ist, reichen wenige Knoten aus, um diese recht genau abzubilden.

Da es auf diesem Maßstab wie gesagt wenige wirkliche Ecken in der Küstenlinie gibt, kann man recht gut von einem optimalen Segmentwinkel an den Knoten von etwa 10-20 Grad ausgehen. Wie nahe die Daten an diesem Optimum liegen, sagt nichts über deren Genauigkeit aus, wohl aber darüber, wie gut die Daten die ihnen zu Grunde liegende Datenquelle abbilden. Ist der Winkel wesentlich größer wie im Falle der PGS-Daten, gingen Informationen, die in den Daten ursprünglich vorhanden waren, bei der Vektorisierung verloren. Ist der Winkel deutlich geringer, sind die Daten detaillierter als notwändig.

Unter Verwendung dieser Beobachtungen können wir nun versuchen, die beiden bisher einzeln betrachteten Werte zu einer gemeinsamen Qualitätskennzahl zusammenzufassen:

log(dist_avg*max(10, angle_avg))

In Worte gefasst bedeutet diese Formel: Ein geringer Abstand zwischen den Knoten führt zu einem geringen Wert (entsprechend hoher Datenqualität), auch wenn der durchschnittliche Segmentwinkel groß ist. Ein geringer durchschnittlicher Segmentwinkel bewirkt auch bei großem Knotenabstand ebenso einen geringen kombinierten Wert, wobei Winkel von weniger als 10 Grad nicht verbessernd berücksichtigt werden. Der Logarithmus dient lediglich der passenden Skalierung. Der resultierende zusammengefasste Qualitätskennwert ist im folgenden Bild dargestellt:

kombinierter Küstenlinien-Qualitätswert

Man sollte dieses Qualitätsmaß jedoch mit Vorsicht betrachten. Während die roten Bereiche höchstwahrscheinlich eine geringe Genauigkeit aufweisen, ist der Umkehtschluss, dass die blauen Bereiche von guter Qualität sind nicht ohne Weiteres möglich. Die Einschätzung schlägt insbesondere dann fehl, wenn die Daten deutlich geglättet wurden.

Die Karte zeigt vor allem drei Regionen, in denen die Datenqualität am dringensten verbessert werden müsste:

  • Indonesien und Umgebung (insbesondere Malaysia, Thailand und Burma)
  • Das Kaspische Meer
  • Ostgrönland

Daneben gibt es einige kleinere Gebiete, die nicht besonders gut erfasst sind, insbesondere einige der polaren Inseln. Die drei genannten Regionen sind jedoch die größten Bereiche.

Auch erwähnt werden sollte, dass zumindest Indonesien in den PGS-Daten deutlich besser erfasst ist – anscheinend wurden diese in diesem Bereich nie importiert (oder nur in einer älteren und weniger detaillierten Version). Da jedoch inzwischen in dieser Region vieles per Hand erfasst wurde, würden großräumige Importe etwas schwierig.

Ein paar Einzelbeispiele und Zahlen

Zum Schluss möchte ich noch einige Einzelbeispiele sowie einige statistische Werte nennen:

Wie bereits erwähnt liegt der durchschnittliche Segmentwinkel für alle Daten bei 63 Grad. Der globale Mittelwert für den Knotenabstand beträgt 66 Meter, wodurch sich eine Gesamtlänge der Küstenlinie von 1.99 Millionen Kilometern ergibt. Das längste Segment (mit Ausnahme der Linienstücke, die die Küstenlinie bei 180 Grad schließen – diese wurden hier generell nicht berücksichtigt) ist 23.7 Kilometer lang. Hierbei handelt es sich jedoch nicht wirklich um einen Teil der Küstenlinie, sondern um einen Abschnitt vor der Mündung eines Flusses. Es gibt genau wie hier noch eine Reihe anderer Fälle, an denen die Küstenline weit vor der Mündung eines Flusses geschlossen wurde, was zu langen geraden Segmenten führt.

Die Bereiche, in denen die Daten am dringensten verbessert werden müssten, wurden bereits genannt. Ich möchte jetzt noch zwei Einzelbeispiele herausgreifen, wo die Genauigkeit besonders schlecht ist und zwar:

Das erste Beipiel ist in der letzten Karte oben deutlich in tiefrot zu sehen, das Zweite jedoch nicht, obwohl hier Fjorde von mehr als 50km Länge vollständig fehlen. . Das liegt daran, dass hier die Daten anscheinend deutlich geglättet wurden. Die ursprüngliche Quelle für diese Daten lässt sich nicht ermitteln, sie könnten jedoch von älteren Karten auf Grundlage ungenauer oder unvollständiger Kartierungen der Gegend basieren.

Auf der positiven Seite der Regionen, wo die OSM-Küstenlinie besonders gut ist, möchte ich Estland herausgreifen, wo die Daten nicht nur sehr detailliert sind, sondern der durchschnittliche Segmentwinkel auch genau im beschriebenen optimalen Bereich liegt. Es gibt vermutlich auch einige Küstenlinien-Abschnitte im städtischen Bereich, wo die Erfassung sogar mit sub-Meter-Genauigkeit erfolgt ist, die werde ich im Rahmen dieser globalen Analyse jedoch nicht besonders betrachten.

Christoph Hormann, April 2013

Kommentare:

von Florin Badita aus Romania am Thu Sep 24 2015 16:39:38
How do you calculate the average angle between the nodes ?
von chris aus Germany am Thu Sep 24 2015 17:20:22
Angles at the nodes of a way requires - in the general case - a bit of spherical trigonometry, as described here:

https://en.wikipedia.org/wiki/Spherical_law_of_cosines

but you can for usual node distances of ways in OSM also simply use the planar formula (i.e. difference in planar direction between the two segments surrounding the node).
von verdy_p aus France am Thu Apr 25 2013 11:13:52
How long is the coastline of Britanny in France ? This is a wellknown problem, because there's no response to it. Britanny (there are similar examples elsewhere in the world) is wellknown for its fractal type of coastlines, and each time you want to refine the coastline, it's impossible to reach a point where the deviation angles will be lower than 10 degrees, on MOST of its length.

You you really continue to do that, you'll fall below the level of accurady of data, because of the very noticeable effects of tide.

So the result that could be reached in Estonia (and could be reached easily for "flat" countries like Belgium or the Netherlands, or for regions of France like Aquitaine) cannot be reached everywhere, but only on coastlines bordered mostly by long beaches (e.g. most coasts of Spain on the Mediterranean Sea, but not around Britanny, or the coastlines of Portugal and Galicia in Northwest Spain).

**All** attemps made by national geographic institutes have failed to reach a situation where you fall below a maximum deviation angle.

So your formula should take this into account more closely : it makes no sense to increase the details around a region whose coastline is now very complex to handle, even when it has been split into several parts using administrative borders as limits (the split by country was not enough, the split by admin region at level 4 was not enough, the split by admin department at leavel 6 was not enough, the split by admin arrondisssement does not give more meaningful limit, and the next level is the split by municipality at level 8. Still this is not enough !

So now we split the coastline where we find enough river mouths or beaches, becuase these segments can be smoothed to reach the level of accuracy. But for everything else, on rocky coastlines, the only level we can reach is to be below a reasonnable length. Given the precision of orthophotography, and the effects of tide, it makes no sense going below a limit of of 3 meters, even if deviation angles are much higher than 20 degrees (In harbours, we frequently find very sharp angles and even if you probably should "round" them a little to be below 25 degrees, creating "octogonal" shapes to ends of dikes, this will be enough, even if segments are can reach about 50 meters).

So your formula should be something like;

max(avg_length/(90°/deviation_angle), 3 meters)

You can take the log of it, for scaling the result.

i.e.

log(max(avg_length/(90°/deviation_angle), 3m))

You can transform it into :

max(log(avg_length) + log(dev_angle) - log(90°),
log(3m))

And then the two constants can be simplified:

max(log(avg_length) + log(dev_angle),
log(3m) + log(90°))

Then to avoid the errors of logs with zeros or small values:

max(log(max(avg_length, 3m)) +
log(max(dev_angle, 10°)),
log(3m) + log(90°))

This can be computed incrementally angle node by anfle node (avg_length is the average of the two neighbouring segments), it should return 0 almost everywhere, or a positive value; then sum the result and divide by the total number of nodes until you've crossed a grid cell for producing your final graphic.

This only depends on two parameters:
- the target minimum distance of 3m.
- the target minimum angle of 10 degrees.
You may reduce these parameters (notably the second one if you want, but should not set any one of them to zero.

But using the max() only on the deviation angle without considering the length is wrong (this is equivalent to setting the target minimum distance to 0, and this is not reasonnable and will be wrong because there's no such data with this accuracy even if orthophotography may reach decimatric precisions now for details, but true geolocalisation and orthophotography have their own inaccuracies).

Experiment the value of these parameters by runing them to look for some complex regions like the coasts of Britanny, Galicia, Norway, Scotland, Greece, California, Japan, Indonesia, or Chile where the sea border has very noticeable elevation on their lands and is fragmented as complex fractals (may be the elevation model of nearby lands and of average tides, could help tweaking these parameters locally).

Otherwise you'll instruct people to detail each small rocklet that could move around, producing too much data that won't make any sense.
von chris aus Germany am Thu Apr 25 2013 12:22:29
Hello verdy_p,

you raise a lot of valid points but i'd like to point out a few things concerning those i consider important:

- the nature of the OpenStreetMap project forbids claiming a certain minimum distance or maximum accuracy to exist and assuming everything beyond that is 'too much data'. Everyone should be allowed to map in as much detail as he/she wants to.

- The only argument that would actually speak against increasing the detail would be if this detail does not contain factual information. The tidal argument does not really apply here since the definition of the coastline is always independent of the tide. The other argument that could be used is that the coastline changes so rapidly that the small detail is outdated already when entered into the database. Especially in the case of rocky coastlines this does not apply either - erosion rates of rocky shores are usually in the range of millimeters-centimeters per year so even a sub-meter accuracy measurement would often be valid for decades.

- my use of the derivation angle is in no way meant as an absolute criterion - as you point out it is useless for this purpose since the derivation angle does not generally converge to a minimum. I use it purely as a measure how well the vector data represents the data source it is derived from. As such it is quite suitable and the minimum angle of 10 degrees seems reasonable.

- your ideas for alternative quality scores are interesting although introducing a lower bound for the distance of 3m would not actually change much since node distances below this are rare.
von Harry Wood aus United Kingdom am Sat Apr 13 2013 04:31:33
That's neat. I wrote the PGS wiki page you've linked there, and I've added a link back to this.

Whenever I need to make a test edit of some OpenStreetMap data, I do a bit of PGS fixup. I go to somewhere random in Siberia or Alaska and tidy things up. At the moment it's never difficult to find somewhere that needs work, but maybe if more people do the same, we'll start to turn things blue on your colour scale.

...Or maybe not. Loading in a bit imagery in these remote spots, is quite an awe inspiring demonstration of the vastness of our planet.

What your map shows me though, is that the tropical Asian coastline needs work too. I'll go edit there next time for a bit of variety!
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.

Durch das Abschicken Ihres Kommentars stimmen Sie der Datenschutzrichtlinie zu und erlauben, dass die eingegebenen Informationen (mit Ausnahme der eMail-Adresse) in diesem Blog veröffentlicht werden.