3D RasterLayer 的平均值

问题描述 投票:0回答:1

我有一堆尺寸为 20x11x68 的堆栈,对应于一堆尺寸为 20x11 的 68 张图像。我想计算图像的平均值(即 20x11 维度上的平均值)。我尝试使用 Mean() 函数,但最终得到了每个像素 68 个日期的平均值(因此是一个 20x11 矩阵)。 我也尝试了那些不起作用的方法:

for (i in 1:nlayers(stack_images)) {
  layer <- stack_images[[i]]
  moyennes_par_image[i] <- mean(layer[], na.rm = TRUE)
}

custom_mean <- function(x) mean(x, na.rm = TRUE)
apply(stack_images, MARGIN = c(1, 2), FUN = custom_mean)

unlist(lapply(1:nlayers(stack_images), function(i) {
  custom_mean(extract(stack_images[[i]], stack_images[[I]]))

有人知道如何在 R 中做到这一点吗?

r raster
1个回答
0
投票

apply(., MARGIN = c(1,2), FUN = .)
会将函数应用于数组的前两个维度,因此这不是您想要的结果。相反,您应该在另一个维度上应用函数
mean()

apply(as.array(stack_images), MARGIN = 3, FUN = mean, na.rm = TRUE)
© www.soinside.com 2019 - 2024. All rights reserved.