Procurando estratégias de generalização para criar contornos no PostGIS?

22

Eu tenho um conjunto de dados de construção de pegadas vetorizadas de um conjunto de dados raster. Atualmente, o conjunto de dados é apenas uma representação vetorial dos dados rasterizados. Eu gostaria de um conjunto de dados de polígonos que tenha apenas vértices nos cantos do edifício. Eu tentei usar o comando Simplify no PostGIS com sucesso limitado.

Existe uma maneira melhor?

Matthew Snape
fonte

Respostas:

17

Existem muitos algoritmos dedicados à construção de simplificação. Você pode dar uma olhada neste site para obter uma visão geral. Veja também esta pergunta . Você poderia usar:

  • Simplificação do contorno da construção: consiste em excluir recursivamente arestas muito curtas do contorno e alongar as arestas vizinhas. Exemplo:

texto alternativo

  • Menor algoritmo de retângulo circundante: consiste em substituir a geometria da construção pelo menor retângulo circundante. Esse retângulo também pode ser dimensionado para a área inicial do edifício. Exemplo:

texto alternativo

  • Algoritmo de esquadria: consiste em aplicar uma rotação leve às arestas para tornar os cantos perfeitamente quadrados. Exemplo:

texto alternativo

Essas transformações podem ser suficientes para sua necessidade. Pode ser interessante combiná-los.

Tenho quase 100% de certeza de que nenhum desses algoritmos foi implementado no PostGIS. Alguns são implementados na biblioteca java Opencarto que estou desenvolvendo. Deixe-me saber se você deseja testá-lo!

julien
fonte
1
Você pode dar uma breve explicação de quais algoritmos você se refere no Opencarto para a mencionada "simplificação de estrutura de tópicos". Não consegui encontrar informações diretas no wiki ou código no Opencarto.
benjist
É "ShortEdgesDeletion". Você pode encontrá-lo no github: github.com/jgaffuri/OpenCarto/blob/master/src/main/java/org/…
julien
3

Algo assim pode fazer o truque:

"Se fizermos buffer em uma quantidade grande, e depois inverter o buffer na mesma quantidade, obteremos algo que tem uma forma semelhante ao original, mas sem os bits amassados".

http://blog.opengeo.org/2010/11/22/removing-complexities/

LR1234567
fonte
essa é uma abordagem interessante e parece relativamente eficaz. Obrigado pelo ponteiro, é algo que poderei usar. Sua resposta seria melhor se contivesse uma frase simples que contenha a idéia principal que está sendo referenciada e não seja apenas um link.
Matt Wilkie