Consertando milhares de pequenos polígonos sobrepostos?


21

Estou usando o ArcMap 10.3.

Eu tenho uma camada de diferentes tipos de uso da terra. Descobri que muitos polígonos se sobrepõem e, como resultado, o mesmo polígono tem dois tipos diferentes de uso da terra.

Usando a resposta de @ radouxju , construí uma topologia para a camada de uso da terra (com a regra de não se sobrepor). Em seguida, usei a mesclagem para corrigir os polígonos grandes sobrepostos.

No entanto, tenho milhares de pequenos polígonos sobrepostos. Eu posso consertar todos eles manualmente, o que levará tempo.

Existe uma maneira mais rápida de corrigir todos esses erros?

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Atualizei o mapa para mostrar todos os tipos de uso da terra. Polígonos estão se sobrepondo; não lascas.


2
Será que a Integrar Ferramenta de trabalho para você?
Fezter

@ Fezter Acho que não, porque os polígonos não têm a mesma área e não posso usar a mesma tolerância XY para toda a camada.
brilhante

1
@elelwan: Qual é o seu objetivo com esses dados? Você está criando esses dados para serem usados ​​por outras pessoas (como se você fosse o criador dos dados)? Ou você está tentando "limpá-lo" para uso em um mapa ou análise? A razão pela qual pergunto é que esses dados parecem dados de lixo. Está além da análise GIS, precisa ser completamente redigitizada e ter alguém com autoridade (conhecimento de trabalho) para tomar decisões informadas sobre onde essas fronteiras devem estar. Caso contrário, eu deixaria os dados como estão.
AlexGIS

@alexGIS Concordo plenamente com você sobre o quão ruim são os dados. No entanto, esses são os melhores dados que obtive. Estou tentando limpar para análise.
brilhante

Respostas:


6

A preocupação levantada por @Adam Cara é muito válida. No entanto, quando olhei para a auto-interseção, parecia que a maioria deles é um pedaço fino na fronteira entre dois polígonos maciços ou pedaços / ilhas desconectados de um grande polígono sentado dentro de outro. Nesse caso, apagar sobreposições e atribuir sobreposições dissolvidas podem funcionar como atributo do vizinho mais próximo (o que ocorrer primeiro).

Processo:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

Teste:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

Mensagem:

  • Executando: Intersecione "dissolveu" D: \ Scratch \ test.shp ALL # INPUT
  • Hora de início: Sex. 22 de abr. 10:16:07 2016
  • Recursos de leitura ...
  • Recursos de craqueamento ...
  • Recursos de montagem ...
  • AVISO 000117: Aviso de saída vazia gerada.
  • Êxito em 22 de abril - 10:16:09 2016 (Tempo decorrido: 2,34 segundos)

Observe que esta mensagem significa que não há interseções automáticas na saída do Dissolve final

Resultado:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing


1
Esta solução o torna "limpo", mas não "correto". Se o OP não estiver preocupado com o fato de uma área que se sobrepõe a "Laticínios" e "Ovelhas / Carne" agora seja recategorizada para "Acúmulo / Parques / Outros" e outras recategorizações arbitrárias que vejo ao comparar a entrada com a saída, então Esta solução funciona. Dito isto, é um fluxo de trabalho elegante, bom trabalho.
AlexGIS

1
Com tais dados, ninguém sabe o que é correto
FelixIP

7

Se seus polígonos são lascas, o comando eliminar funciona bem para mesclá-las no polígono da área maior ou na borda mais longa.

Se os polígonos forem sobrepostos, pode haver uma maneira mais fácil, mas eu selecionaria as sobreposições em uma camada separada e as uniria novamente, criando as lascas e usando o comando delete.


Obrigado pelo seu tempo e ajuda. Meus polígonos estão sobrepostos. Para seguir sua resposta, como posso selecionar as sobreposições em uma camada separada? As sobreposições são mostradas como erros de área depois que eu construí a topologia.
brilhante

Basta executar o Intersect ( resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… ) na camada de polígonos. O resultado do Intersect será todas as sobreposições nessa camada.
Irfan

@iRfAn Obrigado, corro o cruzamento e consegui a sobreposição.
brilhante

@Bryan Waller Tentei seguir o que você sugeriu: selecionei as sobreposições para uma camada separada usando "interseção"; depois junte-os novamente em "MAS NÃO FOI CRIADA PRATA". Depois de usar o comando eliminar, ainda consigo encontrar o mesmo polígono com dois tipos diferentes de uso da terra. Qualquer ajuda seria apreciada. Você pode encontrar a camada de uso da terra aqui goo.gl/0aE3wq
shiny

