我有 2 个栅格堆叠在一起:
library(rasterVis)
r1 <- raster(system.file("external/test.grd", package="raster"))
r2 <- r1 / 2
r.stack <- stack(r1, r2)
由于我想稍后为堆栈中的每个特定图层突出显示一些区域,因此我基于栅格值创建了两个点数据集:
pts1 <- rasterToPoints(r1, spatial=T)
idx <- which(as.data.frame(pts1)[, 1] >= 400)
pts1 <- pts1[idx, 1]
pts2 <- rasterToPoints(r2, spatial=T)
idx <- which(as.data.frame(pts2)[, 1] >= 400)
pts2 <- pts2[idx, 1]
现在,我想用 R 中 rasterVis 的levelplot绘制光栅堆栈。我还想用 pts1 覆盖 r1,用 pts2 覆盖 r2。
但是,只要我添加一个点数据集,它就会用于两个图层:
levelplot(r.stack) + layer(sp.points(pts1, pch=20, cex=0.1, col="black"))
如何在仍使用栅格堆栈的同时使用具有特定图层的特定点数据集?
我想避免制作自己的子图,方法是单独使用其特定点数据集绘制每一层,然后使用 print.trellis。我试过了,但与带有光栅堆栈的 levelplot 相比,结果只是差一些。
关于如何实现这一目标的任何想法?