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?
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.
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.
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/...
Nie widziałem tego w opublikowanym linku, ale znalazłem to:
http://revenant.ca/www/postgis/workshop/advanced.html#processing-functions
źródło