Znaczenie parametru tolerancji Uproszczenia


45

Standardowymi parametrami algorytmu upraszczającego Douglasa-Peuckera są geometria i tolerancja (np. ST_Simplify w PostGIS). Jakie jest znaczenie parametru tolerancji ? Wiem, że im większa wartość, tym grubsza będzie geometria. Ale czy liczba ma jakąkolwiek jednostkę, czy jest po prostu arbitralna?

Odpowiedzi:


41

Tolerancja to odległość . Z grubsza, wszelkie „poruszenia” na krzywej, które różnią się od linii prostej o mniej niż tę kwotę, zostaną wyprostowane. Algorytm wyszukuje najbardziej ekstremalne ruchy, które przekraczają tolerancję, przypina punkty, w których najbardziej odchylają się od prostej ścieżki, a następnie rekurencyjnie stosuje się do łuków między przypiętymi ruchami.

Tolerancja musi być wyrażona w tych samych jednostkach, których oprogramowanie używa do wykonania algorytmu. (Będzie to zależeć od tego, czy używa współrzędnych zapisanych, czy rzutowanych „w locie” do wyświetlania lub analizy.) Ilustrowany opis pojawia się w artykule w Wikipedii na temat algorytmu Douglasa-Peuckera.


Świetne wyjaśnienie, +1.
Derek Swingley,

1
Zwykle ta wartość parametru tolerancji powinna być równa rozdzielczości docelowej.
Julien

1
@julien To ma sens. Zawsze lubię rozumieć uzasadnienie takich praktycznych reguł, ponieważ z mojego doświadczenia wynika, że ​​wiele takich wniosków nie wytrzymuje przy dokładniejszym zbadaniu. (I miło jest być zaskoczonym w ten sposób: zawsze czegoś się uczysz.) Czy mógłbyś zatem podzielić się swoimi przemyśleniami na temat tego, dlaczego tolerancja powinna być równa „rozdzielczości docelowej” (i czym dokładnie jest ta rozdzielczość)?
whuber

6

Nie widziałem tego w opublikowanym linku, ale znalazłem to:

Jednostki tolerancji są takie same jak rzut geometrii wejściowej.

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


1
Widzę. Ale co to dokładnie znaczy, gdy powiedzmy, że geometria to WGS84 (lat / lon) i ustawić tolerancję na 1,0? Błąd w ciągu 1 stopnia? Wciąż trochę zdezorientowany.
ejel

1
Nie powiedziałbym „błąd w granicach 1 stopnia” ... spójrz na stronę Wikipedii dla algorytmu, jest tam ładna grafika i dobre wyjaśnienie: en.wikipedia.org/wiki/...
Derek Swingley
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.