Mais

Média de certas células raster em R


Se eu tiver dois raster, digamos x1 e x2, que são as mesmas dimensões, como posso tirar a média dos dois, mas apenas onde ambos têm dados para ter um terceiro raster x3 que é uma composição dos dois primeiros? Por exemplo, se a célula na linha uma coluna um para x1 não tiver dados, mas x2, então quero que meu raster final tenha apenas o valor x2. Se ambos os rasters tiverem dados na célula da linha um, coluna 2, quero que o raster resultante tenha uma média nessa célula. Tenho certeza de que isso pode ser feito facilmente em um loop for ou talvez em uma função de aplicação, mas não tenho certeza de como configurá-lo.


Isso se resolve com a média da função de base.

média (c (20,10), na.rm = VERDADEIRO) # onde ambos os valores ocorrem média (c (20, NA), na.rm = VERDADEIRO) # onde o primeiro valor ocorre média (c (NA, 10), na.rm = TRUE) # onde o segundo valor ocorre mean (c (NA, NA), na.rm = TRUE) # onde ambos os valores são nodata

Se você pensar em funções raster em termos de vetorização, as coisas se tornam mais simples de conceituar ao aplicar uma função. Dado o exemplo acima, você pode simplesmente passar "média" para a função raster de "sobreposição".

require (raster) x1 <- raster (ncol = 50, nrow = 50) x1 [x1] <- runif (comprimento (x1 [x1]), 1.100) x2 <- raster (ncol = 50, nrow = 50) x2 [ x2] <- runif (comprimento (x2 [x2]), 1.100) x2 [amostra (1: ncell (x2), 20)] <- NA xmean <- sobreposição (x1, x2, diversão = média)


Assista o vídeo: ArcGis How to remove Nodata from Landsat using Raster Calculator (Outubro 2021).