Bedeutung des Toleranzparameters von Simplify

45

Die Standardparameter des Simplify- Algorithmus von Douglas-Peucker sind Geometrie und Toleranz (z. B. ST_Simplify in PostGIS). Was bedeutet der Toleranzparameter ? Ich weiß, dass die Geometrie umso gröber ist, je größer der Wert ist. Aber hat die Zahl irgendeine Einheit oder ist sie nur willkürlich?

Ejel
quelle

Antworten:

41

Die Toleranz ist ein Abstand . Grob gesagt werden alle "Wackelbewegungen" in einer Kurve, die um weniger als diesen Betrag von einer geraden Linie abweichen, ausgeglichen. Der Algorithmus findet die extremsten Wackelbewegungen, die die Toleranz überschreiten, steckt die Punkte fest, an denen sie am stärksten von einem geraden Pfad abweichen, und wendet sich dann rekursiv den Bögen zwischen den festgesteckten Wackelbewegungen an.

Die Toleranz muss in denselben Einheiten angegeben werden, die von der Software zur Ausführung des Algorithmus verwendet werden. (Dies hängt davon ab, ob die gespeicherten oder projizierten Koordinaten "on the fly" für die Anzeige oder Analyse verwendet werden.) Eine illustrierte Beschreibung finden Sie in dem Wikipedia-Artikel zum Douglas-Peucker-Algorithmus.

whuber
quelle
Tolle Erklärung, +1.
Derek Swingley
1
Normalerweise sollte dieser Toleranzparameterwert der Zielauflösung entsprechen.
Juli
1
@ Julien Das macht Sinn. Ich verstehe die Gründe für solche Faustregeln immer gern, weil viele dieser Schlussfolgerungen meiner Erfahrung nach bei näherer Betrachtung nicht stimmen. (Und es ist erfreulich, so überrascht zu sein: Sie lernen immer etwas.) Könnten Sie daher Ihre Gedanken darüber teilen, warum die Toleranz gleich der "Zielauflösung" sein sollte (und was genau diese Auflösung ist)?
Whuber
6

Es wurde in dem von Ihnen geposteten Link nicht angezeigt, es wurde jedoch Folgendes gefunden:

Die Toleranzeinheiten entsprechen der Projektion der Eingabegeometrie.

http://revenant.ca/www/postgis/workshop/advanced.html#processing-functions

Derek Swingley
quelle
1
Aha. Aber was bedeutet es genau, wenn die Geometrie WGS84 (lat / lon) ist und die Toleranz auf 1,0 gesetzt wird? Fehler innerhalb von 1 Grad? Immer noch ein bisschen verwirrt.
6.
1
Ich würde nicht "Fehler innerhalb von 1 Grad" sagen ... Schauen Sie sich die Wikipedia-Seite für den Algorithmus an, dort gibt es eine schöne Grafik und eine gute Erklärung: en.wikipedia.org/wiki/…
Derek Swingley