Как найти значения из растра на основе другого? - PullRequest
0 голосов
/ 05 марта 2019

Предполагая, что у меня есть эти растры:

 library(raster)
 r1 <- r2 <- r3 <- raster(ncol=10, nrow=10)
 r1[] <- runif(ncell(r1))
 r2[] <- runif(ncell(r2)) / 2
 r3[] <- runif(ncell(r3)) * 1.5
 s <- stack(r1, r2, r3)

И у меня есть этот категоричный растр:

  rs <- raster(ncol=10, nrow=10)
  rs[] <-c(5,10,21,36,15)

Я хотел бы вычислить среднее значение всех пикселей в стеке s, которые соответствуют 5,10, etc (all values in rs). поэтому получите что-то вроде этого:

        r1   r2    r3
5       ?     ?      ?
10       ?      ?      ?
21       ?    ?        ?
36
15

1 Ответ

0 голосов
/ 06 марта 2019

Это будет "зональное" среднее значение:

set.seed(1)
z <- zonal(s, rs, mean)
round(z, 2)
     zone layer.1 layer.2 layer.3
[1,]    5    0.53    0.26    0.55
[2,]   10    0.50    0.23    0.51
[3,]   15    0.53    0.30    0.83
[4,]   21    0.52    0.22    0.71
[5,]   36    0.51    0.28    0.67
> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...