Contagem e rasterização de polígonos sobrepostos no ArcGIS Desktop?

17

Como você pega uma camada vetorial com polígonos sobrepostos e a transforma em uma varredura em que cada célula conta o número de polígonos que contêm essa célula?

Estamos analisando polígonos de áreas de queima de fogo entre 1976 e 2000 e queremos ver quantos incêndios estariam contidos em cada célula raster.

user15201
fonte

Respostas:

22

Faça isso em três etapas: divida os polígonos em suas partes componentes, conte as sobreposições e converta em varredura. Isso evita o custo computacional potencialmente enorme de converter separadamente cada polígono em uma varredura e combinar essas rasters.

  1. Union(no Geoprocessingmenu) divide os polígonos em suas partes.

    Infelizmente, cada sobreposição é duplicada na saída: possui uma cópia idêntica para cada polígono original que a cobre. Portanto

  2. Dissolve(novamente no Geoprocessingmenu) mesclará partes sobrepostas, desde que você encontre uma maneira de identificá-las exclusivamente. Leia a caixa de diálogo: no final, você terá a opção de calcular "estatísticas". Escolha qualquer campo que possa ter identificado os polígonos originais e solicite uma contagem.

    Em muitos casos, a combinação da área poligonal e do perímetro identificará exclusivamente as peças. Caso contrário, você pode adicionar mais propriedades geométricas em campos adicionais, como coordenadas do centróide, até acumular informações suficientes para distinguir todos os recursos.

    A camada resultante possui um recurso para cada sobreposição de polígono e algum tipo de campo "count" contando o número de sobreposições.

  3. Converta isso em uma varredura, usando o campo "count" para os atributos.


Por exemplo, aqui estão alguns polígonos sobrepostos e seus identificadores com a tabela de atributos mostrada:

insira a descrição da imagem aqui

Após a segunda etapa, temos um registro para cada região sobreposta, juntamente com uma contagem que já pode ser usada para simbolizar a quantidade de sobreposição:

insira a descrição da imagem aqui

O resto é fácil - e é apenas uma única operação de rasterização.

whuber
fonte
Este método vector funciona muito bem, também, exceto quando aplicada a centenas de milhares de polígonos com muitas sobreposições em um computador com memória limitada ...
CCN
@ccn Quando houver mais polígonos que o ArcGIS possa suportar, divida o conjunto de dados em partes que ele possa processar. A produção será de vários rasters - mas não de milhares ou milhões deles - que são fáceis de somar. Outra vantagem do uso Unioné que, com quase o mesmo fluxo de trabalho, ele pode resolver a situação em que os polígonos residem em vários conjuntos de dados (o que geralmente é um design de banco de dados ruim, mas infelizmente comum): basta unir todos os conjuntos de dados de entrada de uma só vez.
whuber
@ccn (Continuação) o ponto que você menciona se resume a isso: quando é melhor rasterizar os polígonos e usar operações de varredura para mesclá-los, em comparação com o uso de operações vetoriais ( union) seguidas de rasterização? As operações de vetor serão atoladas quando os recursos forem digitalizados com mais detalhes do que o necessário, dotando-os de muitos vértices. Nessas circunstâncias extremas, a abordagem raster poderia ser melhor (embora a primeira simplificação dos polígonos possa ser uma opção superior). Em todas as outras situações, porém, rasterizar cada polígono separadamente é um enorme desperdício de tempo do computador e do humano.
whuber
1
+1 para uma solução baseada em vetor. Para colocar as coisas em perspectiva aqui, gravar dados de perímetro nunca é muito grande. Por exemplo, todo o conjunto de dados do perímetro de queima do MTBS (EUA, incluindo o Alasca) para 1984 - 2010 contém ~ 19000 polígonos. Uma abordagem baseada em vetor ou em varredura funcionará perfeitamente.
Aaron
@ Aaron Obrigado pela perspectiva. Para fazer os EUA contíguos de uma só vez em qualquer resolução razoável (por exemplo, 100 m), você precisaria, digamos, de uma varredura de 50000 colunas e 30000 linhas contendo 1.500.000.000 de células. A geração de 19.000 rasters - até mesmo a compactação incorporada - e a execução de 19.000 * 1500000000 = cerca de 30000 bilhões de adições - exigiriam algum tempo! Se, em vez disso, cada polígono usou, digamos, 100 vértices (o que é muito detalhado), a união envolve 1.900.000 vértices e é uma operação O (n log (n)); em princípio (mas não no ArcGIS :-) que leva menos de 1 segundo.
whuber
1

A postagem a seguir tem uma pergunta um pouco semelhante à de que você pode encontrar uma solução relacionada: Criando uma superfície raster de sobreposições a partir de arquivos de forma de polígono de vetor? .

Para esta abordagem de varredura computacionalmente rápida e simples, você precisará (1) separar os polígonos sobrepostos em camadas separadas (presumivelmente por ano para polígonos de fogo) usando Selecionar por atributos no ModelBuilder com um iterador ou uma ferramenta de script, (2) converter cada Polígono para varredura com a atribuição de célula MAXIMUM_COMBINED_AREA (garantindo o mesmo tamanho de célula , snap raster e que a extensão permanece a mesma que o conjunto inteiro de polígonos) - usando um valor de campo constante (por exemplo, use o campo ou linhas do ano com todos os 1s) para converter (novamente use ModelBuilder com um iterador ou script Python para ajudar a automatizar) e, em seguida (3) aplique a seguinte ferramenta Spatial Analyst: Cell Statistics - use o statistics_type VARIETY se cada varredura tiver um valor único, como o ano ou SUM, se todos os valores das células rasters forem 1s - verifique se ignora o NoData.

Os rasters intermediários (da conversão anterior) podem ser excluídos ou estão prontos para serem usados ​​em análises de varredura subsequentes.

ccn
fonte
(Por favor, veja meu comentário na resposta de Aaron .) #
Whuber