首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从栅格中提取和计算某些区域的均值?

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

Stack Overflow用户
提问于 2013-03-20 19:07:39
回答 1查看 1.7K关注 0票数 0

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

我试过这个:

代码语言:javascript
复制
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)

这样做对吗?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-20 19:32:48

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

代码语言:javascript
复制
    #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()

代码语言:javascript
复制
    vals <- extract( saf , e , nl = nlayers( saf ) )
    vals <- colMeans( vals )
    vals
#   red    green     blue 
#   185.9368 191.9158 208.7825 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15521810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档