Como funciona a Estatística Focal

Estatística Focal executa uma operação que calcula uma estatística para células de entrada dentro de um conjunto de janelas ou vizinhanças sobrepostas. A estatística (por exemplo, média, máximo ou soma) é calculada para todas as células de entrada contidas em cada vizinhança.

Processamento de vizinhança

Conceitualmente, o algoritmo visita cada célula no raster de entrada e calcula uma estatística para as células que se enquadram na vizinhança especificada ao seu redor. A célula para a qual a estatística está sendo calculada é chamada de célula de processamento. O valor da célula de processamento normalmente é incluído no cálculo das estatísticas da vizinhança, mas dependendo do formato da vizinhança, pode não ser. Como as vizinhanças se sobreporão no processo de varredura, as células de entrada incluídas no cálculo de uma célula de processamento também poderão contribuir no cálculo de outra célula de processamento.

Várias formas de vizinhança predefinidas disponíveis para você escolher. Você também pode criar uma forma personalizada. As estatísticas que você pode calcular para uma vizinhança são maioria, máximo, média, mediana, mínimo, minoria, percentil, intervalo, desvio padrão, soma e variedade.

Cálculo de exemplo

Para ilustrar o processamento de vizinhança para Estatística Focal, considere calcular uma estatística de soma da vizinhança ao redor da célula de processamento com o valor 5 no diagrama a seguir. Uma forma retangular de vizinhança de células 3 por 3 é especificada e o parâmetro Ignorar NoData em cálculos é mantido na configuração padrão. A soma dos valores das células vizinhas (3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) mais o valor da célula de processamento (5) igual 24 (19 + 5 = 24). Um valor de 24 é dado à célula no raster de saída no mesmo local que a célula de processamento no raster de entrada.

Os valores de entrada para uma vizinhança de células 3x3 de exemplo e o valor da soma de saída para a célula de processamento são mostrados

O diagrama acima demonstra como os cálculos são realizados em uma única célula do raster de entrada. No diagrama a seguir, os resultados para todas as células de entrada são mostrados. As células destacadas em amarelo identificam a mesma célula de processamento e vizinhança do exemplo acima.

Todos os valores de entrada e saída para uma operação de soma focal são mostrados

Células NoData

O parâmetro Ignorar NoData em cálculos controla como as células de NoData dentro da janela da vizinhança é processada. Quando este parâmetro estiver marcado (ignore_nodata = "DATA" no Python), quaisquer células da vizinhança que sejam NoData serão ignoradas no cálculo do valor de saída da célula de processamento. Quando desmarcado (ignore_nodata = "NODATA" no Python), se alguma célula da vizinhança for NoData, o valor de saída da célula de processamento será NoData.

Se a própria célula de processamento for NoData, com a opção Ignorar NoData em cálculos selecionada, o valor de saída da célula será calculado com base nas outras células da vizinhança que possuem um valor válido. Se todas as células da vizinhança forem NoData, a saída será NoData.

Células de canto e borda

Quando a célula de processamento está próxima dos cantos e bordas do raster de entrada, o número de células incluídas na vizinhança é ajustado de acordo. O cálculo da estatística também é ajustado.

Os diagramas a seguir ilustram como a estatística de saída é calculada para cada célula de processamento a partir das células disponíveis em cada vizinhança individual. O processo começa no canto superior esquerdo do raster de entrada e varre da esquerda para a direita em cada linha antes de prosseguir para a próxima linha. A vizinhança usada neste exemplo é um retângulo de 3 por 3 células e a estatística usada é a soma. O parâmetro Ignorar NoData em cálculos é mantido na configuração padrão. Nos diagramas, a vizinhança é destacada em amarelo e a célula de processamento é destacada em ciano.

Para a primeira célula de processamento, por estar no canto superior esquerdo do raster de entrada de 6 por 6 células, há apenas quatro células disponíveis para estarem na vizinhança. A adição desses valores resulta na atribuição do valor de saída da primeira célula ao valor 11. Para a próxima célula à direita, existem agora seis células na vizinhança e a soma é calculada para elas. A varredura prossegue em todas as células da primeira linha. Para economizar espaço, nem todas as células de processamento são mostradas.

