Mais

Combinar rasters em um único raster com vários valores de campo em R

Combinar rasters em um único raster com vários valores de campo em R


Tenho vários objetos de tijolo raster que gostaria de combinar em um raster com vários valores de campo para cada célula, mas não tenho certeza de como fazer isso em R.

Por exemplo, digamos que eu tenha duas camadas em um bloco raster 2 * 2.

r <-raster (nrow = 2, ncol = 2) r [] <- round (runif (ncell (r)) * 10,0) s <-raster (nrow = 2, ncol = 2) s [] <- redondo (runif (ncell (r)) * 10,0) t = tijolo (r, s)

Gostaria de combinar os valores de r e s em um único raster com vários valores (no slot object @ data @ attribute, acho) associados a cada célula.

Portanto, no exemplo acima, se célula 1 = 1 em re célula 1 = 2 em s, então a saída que desejo é que o raster resultante contenha dois campos em atributos @ dados @, o primeiro campo = 1 e o segundo campo = 2.


Se você gostaria de manter o (s) tipo (s) de objeto como raster, eu daria uma olhada na função ratify, embora eu não ache que seja destinada a dados numéricos.

requer (raster) r2 <- raster (nrow = 10, ncol = 10) r2 [] = 1 r2 [51: 100] = 2 r2 [3: 6, 1: 5] = 3 r2 <- ratificar (r2) rato <- níveis (r2) [[1]] rato $ MyRATValue <- c (100.200.300) rato $ código <- c (1,2,3) níveis (r2) <- rato r2

Você também pode forçar o objeto de tijolo raster a um objeto SpatialPixelsDataFrame onde os slots @data contêm atributos para cada raster. No entanto, isso não é necessariamente seguro para a memória.

require (raster) r <-raster (nrow = 2, ncol = 2) r [] <- round (runif (ncell (r)) * 10,0) s <-raster (nrow = 2, ncol = 2) s [] <- round (runif (ncell (r)) * 10,0) r = brick (r, s) r <- as (r, "SpatialPixelsDataFrame") str (r @ data) head (r @ data)

Acho que descobri uma maneira de fazer isso.

r <-raster (nrow = 2, ncol = 2) r [] <- round (runif (ncell (r)) * 10,0) s <-raster (nrow = 2, ncol = 2) s [] <- round (runif (ncell (r)) * 10,0) u <-raster (nrow = 2, ncol = 2) u [] <- round (runif (ncell (r)) * 10,0) u = tijolo ( u, r, s) u @ dados @ atributos [1] [[1]] <- valores (u)

Pelo menos no exemplo do brinquedo, isso faz o que eu queria fazer.