Eu tenho um shapefile com 16.400 polígonos. Cada polígono mostra a expansão de uma espécie de ave para o mundo inteiro.
Agora eu tenho que contar os polígonos sobrepostos. Eu tentei com união e dissolvi (conte a união), mas a união não está funcionando para tantos polígonos.
Então tentei cortar continentes, mas isso também não está funcionando devido ao grande número de polígonos. Além disso, tentei esse método , também sem sucesso.
Portanto, estou perguntando a você que há uma maneira de contar polígonos sobrepostos se 16400 polígonos estiverem em um shapefile?
Estou trabalhando com 10.0 e posso trabalhar com 10.2. Uma solução ArcPy também é maravilhosa.
No momento, estou pensando em criar uma rede de pesca e iterar sobre as linhas do shp com os polígonos 16400 e escrever 1 em um campo de valor de uma célula da rede de pesca se o polígono estiver nessa célula e depois na próxima linha (polígono) e se isso também estiver na contagem de células da rede de pesca +1.
Mas não sei se essa é uma boa solução e como realizá-la. Ou eu tenho que aprender R para usar essa abordagem.
O resultado: deve ser uma forma em que você tenha novos polígonos fora dos sobrepostos e um campo em que as sobreposições sejam contadas.
Portanto, no final, deve haver um arquivo de forma, onde você pode ver quantas espécies de aves são encontradas no mesmo local.
Respostas:
Eu recomendaria o uso da ferramenta Count Overlapping Features (Analysis) .
fonte
Usando tokens de geometria arcpy, você pode tentar algo como isto:
Para os dados de amostra acima, o código retornará as seguintes contagens de sobreposição:
O código como está retornará apenas contagens para polígonos que tenham pelo menos uma sobreposição.
fonte
Um método muito simples é:
join_count
campofonte
Acho que você tentou este método: Contar e rasterizar sobreposições de polígono no ArcGIS Desktop?
16.400 polígonos não são muitos. No entanto, uma solução potencial é simplesmente fazer uma junção espacial regular. Na
ArcMap toolbox, > Analysis Tools -> Overlap -> Spatial Join
.Defina os recursos
target
ejoin
para o mesmo conjunto de dados e especifique uma saída. Deixe o restante das configurações.Após alguns instantes, você deve recuperar um arquivo shapefile que contém uma coluna "contagem de junção". Subtraia 1 disso (como obviamente cada recurso deve se cruzar), e esse deve ser o número de "sobreposições" (na verdade se cruzam) para cada polígono.
Acabei de realizar
fonte
Eu baixei e experimentei a ferramenta "Count Overlapping Polygons". Pode funcionar, mas leva muito tempo (provavelmente devido ao tamanho do arquivo, mas o meu FC de entrada tinha apenas <5.000 registros).
Enquanto esperava a execução da ferramenta, abri outra janela do ArcMap e foram necessários apenas alguns passos rápidos para conseguir o que eu queria. 1) Junção espacial - usando a mesma classe de recurso que os recursos de destino e junção e selecionando a opção "Unir um a muitos". 2) Dissolver - usando a saída da última etapa. Use o "TARGET_FID" como o campo de dissolução e, para as estatísticas, você pode somar o campo "Join_Count" ou COUNT o campo "JOIN_FID". 3) No arquivo de saída da etapa 2, use a calculadora de campo subtrair 1 do campo de estatísticas ("SUM_Join_Count" ou "COUNT_JOIN_FID") - pois cada recurso se cruza.
Sugiro usar esse método na ferramenta "Count Overlapping Polygon". Comecei a executar a ferramenta COP ~ 5 min antes de iniciar este método Join-> Dissolve e isso me deu o resultado com tempo suficiente para escrevê-lo antes que a ferramenta "Count Overlapping Polygon" tivesse terminado.
Espero que isto ajude!
fonte