A vizinhança em torno de cada célula de processamento da primeira linha de células de entrada é destacada, identificando quais células de entrada serão usadas para calcular o valor da célula de saída.
A vizinhança (destacada em amarelo) ao redor de cada célula de processamento (destacada em ciano) identifica quais células de entrada (parte superior) serão usadas no cálculo do valor da estatística de saída (parte inferior).

Observe que na primeira linha, para a terceira célula de processamento a partir da esquerda (valor = 1), uma das células de entrada possui o valor NoData. Como a ferramenta foi configurada para ignorar NoData, essa célula específica será ignorada nos cálculos. Se a estatística a ser calculada tivesse sido definida como Média em vez de Soma, ela seria calculada como a soma de todas as células da vizinhança que não são NoData, dividida por 5.

Para a segunda linha de células de entrada, a estatística para a primeira célula de processamento será calculada com base na existência de seis células disponíveis na vizinhança. Para a próxima célula de processamento, haverá nove células a serem consideradas no cálculo. Para a célula subsequente, haverá oito valores de entrada para calcular, uma vez que uma das células na vizinhança 3 por 3 é NoData. O processo continua para o restante das células da linha e depois para as linhas seguintes até que todas as células de processamento tenham sido analisadas.

O processamento de vizinhança para a segunda linha nas células de entrada é mostrado
A vizinhança, a célula de processamento e o valor de saída para uma parte da segunda linha de células de entrada são identificados.

Tamanho e desempenho do bairro

A ferramenta pode processar vizinhanças muito grandes. Porém, à medida que a vizinhança aumenta de tamanho, o desempenho será impactado, pois mais células de entrada serão incluídas em cada cálculo. O tipo de vizinhança retangular possui algumas otimizações que permitem maior desempenho em relação a outras formas de vizinhança para uma determinada área.

O tamanho máximo de qualquer dimensão de uma vizinhança é limitado a 4.096 células. Isso significa que as vizinhanças retangulares não podem exceder esse número de células na direção horizontal ou vertical. Para vizinhanças circulares, o raio não pode exceder 2.047 células.

Tipos de vizinhança

O formato de uma vizinhança pode ser anelar (um donut), um círculo, um retângulo ou uma cunha. Usando um arquivo kernel, você também pode definir um formato de vizinhança personalizado, como também, atribuir pesos diferentes a células específicas na vizinhança antes que a estatística seja calculada.

