Pergunta relacionada aqui.
Percebo que garantir a correção topológica é essencial para aplicativos GIS, isso ocorre porque a entrada da operação booleana do usuário ou do polígono pode ter sérios problemas topológicos (mesmo que os polígonos pareçam corretos) que comprometeriam a qualidade das operações subseqüentes.
Polígono limpo é como os Geo Wizards fazem para garantir a correção da topologia.
Arcgis também tem um comando para limpar as lascas.
Minha pergunta não é sobre como usar os pacotes de software existentes para garantir que os dados de entrada do polígono estejam topologicamente corretos; em vez disso, minha pergunta é sobre como esses pacotes de software implementam esses procedimentos de limpeza. Em outras palavras, qual é o algoritmo que posso usar para garantir a correção de todos os erros topológicos, considerando um conjunto de entradas poligonais?
Respostas:
Uma rápida pesquisa no Google Scholar exibiu os seguintes artigos bem citados:
Thierry Ubeda e Max J. Egenhofer. Correção de erros topológicos no SIG . Avanços em bancos de dados espaciais, notas de aula em ciência da computação , 1997, volume 1262/1997, 281-297, DOI: 10.1007 / 3-540-63238-7_35 ( PDF )
Sylvie Servigne, Thierry Ubeda, Alain Puricelli e Robert Laurini. Uma Metodologia para Melhoria da Consistência Espacial de Bancos de Dados Geográficos . GeoInformatica , 2000, Volume 4, Número 1, 7-34, DOI: 10.1023 / A: 1009824308542 ( PDF )
fonte
Você pode encontrar uma descrição detalhada das rotinas de limpeza topológica no código-fonte e nos manuais do GRASS GIS: http://grass.osgeo.org/programming7
As rotinas de limpeza estão codificadas aqui: http://trac.osgeo.org/grass/browser/grass/trunk/vector/v.clean
Exemplos para as rotinas subjacentes:
Os conceitos subjacentes estão descritos aqui: http://grass.osgeo.org/programming7/vectorlib.html#vlibTopoExamples
fonte
Embora não seja um algoritmo, esta página fornece algumas informações sobre que tipos de erros de topologia o "check geometry" procura nas ferramentas do ArcGIS Check Geometry / Repair Geometry. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000003v000000
fonte
Não acho que haja uma maneira de automatizar completamente a correção de erros topológicos em um determinado conjunto de dados. Algumas coisas, como dangles, podem automatizar a divisão e excluir o dangle resultante. Mas e as lascas entre dois polígonos adjacentes, qual polígono deve ser mesclado com qual lasca para eliminá-lo? Esse tipo de pergunta parece precisar da entrada do usuário. Para identificar os erros, no entanto, acho que os algoritmos usam algum tipo de variação do DE-9IM (Dimensionally extended 9 something something). Acho que sua melhor aposta seria olhar para o Java Topology Suite (JTS). Especificamente a classe Geometry Graph. Eu acho que isso poderia ser usado para construir os diferentes componentes de uma geometria específica e, em seguida, usado para verificar diferentes problemas de topologia. Eu nunca fiz isso, mas olhei para ele há não muito tempo.
Se você não estiver familiarizado com Java, GEOS é o sabor C ++ do JTS ou NetTopologySuite é o sabor C #.
Espero que ajude.
fonte
A documentação do comando Integrar do ArcGIS já foi mencionada, mas a ESRI também produziu um documento técnico Noções básicas sobre processamento geométrico no ArcGIS documentando a lógica de processamento usada pelo Integrate (e operações de geoprocessamento que envolvem tolerância em geral). Isso se concentra na prevenção e correção de erros topológicos gerados a partir do geoprocessamento. Existem algumas referências fornecidas que também podem ser úteis.
fonte