如何构建栅格/栅格堆栈以接受基于 df 的值

问题描述

我正在尝试构建一些数据结构来接受数据。

r1 = raster(matrix(NA,3,3)) 
df <- data.frame(a = c(1,2,3),b = c(2,2),val = c(10,20,30)) #example of data

然后我希望用基于 df 的值填充这个栅格。但不是这样,而是基于 df$adf$b 的值。

plot(r1) #empty
values(r1) <- c(NA,df$val[[1]],NA,df$val[[2]],df$val[[3]]) #unindex filling
plot(r1) #wanted result

我希望它清楚我希望实现的目标。它的地理位置数据,因此 df$adf$b 将变成 Lon 和 Lat,而 df$val 将是一个环境变量。这些层将成为月平均值。并非所有栅格单元都有变量。

谢谢。

解决方法

给定一个栅格和坐标,您可以计算像元编号并使用它们来分配值。像这样

library(raster)
r <- raster(nrows=5,ncols=5,xmn=0,xmx=5,ymn=0,ymx=5) 
df <- data.frame(x = c(1,2,3),y = c(2,2),val = c(10,20,30))

cells <- cellFromXY(r,df[,1:2])
r[cells] <- df$val

另见?rasterFromXYZ