¿Cómo extraer datos de un RasterBrick?
Tengo un RasterBrick que consta de datos de precipitaciones mensuales durante 7 años, por lo que tiene 7 capas con 12 ranuras cada una:
rainfall <- brick("Rainfall.tif")
> rainfall
class : RasterBrick
dimensions : 575, 497, 285775, 7 (nrow, ncol, ncell, nlayers)
resolution : 463.3127, 463.3127 (x, y)
extent : 3763026, 3993292, -402618.8, -136213.9 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs
data source : in memory
names : layer.1.1, layer.2.1, layer.1.2, layer.2.2, layer.1, layer.2, layer
min values : 239.6526, 499.8343, 521.0316, 617.2896, 596.0397, 663.6633, 298.0572
max values : 691.9075, 1158.2064, 1184.9858, 1198.7121, 1241.8077, 1114.7598, 832.6042
A partir de esto, me gustaría extraer un valor para la lluvia en puntos distribuidos tanto espacial como temporalmente. Estos puntos están en un marco de datos:
points <- read.csv("Points.csv")
> head(points)
ID x y ncell jday FRP_max FRI year month
69211 3839949 -171684.6 17 59 NA 230.2500 2001 2
69227 3808720 -238808.7 16 52 NA NA 2001 2
69237 3793373 -267563.1 1 52 NA NA 2001 2
69244 3986574 -292118.7 1 43 NA NA 2001 2
32937 3864736 -164296.8 106 77 94.8 249.1524 2001 3
32938 3871463 -163123.4 31 82 NA 253.5081 2001 3
Puedo manejar el aspecto espacial convirtiendo el marco de datos en un marco de datos espaciales y usando la función de extracción:
points.sp <- points
coordinates(points.sp) <- ~ x + y
rainfall.points <- extract(rainfall, points.sp)
Sin embargo, no puedo averiguar cómo asegurarme de que los valores de lluvia se extraigan de la capa ráster correcta desde dentro del ladrillo ráster. He intentado varias formas de indexación utilizando las columnas "año" y "mes" de mi marco de datos, pero nada ha funcionado. ¡Algunos consejos podrían ser muy apreciados!
Esta es mi primera publicación, así que disculpen si hay demasiada información / no hay suficiente. Avíseme si ver más de mi código sería útil.