Eu tenho um shapefile contendo recursos com geometrias duplicadas, mas atributos diferentes (por exemplo, um polígono com o atributo XX e um polígono idêntico com o atributo XY). Quero identificar as duplicatas e escolher uma com os atributos corretos, excluindo a outra.
Eu tentei ferramentas de topologia no OpenJump / Kosmo, mas sem sucesso. Eles têm uma ferramenta 'excluir duplicados' que faz o que eu quero, exceto que parece excluir arbitrariamente um dos recursos, em vez de me deixar escolher qual manter.
Tenho acesso ao QGIS, OpenJUMP, Kosmo, etc. e posso instalar outras ferramentas de código aberto / gratuitas, se necessário.
Pensamentos?
fonte
É isso que eu costumo fazer nesses casos. Pelo que entendi, você terá que fazer uma verificação manual para decidir qual deles tem o atributo certo. Então eu costumo fazer isso em duas etapas. Primeiro, faço uma tabela ou uma exibição no PostGIS com os polígonos duplicados e, em seguida, abro essa tabela em um GIS da área de trabalho junto com a camada original na qual desejo excluir as duplicatas. Isso me levará às duplicatas através da minha tabela duplicada e eu posso excluir a tabela ou shapefile original ou o que for.
A consulta para encontrar as duplicatas será algo assim se você tiver um ID exclusivo chamado gid e uma coluna de geometria chamada the_geom:
Existem algumas variantes no ST_Equals, mas acho que o ST_Equals é o que você deseja. Isso fornecerá uma tabela com as geometrias duplicadas e o gid (id) da primeira e da segunda ocasião do polígono. Você receberá o mesmo par de duplicatas duas vezes, mas isso não deve importar, porque você quer que eles mostrem onde estão.
HTH Nicklas
fonte
Se você estiver usando o PostGIS 1.5.x, verifique a função ST_HausdorffDistance ().
Geometrias duplicadas produzirão um valor 0. Use-o como as auto-junções mencionadas. Muito bonito para comparar formas de polígono.
fonte
Uma maneira mais simples de fazer. Calcule a área no GIS da área de trabalho e ordene por área ascendente ou descendente. Agora você terá que verificar todas as linhas para ver os objetos duplicados na sua tabela de atributos. É baseado em uma suposição de que você nunca tem exatamente a mesma área para objetos não duplicados, embora às vezes possa estar errado.
fonte