我需要“光栅化” a 的多个属性SpatialPolygonsDataframe
。然后,我将每个栅格图层中的值乘以给定向量的值(例如“gp”)。我wrld_simpl
从maptools
一开始就使用数据集。wrld_simpl 有一个名为 POP2005 的属性,我将添加更多与年份 (2010:2100) 的人口估计相对应的属性。我正在尝试编写一个循环或函数,这样我就不必手动栅格化每个属性,然后独立计算它们的新值,然后一次又一次地重复所有这些步骤。
data(wrld_simpl)
gp <- seq(1,246)
myraster <- raster(nrow = 572, ncol = 1440, xmn = -180, xmx = 180, ymn= -58, ymx = 85)
因为 rasterize() 函数不允许我从 spatialPolygonsDataframe 中选择特定属性,所以我使用 raster:::.polygonsToRaster() 代替(完全相同)将我的属性转换为栅格图层。
rastergp <- raster:::.polygonsToRaster(wrld_simpl, myraster, field = wrld_simpl$POP2005)
stackraster <- stack(rastergp, gp)
estimation <- calc(stackraster, fun = function(x) x[1]*x[2])
有人对如何进行有任何建议吗?非常感谢!