技术咨询:在Brightway中查看门到门排放及特定活动环境清单的方法
在Brightway中查看门到门直接排放与活动环境清单的方法
一、查看工序的门到门直接排放
这里的“直接排放”指工序自身边界内产生的排放(不含上游供应链),操作步骤如下:
- 定位目标活动
先加载目标数据库并找到对应的工序活动:
import brightway2 as bw # 切换到你的项目 bw.projects.set_current("你的项目名称") # 加载目标数据库 target_db = bw.Database("你的数据库名称") # 通过名称搜索并获取目标工序(根据实际情况调整索引) target_activity = target_db.search("你的工序名称")[0]
- 提取直接排放数据
直接排放对应活动的生物流排放交换项,过滤并输出:
# 筛选出类型为排放的生物流交换 direct_emissions = [exc for exc in target_activity.biosphere() if exc['type'] == 'emission'] # 打印直接排放清单 for emission in direct_emissions: flow = emission.input print(f"排放项: {flow['name']}, 排放量: {emission['amount']} {flow['unit']}, 类别: {flow['categories']}")
二、查看特定活动的门到门环境清单
门到门环境清单包含该活动全生命周期(从原材料获取到产品交付)的所有资源消耗与排放,需通过LCA计算获取:
- 初始化LCA计算
# 定义功能单位(例如1单位的目标活动产出) functional_unit = {target_activity: 1} # 初始化LCA对象并执行生命周期清单(LCI)计算 lca = bw.LCA(functional_unit) lca.lci()
- 提取全生命周期清单数据
# 整理所有非零的生物流清单项 full_inventory = [] for flow_id, amount in zip(lca.biosphere_flows, lca.inventory.sum(axis=1)): if amount != 0: flow = bw.get_activity(flow_id) full_inventory.append({ "项名称": flow['name'], "类别": flow['categories'], "总量": round(amount, 4), "单位": flow['unit'] }) # 输出清单 for item in full_inventory: print(f"{item['项名称']} ({item['类别']}): {item['总量']} {item['单位']}")
补充说明
- 如果需要区分直接排放与上游供应链排放,可以将第一步提取的直接排放项与全生命周期清单对比,标记出属于直接排放的条目。
- 确保目标数据库的活动交换项已完整录入,尤其是生物流排放项需正确设置
type为emission。
内容的提问来源于stack exchange,提问作者SR_20341_FR
相关产品推荐
相关产品推荐