6
  1. Selecione uma área pequena e converta em dois arquivos de forma para ver se esse processo está funcionando.
  2. Crie um novo campo chamado teste (número) em s1 e s2.
  3. Interseção de dois arquivos de forma S1 e S2.
  4. As áreas sobrepostas serão identificadas em um arquivo separado, por exemplo, denominado Common1 (Área hachurada na figura).
  5. Calcule o teste de campo como 1 em Comum.
  6. União S1 e Comum
  7. Selecione 1 insira a descrição da imagem aquino campo de teste e exclua a área hachurada.
  8. Agora Mesclar s2 e comum. O comando Apagar pode ser usado para apagar a área comum.

@ Shape Obrigado pela sua ajuda. As sobreposições que tenho estão no mesmo arquivo shapefile e não em dois arquivos de forma.
brilhante

6

Você já pensou em dividir as classes individuais de uso da terra em arquivos de forma separados para trabalhar com eles dessa maneira. Primeiro pensei em fazer um cruzamento, mas vi que havia falhado acima. Se você tiver sete shapefiles separados, poderá manipulá-los mais facilmente.

A principal pergunta que tenho é se houver sobreposição, você tem uma hierarquia para qual classe vence e deve aparecer no final? Por exemplo: se o Recorte e o Laticínio se sobrepuserem, quais você mantém? Depois de estabelecer essa hierarquia, cruze duas classes por vez, começando pela mais baixa e terminando com a mais alta. Se sua saída estiver vazia em um determinado cruzamento, isso significa que eles não se cruzam.


2
Você traz a questão mais importante aqui: como classificar sobreposições? Apenas tornar os dados "organizados" não significa que estão "corretos".
AlexGIS

@alexGIS Novamente, eu concordo com você. No entanto, dado o objetivo desta análise e a pequena área dos polígonos sobrepostos dos dados, a categoria da sobreposição não é o principal objetivo em comparação com a correção das sobreposições.
brilhante

Essa pode ser uma boa ideia por outro motivo. As sobreposições podem representar alterações nos limites do campo e corte ao longo do tempo.
NmToken

5

Depois de criar uma topologia, você identificou os erros.

Na lista que mostra os erros, você pode selecionar todos os erros do mesmo tipo, clicar com o botão direito do mouse nessa lista e escolher uma "correção". No seu caso, a correção seria "criar recurso", que criará um novo polígono onde dois polígonos se sobrepõem. Esta é a primeira etapa (observe que você pode obter um resultado semelhante usando a ferramenta de união com a camada de uso da terra como entrada única e, em seguida, com várias peças em uma única peça (mas as sobreposições ainda se sobrepõem, é necessário excluir uma das o valor do atributo) ou converta seu polígono em linhas e depois em polígono (mas, se você perder o atributo, precisará de junção espacial para recuperar os atributos))

O segundo passo consistiria na remoção dos pequenos polígonos. O problema é que você realmente não tem uma regra para decidir qual valor de atributo você gostaria de manter. Minha ferramenta favorita é a ferramenta de eliminação , onde você pode escolher em qual polígono vizinho os pequenos polígonos serão mesclados (com base no maior limite compartilhado ou na maior área)

Última observação: se você possui uma regra para a classe de uso prioritário do solo, selecione iterativamente os pequenos polígonos (que não possuem rótulo) por localidade para atribuir cada classe de uso do solo por ordem decrescente de prioridade e use a calculadora de campo para atribuir seus rótulo.


4

Enquanto eu concordo com os outros sobre se são polígonos sobrepostos ou lascas, pelo que estou vendo aqui nesta foto, você está mostrando a todos. Eu recomendo que você altere suas cores de simbologia para uso no solo. Desta forma, você pode ver qual deles deve ser ou não o outro. A única cor que você nos mostrou em rosa é realmente difícil de ler e pode levar muito tempo para você.

Na segunda parte, eu selecionaria todos os polígonos de sobreposições ou lascas e os exportaria para um novo arquivo de forma. Dessa forma, você pode identificar o que eles são no uso da terra.


Obrigado pela ajuda. Atualizei o mapa para mostrar as cores para todos os usos da terra.
brilhante

4

Uma solução possível, se você tiver o Spatial Analyst ou 3D Analyst, converter os polígonos de uso da terra em uma imagem rasterizada usando a ferramenta (Conversão de polígono para varredura) para garantir que nenhum polígono sobreposto saia, pois não é possível obter pixels sobrepostos. Em seguida, converta a varredura novamente em polígonos usando a ferramenta (Raster to Polygon), se você ainda precisar dela em formato vetorial. Nesse caso, escolha o tamanho da célula de alta resolução (tamanho detalhado da célula) para obter polígonos de boa qualidade, mas é necessário considerar a memória. Pode ser necessário tentar várias vezes alterando o tamanho da célula até ficar satisfeito com os resultados. Talvez seja necessário suavizar os polígonos de saída, se não for perfeito, mas isso depende se você tiver pelo menos Licença Padrão para ArcGIS Desktop. Sei que não é uma tarefa fácil, mas pode resolver seu problema.


4

Verifique as poucas folgas ou sobreposições entre polígonos para encontrar tolerância e use a ferramenta Integrar do Arctoolbox com os valores de tolerância adequados.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.