Como extrair dados de um RasterBrick?
Eu tenho um RasterBrick que consiste em dados mensais de precipitação ao longo de 7 anos, por isso tem 7 camadas com 12 slots cada:
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 disso, gostaria de extrair um valor para a precipitação em pontos distribuídos espacial e temporalmente. Estes pontos estão em um quadro de dados:
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
Eu posso lidar com o aspecto espacial convertendo o quadro de dados em um quadro de dados espaciais e usando a função extrair:
points.sp <- points
coordinates(points.sp) <- ~ x + y
rainfall.points <- extract(rainfall, points.sp)
No entanto, não consigo descobrir como garantir que os valores de precipitação estejam sendo extraídos da camada raster correta de dentro do tijolo raster. Eu tentei várias maneiras de indexar usando as colunas "ano" e "mês" do meu quadro de dados, mas nada funcionou. Qualquer dica seria muito apreciada!
Este é o meu primeiro post, então peço desculpas se houver informações demais / insuficientes. Deixe-me saber se ver mais do meu código seria útil.