You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对R语言中的Raster Brick列表求和并保留图层

对Raster列表中的Brick执行保留图层的求和操作

你可以通过以下两种简洁的方法实现对列表中所有Brick的对应图层求和,同时保留原有的图层结构:

方法一:使用Reduce函数(推荐)

利用Reduce函数迭代地对列表中的Brick进行累加,raster包的Brick对象支持逐图层的算术运算,直接就能得到保留图层的求和结果:

library(raster)

vals <- 1:5
many_bricks <- list()
for (v in vals){
  b <- brick(system.file("external/rlogo.grd", package="raster"))*v
  nam <- as.character(v)
  many_bricks[[nam]] <- b
}

# 执行求和操作
sum_bricks <- Reduce("+", many_bricks)

# 查看结果
sum_bricks

Reduce("+", many_bricks)会从列表第一个Brick开始,依次与后续每个Brick进行对应图层的逐像素求和,最终生成的sum_bricks和原Brick结构完全一致,每个图层对应所有输入Brick同位置图层的总和。

方法二:手动循环累加

如果你需要更直观的控制逻辑,可以手动初始化结果对象后循环累加:

# 初始化结果为列表第一个Brick
sum_bricks <- many_bricks[[1]]

# 遍历剩余Brick进行累加
for (brick_item in many_bricks[-1]) {
  sum_bricks <- sum_bricks + brick_item
}

这个方法和Reduce的底层逻辑一致,适合需要在累加过程中添加额外处理步骤的场景。

内容的提问来源于stack exchange,提问作者Blaiso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:40:30