我有一个84层的栅格堆栈/砖块,每层对应于1999年11月到2006年10月的一个月的降雨数据。我还有一个数据框,其中每一行包含(除其他外)空间坐标和值年和月。
我想为数据框中的每一行提取降雨量值。为此,我需要使用年和月值来选择栅格堆栈中的相应图层,然后使用空间坐标从该图层中选择适当的值。我的问题分为两部分:
1)在我的数据框架中,我一起加入了年份和月份列:
data$date <- paste0(data$year, data$month)
我现在有一列值,告诉我该数据点的时间,例如2001年7月将是&#34; 20017&#34;。我想以相同的方式命名我的光栅堆栈中的图层,即&#34; 199911&#34;通过&#34; 200610&#34;。我可以输出所有这84个,然后使用类似的东西:
names(rainfall) <- c("199911" ... "200610")
但必须有一种更有效的方法吗?
2)完成此操作后,我如何使用数据框中的日期列从我的栅格堆栈中选择相应的图层,然后选择空间坐标来选择位置?如果它是单层我可以使用:
data.sp <- data
coordinates(data.sp) <- ~ x + y
rain.points <- over(data.sp, rainfall)
data$rain <- (rain.points)
非常感谢任何帮助!
答案 0 :(得分:3)
问题1:做这样的事情
names(rainfall) <- paste0(rep(1999:2006, each=12), 1:12)[11:94]
问题2:
你可以做到
pnt <- cbind(0,0)
s <- rainfall[["200111"]]
extract(s, pnt)
但您可能想要做类似于讨论的内容here)