A seguir estão as descrições dos formatos de vizinhança e como eles são definidos:

  • Anelar
    • O formato anelar é composto por dois círculos, um dentro do outro para formar um donut. Células com centros fora do raio do círculo menor, mas dentro do raio do círculo maior, serão incluídas no processamento da vizinhança. A área que fica entre os dois círculos constitui a vizinhança do anel.
    • O raio é identificado em células ou unidades do mapa, medido perpendicularmente ao eixo x ou y. Quando os raios são especificados em unidades do mapa, eles são convertidos em raios em unidades de células. Os raios resultantes em unidades da célula produzem uma área que representa mais de perto a área calculada usando os raios originais em unidades do mapa. Qualquer centro de célula abrangido pelo anel será incluído no processamento da vizinhança.
    • A vizinhança do anel padrão é um raio interno de uma célula e um raio externo de três células.
    • Segue um exemplo de ilustração de uma vizinhança anelar:

    Processando célula com vizinhança anular padrão
    Uma célula de processamento com a vizinhança do anel padrão (raio interno = 1 célula, raio externo = 3 células).

  • Círculo
    • Uma vizinhança circular é criada especificando um valor de raio.
    • O raio é identificado em unidades do mapa ou da célula, medido perpendicularmente ao eixo x ou y. Quando o raio é especificado em unidades do mapa, uma lógica adicional é usada para determinar quais células estão incluídas na vizinhança de processamento. Primeiro, é calculada a área exata de um círculo definido pelo valor do raio especificado. Em seguida, a área é calculada para dois círculos adicionais, um com o valor do raio especificado arredondado para baixo e outro com o valor do raio especificado arredondado para cima. Essas duas áreas são comparadas com o resultado do raio especificado, e o raio da área mais próxima será utilizado na operação.
    • O raio padrão da vizinhança circular é de três células.
    • Segue um exemplo de ilustração de uma vizinhança circular:

    Processando célula com vizinhança circular
    Uma célula de processamento com vizinhança circular (raio = 2 células).

  • Retângulo
    • A vizinhança do retângulo é especificada fornecendo uma largura e uma altura nas unidades do mapa ou da célula.
    • Somente as células com centros que se enquadram no objeto definido são processadas como parte da vizinhança retangular.
    • A vizinhança retangular padrão é um quadrado com altura e largura de três células.
    • A posição x,y da célula de processamento dentro da vizinhança, em relação ao canto superior esquerdo da vizinhança, é determinada pelas seguintes equações:

      x = (largura da vizinhança + 1)/2 y = (altura da vizinhança + 1)/2

      Se o número de células de entrada for par, as coordenadas x,y serão calculadas usando truncamento. Por exemplo, em uma vizinhança de células 5 por 5, os valores x e y são 3,3. Em uma vizinhança 4 por 4, os valores de x e y são 2,2.

    • A seguir estão exemplos de ilustrações de duas vizinhanças retangulares:

    Célula de processamento com duas vizinhanças retangulares
    Uma célula de processamento com duas vizinhanças retangulares diferentes.

  • Cunha
    • Uma cunha é uma vizinhança em forma de pizza especificada por um raio, um ângulo inicial e um ângulo final.
    • A cunha se estende no sentido anti-horário do ângulo inicial até o ângulo final. Os ângulos são especificados em graus aritméticos de 0 a 360, onde 0 está no eixo x positivo (3:00 em um relógio) e pode ser inteiro ou ponto flutuante. Ângulos negativos podem ser usados.
    • O raio é identificado em células ou unidades do mapa, medido perpendicularmente ao eixo x ou y. Quando o raio é especificado em unidades do mapa, ele é convertido em um raio em unidades da célula. Os raios resultantes em unidades da célula produzem uma área que representa mais de perto a área calculada usando os raios originais em unidades do mapa. Qualquer centro de célula abrangido pela cunha será incluído no processamento da vizinhança.
    • A vizinhança padrão da cunha é de 0 a 90 graus, com um raio de três células.
    • Segue um exemplo de ilustração de uma vizinhança em cunha:

    Célula de processamento com vizinhança em cunha
    Uma célula de processamento com a vizinhança de cunha padrão (raio = 3 células, ângulo inicial = 0, ângulo final = 90).

  • Irregular
    • Isso permite especificar uma vizinhança de formato irregular ao redor da célula de processamento.
    • O arquivo kernel irregular especifica as posições das células a serem incluídas na vizinhança.
    • A posição x,y da célula de processamento dentro da vizinhança, em relação ao canto superior esquerdo da vizinhança, é determinada pelas seguintes equações:

      x = (largura + 1)/2 y = (altura + 1)/2

      Se o número de células de entrada for par, as coordenadas x e y serão calculadas usando truncamento.

    • O seguinte se aplica a um arquivo kernel para uma vizinhança irregular:

      • O arquivo kernel irregular é um arquivo de texto ASCII que define os valores e a forma de uma vizinhança irregular. O arquivo pode ser criado com qualquer editor de texto simples. Deve ter uma extensão de arquivo .txt e não deve haver espaços no nome do arquivo.
      • A primeira linha especifica a largura e a altura da vizinhança (o número de células na direção x, seguido por um espaço, e o número de células na direção y).
      • As linhas subsequentes definem o valor a ser usado para cada posição na vizinhança que representam. Um espaço entre cada valor é necessário.
      • Os valores definem se uma posição da vizinhança será incluída no cálculo. Normalmente, o valor 1 é utilizado para identificar as posições a incluir nos cálculos para uma vizinhança irregular, mas qualquer valor positivo ou negativo diferente de 0 pode ser utilizado. Valores de ponto flutuante também podem ser usados.
      • Para excluir um local na vizinhança do cálculo, use um valor 0 (não um espaço em branco) no local correspondente no arquivo kernel.

    • O exemplo a seguir mostra o conteúdo de um arquivo kernel irregular e a vizinhança que ele representa:

    Um exemplo de kernel irregular e a vizinhança associada
    Um kernel de vizinhança irregular é mostrado com uma ilustração de quais células serão incluídas para processamento.

  • Peso
    • Semelhante ao tipo de vizinhança irregular, a vizinhança de peso permite definir uma vizinhança irregular ao redor da célula de processamento, mas também permite aplicar pesos aos valores de entrada.
    • O arquivo kernel de peso especifica as posições das células a serem incluídas na vizinhança e os pesos pelos quais elas serão multiplicadas.
    • A vizinhança de peso está disponível apenas para os tipos de estatística média, desvio padrão e soma.
    • A posição x,y da célula de processamento dentro da vizinhança, em relação ao canto superior esquerdo da vizinhança, é determinada pelas seguintes equações:

      x = (largura + 1)/2 y = (altura + 1)/2

      Se o número de células de entrada for par, as coordenadas x e y serão calculadas usando truncamento.

    • O seguinte se aplica ao arquivo do kernel para uma vizinhança de peso:

      • O arquivo kernel de peso é um arquivo de texto ASCII que define os valores e o formato de uma vizinhança de peso. O arquivo pode ser criado com qualquer editor de texto simples. Deve ter uma extensão de arquivo .txt e não deve haver espaços no nome do arquivo.
      • A primeira linha especifica a largura e a altura da vizinhança (o número de células na direção x, seguido por um espaço, e o número de células na direção y).
      • As linhas subsequentes definem o valor a ser usado para cada posição na vizinhança que representam. Um espaço entre cada valor é necessário.
      • Para a estatística de soma, um peso pode ser qualquer valor positivo, negativo, inteiro ou de ponto flutuante.
      • Para as estatísticas de média e desvio padrão, um peso pode ser qualquer valor de ponto flutuante ou número inteiro positivo. Valores negativos não são permitidos para essas estatísticas, portanto qualquer posição com peso negativo será ignorada nos cálculos.
      • Para excluir um local na vizinhança do cálculo, use um valor 0 (não um espaço em branco) no local correspondente no arquivo kernel.

    • O exemplo a seguir mostra o conteúdo de um arquivo kernel de peso e a vizinhança que ele representa:

    Um exemplo de kernel ponderado e a vizinhança associada
    Um kernel de vizinhança ponderado é mostrado com uma ilustração de quais células serão incluídas para processamento.

