在栅格堆栈中命名图层并提取数据

时间:2016-01-14 15:25:42

标签: r spatial raster r-raster

我有一个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)

非常感谢任何帮助!

1 个答案:

答案 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