如何使Simapro输出数据集与ecoinvent兼容?解决Brightway迁移问题
处理Simapro与ecoinvent数据库关联及Brightway迁移问题的经验分享
- 优先保证版本兼容:必须同步Brightway版本、Simapro导出数据集依赖的背景库版本、ecoinvent数据库版本。比如ecoinvent 3.9需搭配Brightway 2.5及以上版本,Simapro导出时要选择与ecoinvent完全匹配的版本,多数迁移失败根源都是版本不匹配导致的流程ID、字段定义错位。
- 维护自定义映射表:官方映射表跟不上数据库更新速度时,自己做一份流程名称-ecoinvent UUID/代码的映射表。用Brightway的
bw2io模块导入Simapro数据后,手动修正不匹配项:from bw2io import SimaProCSVImporter importer = SimaProCSVImporter("simapro_export.csv", "ecoinvent_db") # 查看未关联项 importer.statistics() # 手动映射指定流程 for exc in importer.unlinked: if exc['name'] == "电力生产, 风能, 陆上": exc['database'] = "ecoinvent" exc['code'] = "对应正确的ecoinvent流程代码" importer.apply_strategies() - 统一生物流与分类规范:两个数据库的流命名、CAS号、分类系统常变更,用
bw2data模块对齐标准:from bw2data import Database ecoinvent_db = Database("ecoinvent") # 遍历Simapro数据中的交换项,匹配ecoinvent标准流 for exc in importer.data[0]['exchanges']: match = next((obj for obj in ecoinvent_db if obj['name'] == exc['name']), None) if match: exc['code'] = match['code'] exc['categories'] = match['categories'] - 用Brightway迁移工具适配版本升级:Brightway的
bw2migrate模块提供官方迁移脚本,比如从ecoinvent 3.8升级到3.9:
完成库迁移后再重新关联Simapro数据。from bw2migrate import migrate_ecoinvent_38_to_39 migrate_ecoinvent_38_to_39("旧ecoinvent库名称", "新ecoinvent库名称") - 参考社区已有解决方案:Brightway的GitHub issues里有大量同类问题的讨论,搜索"Simapro ecoinvent version mismatch"这类关键词,能找到其他用户分享的自定义映射表和修正脚本,直接复用或调整即可。
内容的提问来源于stack exchange,提问作者calimera
相关产品推荐
相关产品推荐

