提取和映射 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 创建
我有几个由 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 创建