Medindo a área das classes raster?

9

Existem ferramentas ou métodos no ArcMap que podem medir a área de cada nível da saída de densidade do kernel?

Observe que este é apenas um gráfico de densidade do kernel (não um arquivo de forma ou polígono). Análise de densidade do kernel (verde escuro (10%) a vermelho (90%) (1)

Eu tentei algumas coisas, mas eu preciso que seja preciso.

Análise de densidade de Kerenel (verde escuro (10%) a vermelho (90%)

Mr Angus
fonte

Respostas:

7

Eu usaria o seguinte fluxo de trabalho para calcular a área dentro das classes:

  1. Reclassifique (Spatial Analyst) a saída de densidade do kernel para as classes que você estiver usando. Por padrão, o ArcGIS cria uma superfície rasterizada contínua para a saída de densidade do kernel, mas reclassifica a legenda (que é temporária). O uso da ferramenta reclassificar tornará isso permanente.
  2. Abra a tabela de atributos da densidade do kernel reclassificada e observe o campo "COUNT" ( Figura 1 ). Esta é a contagem de todos os pixels em cada classe. Por exemplo, a Classe 1 (Valor = 1) possui uma contagem de 620.063 pixels. Como meu sistema de coordenadas é UTM, as unidades estão em metros e os pixels estão em uma resolução espacial de 1m. Portanto, a classe 1 é 620.063 m ^ 2.
  3. Para converter a contagem para outras unidades, como hectares, adicione um novo campo na tabela de atributos.
  4. Campo Calcular ( Figura 2 )
  5. Lógica verifique os resultados destacando uma classe ( Figura 3 )

figura 1

insira a descrição da imagem aqui

Figura 2

insira a descrição da imagem aqui

Figura 3

insira a descrição da imagem aqui

Aaron
fonte
2

Se você deseja uma solução arcpy:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

Como alternativa, você pode gravar os valores em um arquivo csv / text.

user1269942
fonte
1

Supondo que seu gráfico de densidade do kernel seja uma varredura criada usando a ferramenta de densidade do kernel ou similar, isso é apenas uma questão de usar a ferramenta Raster to Polygon .

Certifique-se de especificar o campo que define a classificação da varredura e ela será convertida em polígonos. Você pode usar a ferramenta Calcular geometria para calcular a área.

Fezter
fonte
Eu tentei isso. quando eu arrasto o arquivo raster, ele diz "um ou mais itens descartados eram inválidos". O erro sugere que há texto no arquivo que está "interferindo". Você tem alguma idéia do motivo?
Angus
11
@MrAngus O problema é que a densidade do kernel sempre produz uma saída de varredura de ponto flutuante, enquanto a varredura para polígono exige uma entrada de varredura inteira (consulte os arquivos de ajuda vinculados). Você precisaria reclassificar o raster KD primeiro.
11134 Chris W
Observe que Calcular geometria é por recurso e não fornecerá a área total de todos os polígonos que compartilham uma determinada classe.
Matt Wilkie
0

Uma solução rápida para isso é uma solução manual:

  1. Abra as propriedades da varredura e vá para a guia simbologia.
  2. Presumivelmente, a simbologia já está definida como Classificada e o número de classes é o que você deseja. Clique no botão Classificar.
  3. No lado direito da caixa de diálogo, há uma caixa de valores de quebra. Clique em cada valor de quebra e, na parte inferior da caixa de diálogo, você verá # Elements in Class. Esta é uma contagem dos pixels nessa classe. Anote o número de cada classe ou insira-o em uma planilha.
  4. Cancele de volta às propriedades de varredura e mude para a guia Origem. O tamanho da célula é dado lá em x, y. Multiplique esses dois juntos e você terá a área de um pixel.
  5. Agora pegue essa área vezes o número de pixels em cada classe. Isso deve lhe dar a área total dessa classe.

Preciso é um termo relativo. No que diz respeito às áreas rasterizadas, será exatamente preciso. Se você usar o método de Fezter, a área poderá diferir dependendo do uso de Smooth ao converter as regiões baseadas em pixels em polígonos.

Chris W
fonte