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