我有25个tif栅格。我需要每个栅格的整体平均值。无论如何,我可以同时堆叠或读取所有25个tif并输出25个单独的平均值吗?
答案 0 :(得分:1)
您可以使用sapply
读取所有光栅文件,并在一次操作中计算它们的平均值。以下是使用三个随机tiff
文件的示例,您可以根据自己的需要进行调整。下面的代码假定tiff文件在您当前的工作目录中。
# Get the names of the tiff files in the current working directory
rastFiles = list.files(pattern="tif")
rastFiles
[1] "density.tiff" "NE1_50M_SR.tif" "ortex.tiff"
# Read in all the tiff files in rastFiles, calculate their means and
# return the means in a vector
rastMeans = sapply(rastFiles, function(filename) {
r = raster(filename)
return(mean(values(r), na.rm=TRUE))
})
rastMeans
density.tiff NE1_50M_SR.tif ortex.tiff
188.5550 238.7883 214.6870