Reamostrar raster binário para fornecer * proporção * dentro da nova janela da célula

9

Gostaria de passar de uma varredura binária de floresta / não floresta com resolução de 30m para uma varredura com resolução de 240m, com o valor de cada célula sendo a proporção dessa célula florestada - ou seja, os valores de dados para as células de 240m passarão de 0 (onde todas as células na varredura de 30m eram zero / não florestais) a 0,5 (onde metade das células de 30m eram florestais, metade não eram florestais) a 1 (onde todas as células da varredura de 30m eram florestadas).

Embora tenha sido sugerido não usar interpolação bilinear em dados discretos, tanto quanto eu posso dizer que o resultado com dados binários 0/1 seria fornecer um valor médio (isto é, uma proporção entre 1 e 0). É uma maneira sensata de fazê-lo ou existe um método melhor?

Eu posso usar Arc, QGIS e Idrisi.

stuckGIS
fonte

Respostas:

13

Use estatísticas de bloco .

Isso funciona como estatística focal, computando um resumo estatístico (como a média desejada) em uma vizinhança especificada de células (como um quadrado de 8 por 8, em que 8 = 240 m / 30 m), exceto que ele é executado apenas por um período subdivisão regular da grade, em vez de um conjunto de vizinhanças sobrepostas, uma em cada célula.

Você também pode usar as estatísticas focais se realmente desejar: depois de calcular a média focal acima de 8 por 8 quadrados, faça uma nova amostra para uma grade de 240 m usando a nova amostragem do vizinho mais próximo . Quando as grades são registradas umas nas outras ( ou seja , elas têm a mesma origem), isso deve gerar o mesmo resultado que block statistics. (Não garanto que: algumas escolhas arbitrárias devem ser feitas quando novos centros celulares coincidem com os cantos antigos das células - como aqui acontecerão) e, se comitês diferentes codificaram os dois procedimentos, eles podem ter feito escolhas diferentes: pouca no ArcGIS é verdadeiramente consistente, receio.)

Outra abordagem é criar uma grade de zonas, uma zona por quadrado onde uma média é desejada, e executar um resumo zonal como uma grade. As zonas podem ser computadas matematicamente a partir de grades de coordenadas de linha e coluna (por meio da função floorou int, por reclassificação ou unindo uma tabela adequada à tabela de atributos).

Concluirei observando que a interpolação bilinear, embora de fato produza valores no intervalo 0..1, não é o que você deseja: ela funciona encontrando no máximo quatro células de grade originais (30 m) ao redor do centro de uma nova ( 240 m) celular e interpolando apenas seus valores. Como tal, ele ignorará as outras 8 * 8 - 4 = 60 células originais que caem dentro de cada novo bloco. Ilustro a interpolação bilinear em http://www.quantdec.com/SYSEN597/GTKAV/section9/map_algebra.htm : a discussão começa no meio da página.

whuber
fonte
Obrigado whuber, foi o que eu fiz - usei Block Statistics in Arc para produzir a soma do grupo 8x8, depois usei a Raster Calculator no QGIS para dividir por 64 e alinhar a origem, extensão e tamanho da célula com o restante dos meus dados.
stuckGIS
stuckGIS, você pode pular a segunda etapa usando as Estatísticas de Bloco para calcular a média de cada bloco 8 x 8. O alinhamento da nova grade é uma questão de especificar o ambiente de análise rasterizada adequadamente, o que - se for feito antes de iniciar os cálculos - ocorrerá automaticamente. Isso reduz seu fluxo de trabalho em uma única etapa: execute a média do bloco.
whuber
4

No ArcGIS, quando você reamostrar os dados usando a reamostragem bilinear, ele analisa apenas os valores das quatro células centrais ( documentação da reamostragem ). Como tal, usando esse método, você ainda perderá dados se não compensar a perda de dados.

Dado que sabemos que, para as células reamostradas, você procura uma proporção das células que são florestadas, podemos pensar nisso como a soma das células de 30m divididas por 64 (existem 64 células de 30m no bloco de 240m).

Isso significa que, se pudermos criar uma nova varredura com os valores centrais como a soma dos valores circundantes na resolução de 30m, abaixar a resolução usando uma nova amostra com o vizinho mais próximo ou interpolação bilinear nos dará células de 240m que são a soma das células de 30m que cobrir. Podemos fazer isso com a ferramenta de soma focal ao longo da varredura de 30m.

Por fim, quando tivermos uma soma focal de 240m, divida por 64 para obter sua resposta proporcional.

Em Idrisi, não tenho certeza dos algoritmos de amostragem de imagens, da mesma forma que no QGIS, mas imagino que exista algo semelhante. Certamente, no QGIS, você pode processar a varredura no Python usando scipy ndimage ou similar.

om_henners
fonte