R中的一个函数,用于在多个光栅数据中绘制具有一致高值的位置

R中的一个函数,用于在多个光栅数据中绘制具有一致高值的位置,r,R,我有四个相同范围的光栅文件。每个光栅数据中的低值和高值模式不同。我希望在范围(边界)中绘制值大于x(其中x是整数)的区域。有人能帮我用r函数来做这个吗?请在下面找到光栅数据的示例代码。在本例中,假设我要在所有四个光栅中绘制并标识值大于0.4的单元。我想要一个显示值大于4的单元格的图像,而不是四个单独的图像。更像是覆盖光栅并在所有图像中识别值大于4的单元 library(raster) r1 <- raster(nrows = 1, ncols = 1, res = 0.5, xmn

我有四个相同范围的光栅文件。每个光栅数据中的低值和高值模式不同。我希望在范围(边界)中绘制值大于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]])
库(光栅)

r1这是一个超级简单的解决方案,可以很容易地推广到不同长度的输入:

myplot <- function(input,threshold){
  input <- lapply(input,function(x){
    x <- x>threshold
  })
  
  par(mfrow = c(2,2))
  plot(input[[1]])
  plot(input[[2]])
  plot(input[[3]])
  plot(input[[4]])
}

myplot(rr,0.4)

myplot您可以将
光栅
图像与
&
组合。每个单独绘图的第一个阈值:

r2 = lapply(rr, `>`, threshold)
然后将它们合并,只保留所有大于阈值的字段:

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

我想要一张显示值大于4的单元格的图像,而不是四张单独的图像。更像是覆盖光栅并在所有图像中识别值大于4的单元格。在匿名函数中为
x
赋值是毫无意义的。事实上,整个
lappy
可以缩短为
lappy(输入,`>`,阈值)