Tengo un raster (con una resolución de 5 x 5 m) que representa la cobertura del suelo. Cada celda contiene un valor entero (de 1 a 10) que representa un total de diez clases de cobertura del suelo (por ejemplo, 1-bosque; 2-áreas agrícolas; 3-áreas urbanas; (...)10-arbustos).
A partir de este ráster de cobertura del suelo, me gustaría generar 10 rásters con una resolución de 10 x 10 m que representen la proporción de cada clase de cobertura del suelo por celda. En otras palabras, me gustaría producir un ráster que represente la proporción de bosque por celda, otro ráster que represente la proporción de áreas agrícolas por celda, etc... (véase la figura siguiente que muestra lo que quiero conseguir).
Sé que esta tarea puede llevarse a cabo en ArcGIS Spatial Analyst generando 10 rásteres binarios (1-presencia de una clase de uso del suelo específica; 0-ausencia de una clase de uso del suelo específica) y utilizando después la opción "Block statistics". Sin embargo, como no tengo licencia para ArcGIS, esta opción no es válida.
En cambio, me gustaría saber cómo hacer esto en R (versión 3.40). He revisado posts anteriores y he conseguido encontrar uno en el que un usuario pretendía hacer algo similar ( Cálculo de la proporción de clases de cobertura del suelo con una ventana móvil alrededor de un punto en R? ). Sin embargo, no quiero calcular la proporción de la cubierta terrestre con una ventana móvil.
A continuación encontrará el código para generar un objeto RasterLayer ficticio con cinco clases de cobertura del suelo codificadas como enteros.
r<-raster(ncols=100, nrows=100,xmn=100,xmx=1100,ymn=0,ymx=1000, crs="+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")
x<-0:5
r[]<-sample(x,10000,replace=T)