如何在Brightway 2.5中导入LCIA层级的cradle-to-gate汇总得分?
Brightway 2.5 把汇总LCIA得分导入清单的实现方法
Brightway 2.5没有直接替代bw2agg的官方工具,但完全可以用原生API手动实现相同功能——把LCIA汇总得分做成自定义生物圈流,再整合到活动清单里,逻辑和bw2agg一致。具体步骤如下:
1. 计算目标活动的LCIA得分
先完成常规LCIA计算,拿到对应影响类别的总分:
import brightway2 as bw # 切换到你的项目 bw.projects.set_current("你的项目名称") # 加载目标数据库和LCIA方法 db = bw.Database("你的数据库名") method = bw.Method(('ReCiPe Midpoint (H) V1.13', 'freshwater eutrophication', 'FEP')) # 选中要处理的活动 target_activity = db.get("活动的唯一代码") # 计算LCIA得分 lca = bw.LCA({target_activity: 1}, method) lca.lci() lca.lcia() total_score = lca.score # 得到类似0.00140 kg P-Eq的数值
2. 创建自定义生物圈流
把LCIA得分定义成新的生物圈流,方便后续添加到清单:
# 定义流的基础信息 lcia_flow_data = { 'name': 'ReCiPe H V1.13 - 淡水富营养化(FEP)得分', 'categories': ('LCIA汇总得分', '淡水富营养化'), # 自定义分类,方便识别 'unit': 'kg P-Eq', 'type': 'biosphere', 'exchanges': [] } # 写入默认生物圈数据库(也可自建专用生物圈库) bw.Database("biosphere3").write({('biosphere3', 'lcia_fep_score'): lcia_flow_data})
3. 将LCIA得分添加到活动清单
把刚创建的生物圈流作为输入交换,加到目标活动里:
# 获取刚创建的LCIA得分流 lcia_flow = bw.Database("biosphere3").get('lcia_fep_score') # 给目标活动添加交换 target_activity.new_exchange( input=lcia_flow, amount=total_score, unit='kg P-Eq', type='biosphere' ).save() # 保存数据库修改 db.save()
额外提示
- 批量处理多个活动时,写循环遍历活动列表即可,重复计算得分和添加交换的步骤
- 自定义流的名称、分类可按需调整,只要能和其他流区分开就行
- 若要保留LCIA方法元数据,可在流的
comment字段补充相关说明
内容的提问来源于stack exchange,提问作者Laurent Vandepaer
相关产品推荐
相关产品推荐

