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

能否将ecoinvent不确定性用于前台清单?导入匹配问题求助

Brightway Excel清单导入及不确定性参数关联解决方案

问题核心原因

match_database采用精确字段匹配逻辑,你的Excel清单中不确定性字段(如uncertainty type的命名、scale的数值格式)与ecoinvent/biosphere3数据库中的标准格式不一致,导致匹配失败,出现未关联交换。


分步解决方法

1. 先完成基础关联(避免不确定性字段干扰)

先仅使用核心匹配字段完成交换关联,确保所有流都能匹配到数据库条目:

bd.projects.migrate_project_25
fp = '<inventory_path>'
enzymes = bi.ExcelImporter(fp)
# 仅用核心字段匹配技术流与生物圈流
enzymes.match_database("ecoinvent 3.8 cutoff", fields=('name','unit','location'))
enzymes.match_database("biosphere3", fields=('name','unit','loc'))
enzymes.apply_strategies()

2. 从关联数据库中提取不确定性参数

基础匹配完成后,遍历已关联的交换,从对应的ecoinvent/biosphere3数据集中提取不确定性参数,覆盖到导入的清单中:

# 处理技术流(ecoinvent关联)
db_ecoinvent = bi.Database('ecoinvent 3.8 cutoff')
for exc in enzymes.data:
    if exc.get('database') == 'ecoinvent 3.8 cutoff':
        original_entry = db_ecoinvent.get(exc['code'])
        original_exc = original_entry.get(exc['input'])
        # 复制关键不确定性参数
        exc['uncertainty type'] = original_exc.get('uncertainty type')
        exc['scale'] = original_exc.get('scale')
        # 按需补充其他参数(如loc、shape)
        for param in ['loc', 'shape', 'minimum', 'maximum']:
            if param in original_exc:
                exc[param] = original_exc[param]

# 处理生物圈流(biosphere3关联)
db_biosphere = bi.Database('biosphere3')
for exc in enzymes.data:
    if exc.get('database') == 'biosphere3':
        original_entry = db_biosphere.get(exc['code'])
        original_exc = original_entry.get(exc['input'])
        exc['uncertainty type'] = original_exc.get('uncertainty type')
        exc['scale'] = original_exc.get('scale')
        for param in ['loc', 'shape', 'minimum', 'maximum']:
            if param in original_exc:
                exc[param] = original_exc[param]

3. 验证并写入数据库

# 检查未关联交换情况
enzymes.statistics()
# 将带不确定性参数的清单写入数据库
enzymes.write_database()

额外注意事项

  • 确保Excel中的location/loc字段格式与数据库一致(如使用GLO、CH等大写区域代码)
  • 若需自定义不确定性参数,可在Excel中单独列字段,基础匹配后直接保留即可,无需从数据库提取
  • 运行蒙特卡洛模拟前,可通过bi.Database('your_database_name').random()验证不确定性采样功能是否正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:52:34