首页 > 解决方案 > R 中的一个函数,用于在多个栅格数据中绘制具有一致高值的位置

问题描述

我有四个相同程度的光栅文件。每个栅格数据的低值和高值模式不同。我想在范围(边界)中绘制值大于 x(其中 x 是整数)的区域。任何人都可以帮助我使用 r 函数来执行此操作吗?请在下面找到栅格数据的示例代码。在此示例中,假设我想绘制和识别所有四个栅格中值大于 0.4 的像元。我想要一张显示值大于 4 的单元格的图像,而不是四个单独的图像。更像是覆盖栅格并识别所有图像中值大于 4 的单元格

   library(raster)

r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn = -1.5, xmx = 1.5, ymn = -1.5, ymx = 1.5, vals = 0.3)

rr <- lapply(1:4, function(i) setValues(r1,runif(ncell(r1))))

par(mfrow = c(2,2))
plot(rr[[1]])
plot(rr[[2]])
plot(rr[[3]])
plot(rr[[4]])

四个栅格的图

谢谢/

标签: r

解决方案


您可以将raster图像与&. 每个单独地块的第一个阈值:

r2 = lapply(rr, `>`, threshold)

然后将它们组合起来,只保留所有大于阈值的字段:

summary = Reduce(`&`, r2)
plot(summary)

在此处输入图像描述


推荐阅读