Tipos de estatísticas

As estatísticas disponíveis são maioria, máximo, média, mediana, mínimo, minoria, percentil, intervalo, desvio padrão, soma e variedade. O tipo de estatística padrão é média.

Certos tipos de estatísticas só estão disponíveis quando o raster de entrada for do tipo inteiro.

  • Maioria
    • Somente um raster inteiro pode ser usado como entrada.
    • A frequência de cada valor de célula único em cada vizinhança é determinada. Se houver um único valor que tenha a frequência mais alta (ocorre com mais frequência), esse valor será atribuído a todas as células daquela vizinhança. Se houver empate, é atribuído o menor dos valores vinculados, a menos que o valor da célula de processamento seja um dos empates. Nesse caso, o valor original do valor da célula de processamento é retornado.
  • Máximo
    • Se o raster de entrada for inteiro, os valores no raster de saída serão inteiros; se os valores na entrada forem de ponto flutuante, os valores na saída serão de ponto flutuante.
  • Média
    • A entrada pode ser um número inteiro ou um raster flutuante.
    • O raster de saída sempre será de ponto flutuante.
    • Para o tipo de vizinhança de peso, este é um dos subconjuntos de tipos de estatística suportados. Consulte a seção Vizinhança ponderada para obter detalhes sobre como essa estatística é calculada.
  • Mediana
    • A entrada pode ser um número inteiro ou um raster flutuante.
    • O raster de saída sempre será de ponto flutuante.
    • Se houver um número ímpar de valores de células válidos na vizinhança, o valor mediano será calculado classificando os valores e selecionando o valor médio. Se houver um número par de valores em uma vizinhança, os valores serão classificados e será calculada a média dos dois valores do meio.
  • Mínimo
    • Se o raster de entrada for inteiro, os valores no raster de saída serão inteiros; se os valores na entrada forem de ponto flutuante, os valores na saída serão de ponto flutuante.
  • Minoria
    • Somente um raster inteiro pode ser usado como entrada.
    • A frequência de cada valor de célula único em cada vizinhança é determinada. Se houver um único valor que tenha a frequência mais baixa (ocorre com menos frequência), esse valor será atribuído a todas as células daquela vizinhança. Se houver empate, é atribuído o menor dos valores vinculados, a menos que o valor da célula de processamento seja um dos empates. Nesse caso, o valor original do valor da célula de processamento é retornado.
  • Percentil
    • A entrada pode ser um número inteiro ou um raster flutuante.
    • O raster de saída sempre será de ponto flutuante.
    • O resultado da estatística percentil é calculado com base na seguinte fórmula (Hyndman e Fan, 1996):
      pk = (k-1)/(n-1)
  • Intervalo
    • Se o raster de entrada for inteiro, os valores no raster de saída serão inteiros; se os valores na entrada forem de ponto flutuante, os valores na saída serão de ponto flutuante.
    • Os valores para cada localização de célula no raster de saída são determinados célula por célula, aplicando a fórmula: Focal Range = Focal Maximum – Focal Minimum
  • Desvio padrão
    • O raster de saída sempre será de ponto flutuante.
    • Para o tipo de vizinhança de peso, este é um dos subconjuntos de tipos de estatística suportados. Consulte a seção Vizinhança ponderada para obter detalhes sobre como essa estatística é calculada.
    • O desvio padrão é calculado em toda a população (o método N); não estimado com base em uma amostra (o método N-1).
  • Soma
    • Se o raster de entrada for inteiro, os valores no raster de saída serão inteiros; se os valores na entrada forem de ponto flutuante, os valores na saída serão de ponto flutuante.
    • Para o tipo de vizinhança de peso, este é um dos subconjuntos de tipos de estatística suportados. Consulte a seção Vizinhança ponderada para obter detalhes sobre como essa estatística é calculada.
  • Variedade
    • Somente um raster inteiro pode ser usado como entrada.

