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?
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.
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.
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/...
Não o viu no link que você postou, mas encontrou o seguinte:
http://revenant.ca/www/postgis/workshop/advanced.html#processing-functions
fonte