当前位置: 首页 > 知识库问答 >
问题:

如何从栅格中提取和计算某些区域的平均值?

呼延原
2023-03-14

我想在第一个光栅中选择一个小区域,计算该区域的空间平均值,并对其他11个光栅执行相同的操作。最终将得到12个值。

我试过这个:

sami<- list.files("C:\\New folder (3)", "*.envi", full.names = TRUE)
saf=stack(sami)
plot(saf, 1)   ## to select a region
e <- drawExtent()## I selected the region
saf_test <- crop(saf, e)

这样做对吗?

那么我如何计算所选区域的空间平均值?并对所有其他光栅执行相同的操作。提前谢谢。

共有1个答案

益银龙
2023-03-14

你可以这样做。我使用了光栅包中的一些示例数据。尝试它并使其适应光栅堆栈(这应该很容易)。提取功能将返回一个矩阵。每个层由drawExtent选择的一列区域值,然后可以使用colMeans作为该区域的平均值:

    #This particular stack has 3 'layers' - one each for the red, green and blue channels of the picture
    saf <- stack(system.file("external/rlogo.grd", package="raster")) 
    plotRGB( saf )
    e <- drawExtent()
    vals <- extract( saf , e , nl = nlayers( saf ) )
    vals <- colMeans( vals )
    vals
#   red    green     blue 
#   185.9368 191.9158 208.7825 
 类似资料:
  • 我正在使用光栅文件进行一些计算。我特别计算移动平均线。我想知道在任何计算之前热分配值给NA。 但是我有一个错误: 我也试过这个: 没有错误,但当我查看结果时,我发现没有任何变化。

  • 我试图从购物车(ArrayList)中计算平均值。平均值是指所有产品的总和除以它的数量?,如果我错了请纠正我,也许这就是为什么我的逻辑不太好用。 我试图做一个循环来计算所有乘积的总和,然后除以它的数量。

  • 我想使用dplyr::mutate计算一些列的平均值。 我想包含来计算平均值的列只有BL1到BL9,所以我这样做了。 这行不通。我注意到如果我一个接一个的列,它会工作 我怀疑这是因为我给出的是字符串而不是“列”。 有人能解释这种行为吗?对此最好的解决办法是什么?

  • 我在添加数组的所有元素以及求取它们的平均值时遇到了问题。我将如何做到这一点并用我当前拥有的代码实现它?这些元素应该定义如下。

  • 我是新来的Java,我正在写一个程序来管理学生,他们的科目和该科目的成绩。 代码询问学生的详细信息,然后将所有信息保存到Arraylist。我试图得到一个科目的平均成绩,但没有成功,我已经计算了某个学生的平均成绩,但是从某个科目获得所有成绩,然后计算平均成绩超出了我的理解范围。 这是我用于创建Arraylist的代码: 这是学生班的代码: 我试过类似的方法 但是我不知道如何只选择某个学科的成绩,而

  • 问题内容: 任何人都知道如何计算这些列之一的平均值(在Linux上)? 例如:mean(第2栏) 问题答案: Awk: 读为: 对于每一行,将第2列添加到变量“总计”中。 在文件末尾,打印“总计”除以记录数。