Significado do parâmetro de tolerância do Simplify

45

Os parâmetros padrão do algoritmo simplificado de Douglas-Peucker são geometria e tolerância (por exemplo, ST_Simplify no PostGIS). Qual é o significado do parâmetro tolerance ? Eu sei que quanto maior o valor, mais grossa será a geometria. Mas o número tem alguma unidade ou é apenas arbitrário?

ejel
fonte

Respostas:

41

A tolerância é uma distância . Aproximadamente, qualquer "manobra" em uma curva que varie de uma linha reta em menos que esse valor será corrigido. O algoritmo encontra as manobras mais extremas que excedem a tolerância, fixa os pontos onde mais se desviam de um caminho reto e depois se aplica recursivamente aos arcos entre as manobras fixadas.

A tolerância deve ser expressa nas mesmas unidades usadas pelo software para executar o algoritmo. (Isso dependerá do uso das coordenadas armazenadas ou projetadas "on the fly" para exibição ou análise.) Uma descrição ilustrada aparece no artigo da Wikipedia sobre o algoritmo Douglas-Peucker.

whuber
fonte
Ótima explicação, +1.
Derek Swingley 07/07
1
Geralmente, esse valor do parâmetro de tolerância deve ser igual à resolução de destino.
julien
1
@ julien Isso faz sentido. Eu sempre gosto de entender o raciocínio por trás de tais regras práticas, porque na minha experiência muitas dessas conclusões não se sustentam quando examinadas mais de perto. (E é um prazer ficar surpreso assim: você sempre aprende alguma coisa.) Portanto, você poderia compartilhar seus pensamentos sobre por que a tolerância deve ser igual à "resolução-alvo" (e qual é exatamente essa resolução)?
whuber
6

Não o viu no link que você postou, mas encontrou o seguinte:

As unidades de tolerância são as mesmas da projeção da geometria de entrada.

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

Derek Swingley
fonte
1
Eu vejo. Mas o que exatamente significa quando se diz que a geometria é WGS84 (lat / lon) e define a tolerância para 1,0? Erro dentro de 1 grau? Ainda um pouco confuso.
ejel
1
Eu não diria "erro dentro de 1 grau" ... dar uma olhada na página de wikipedia para o algoritmo, há um gráfico agradável e boa explicação lá: en.wikipedia.org/wiki/...
Derek Swingley