我有两个 30m x 30m 的栅格文件,我想从中采样点。在采样之前,我想从图像中删除云区域。我转向 R 和 Hijman 的 Raster 包来完成这项任务。
使用 drawPoly(sp=TRUE) 命令,我绘制了 18 个不同的多边形。该函数似乎不允许将 18 个多边形作为一个 sp 对象,因此我将它们全部单独绘制。然后我给多边形一个与栅格匹配的 proj4string,并将它们设置为一个列表。我通过 lapply 函数运行列表,将它们转换为栅格(Hijman 包中的栅格化函数),多边形区域设置为 NA,图像的其余部分设置为 1。
我的最终目标是一个栅格图层,其中 18 个区域设置为 NA。我尝试堆叠栅格化多边形列表,并将其设置为子集以在相同区域将新栅格设置为 NA。我的可重现代码如下。
library(raster)
r1 <- raster(nrow=50, ncol = 50)
r1[] <- 1
r1[4:10,] <- NA
r2 <- raster(nrow=50, ncol = 50)
r2[] <- 1
r2[9:15,] <- NA
r3 <- raster(nrow=50, ncol = 50)
r3[] <- 1
r3[24:39,] <- NA
r4 <- raster(nrow=50, ncol = 50)
r4[] <- 1
s <- stack(r1, r2, r3)
test.a.cool <- calc(s, function(x){r4[is.na(x)==1] <- NA})
无论出于何种原因,该死的 testacool 是一个空白图,我的目标是将它作为一个栅格,其中除了堆栈中的 NA s 之外的所有值都等于 1。
有小费吗?
谢谢。