Cálculos de vizinhança ponderada

A influência que cada valor da vizinhança tem no resultado final da célula de processamento pode ser ajustada aplicando pesos.

Nas seções a seguir, são mostradas as fórmulas utilizadas para calcular os resultados da média ponderada, desvio padrão e soma estatística. Um exemplo acompanha cada um, mostrando os cálculos para uma célula de processamento e os resultados para uma vizinhança retangular de células 3 x 3.

Estatística média ponderada

Para a vizinhança de peso com a estatística média, o valor de saída para uma célula de processamento central é a soma do produto dos valores de peso do kernel multiplicados pelos valores de entrada, dividido pela soma dos valores de peso do kernel.

A fórmula aplicada às células dentro de uma vizinhança é a seguinte:

Equação de média ponderada

Onde:

  • µW é o valor médio ponderado da população para a célula de processamento.
  • N é o número de células na vizinhança.
  • wi é um valor de peso definido no kernel.
  • xi é um valor de célula de entrada.

Validado:

Nas versões anteriores, os cálculos usavam o número de células na vizinhança como denominador.

Os valores de peso devem ser valores positivos e podem ser inteiros ou de ponto flutuante.

Exemplo

Considere a seguinte célula de processamento de valor 7 e seus oito vizinhos circundantes:

4 6 7 6 7 8 4 5 6

A média matemática (soma/contagem) desses valores é 53 / 9 = 5.889.

Considere o seguinte kernel de célula ponderada 3 x 3:

