如何读取多个光栅文件并获得每个光栅文件的平均值?

时间:2015-03-08 17:13:03

标签: r raster

我有25个tif栅格。我需要每个栅格的整体平均值。无论如何,我可以同时堆叠或读取所有25个tif并输出25个单独的平均值吗?

1 个答案:

答案 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