问题描述
我正在尝试构建一些数据结构来接受数据。
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$a
和 df$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$a
和 df$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