3 3 0.0 0.5 0.0 0.5 2.0 0.5 0.0 0.5 0.0

Este kernel dá o mais alto grau de influência à célula central (peso 2), diminui a influência dos quatro vizinhos ortogonais à célula de processamento (peso 0,5) e faz com que as quatro células do canto não tenham influência (peso 0).

Aplicando a equação da média ponderada fornecida acima, a seguir são apresentados os cálculos para atingir o valor final.

= (w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6 + w7x7 + w8x8 + w9x9) / (w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9) = ((0*4)+(0.5*6)+(0*7)+(0.5*6)+(2.0*7)+(0.5*8)+(0*4)+(0.5*5)+(0*6)) / (0 + 0.5 + 0 + 0.5 + 2.0 + 0.5 + 0 + 0.5 + 0) = (0 + 3.0 + 0 + 3.0 + 14.0 + 4.0 + 0 + 2.5 + 0) / (0.5 + 0.5 + 2.0 + 0.5 + 0.5) = (3.0 + 3.0 + 14.0 + 4.0 + 2.5) / 4.0 = 26.5 / 4.0 = 6.625

Para efeito de comparação, a média regular das nove células de entrada seria 5.889. Se apenas as cinco células de entrada que estão dentro do kernel (onde o peso não é igual a 0) forem incluídas, mas com os valores dos pesos não considerados, a média seria 6,4 (onde 6 + 6 + 7 + 8 + 5 = 32, que seria então dividido pela contagem de 5).

Estatística de desvio padrão ponderado

Para a vizinhança de peso com a estatística de desvio padrão, o valor de saída para uma célula de processamento é o resultado da seguinte equação:

Equação de desvio padrão ponderada

Onde:

  • SDW é o valor do desvio padrão ponderado da população para a célula de processamento.
  • µW é o valor médio ponderado da população para a célula de processamento.
  • N é o número de células na vizinhança.
  • wi é um valor de peso definido no kernel.
  • xi é um valor de célula de entrada.

Os valores de peso devem ser valores positivos e podem ser inteiros ou de ponto flutuante.

Se todos os valores de entrada em uma vizinhança forem iguais, o valor do desvio padrão para aquela célula de processamento será 0.

Exemplo

Os mesmos valores de vizinhança usados ​​no exemplo de média ponderada acima serão usados ​​novamente neste exemplo.

4 6 7 6 7 8 4 5 6

Os mesmos valores ponderados do kernel também serão usados:

3 3 0.0 0.5 0.0 0.5 2.0 0.5 0.0 0.5 0.0

Aplicando a equação do desvio padrão ponderado fornecida acima para a célula de processamento central de valor 7, o resultado do cálculo do desvio padrão ponderado é aproximadamente 0,85696.

Estatística de soma ponderada

Para a vizinhança de peso com a estatística de soma, o valor de saída para uma célula de processamento é o resultado da seguinte equação:

Equação de soma ponderada

Onde:

  • SW é o valor da soma ponderada para a célula de processamento.
  • N é o número de células na vizinhança.
  • wi é um valor de peso definido no kernel.
  • xi é um valor de célula de entrada.

Os valores de peso podem ser valores positivos ou negativos e podem ser inteiros ou de ponto flutuante.

Exemplo

Considere os seguintes valores de entrada da vizinhança:

4 6 7 6 7 8 4 5 6

Considere o seguinte kernel de célula ponderada 3 x 3:

3 3 -1 -2 -1 0 0 0 1 2 1

Aplicando a equação fornecida acima, mostramos a seguir os cálculos utilizados para atingir o valor final:

= (w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6 + w7x7 + w8x8 + w9x9) = ((-1*4) + (-2*6) + (-1*7) + (0*6) + (0*7) + (0*8) + (1*4) + (2*5) + (1*6)) = (-4) + (-12) + (-7) + 4 + 10 + 6 = -3

Referências

Hyndman, R.J. e Y. Fan, novembro de 1996. "Quantis de Amostra em Pacotes Estatísticos." O estatístico americano 50 (4): 361-365.