Wie extrahiere ich Daten aus einem RasterBrick?

Ich habe einen RasterBrick, der aus monatlichen Niederschlagsdaten über einen Zeitraum von 7 Jahren besteht, also 7 Layer mit jeweils 12 Slots:

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 

araus möchte ich einen Wert für die Niederschlagsmenge an räumlich und zeitlich verteilten Punkten extrahieren. Diese Punkte befinden sich in einem Datenrahmen:

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

Ich kann den räumlichen Aspekt behandeln, indem ich den Datenrahmen in einen räumlichen Datenrahmen konvertiere und die Extraktionsfunktion verwende:

points.sp <- points
coordinates(points.sp) <- ~ x + y
rainfall.points <- extract(rainfall, points.sp)

Ich kann jedoch nicht herausfinden, wie sichergestellt werden kann, dass die Niederschlagswerte aus dem richtigen Raster-Layer innerhalb des Raster-Steins extrahiert werden. Ich habe verschiedene Indizierungsmethoden mit den Spalten "Jahr" und "Monat" aus meinem Datenrahmen ausprobiert, aber nichts hat funktioniert. Alle Tipps wäre sehr dankbar!

Dies ist mein erster Beitrag, also entschuldige mich, wenn es zu viel / nicht genug Infos gibt. Lassen Sie mich wissen, ob es nützlich wäre, mehr von meinem Code zu sehen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage