提取和映射 geoTIFF 数据与 R 中均值的 1+ 标准差

Extracting and mapping geoTIFF data 1+ standard deviations from mean in R

我有几个由 Google Earth Engine (GEE) 从 Landsat 8 场景生成的 geoTIFF 文件。每个文件覆盖 100Km^2,每个像素覆盖 30m^2,并包含地表温度 (LST) 的计算值。

我已经询问过单独使用 ArcGIS Pro 执行此操作,但我宁愿使用 R。Raster 包看起来可以完成这项工作,但我没有这方面的经验或在 R 中使用栅格数据。

我需要映射与平均值 >1 个标准偏差的值(较小的增量也很方便)。

理想情况下,我将能够批处理 TIFF,如果可能的话,我有一个从 GEE 导出的矢量蒙版,我也想添加它,尽管我希望作为一个单独的文件最容易做到过程。

我不确定从哪里开始,尤其是 R 中操作的逻辑顺序。如果您熟悉 Raster 包,欢迎任何指点。

如果我没理解错,你必须计算栅格的均值和标准差值,然后找到值大于均值+标准差的单元格。

library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
plot(r)

要计算均值和标准偏差,我们将使用 cellStats() 函数:

sdVal <- cellStats(r, "sd")
meanVal <- cellStats(r, mean)

现在,只需将栅格 r 复制到 s 并替换所有低于 mean+sd

的值
s<-r
s[which(s[] < (meanVal + sdVal))] <- NA
plot(s)

对于批处理,您可以创建一个循环,或者您的栅格列表和 lapply() 它的一个函数。

对于矢量掩码,请检查 mask() 函数。

reprex package (v2.0.1)

于 2022-03-11 创建