3. 排放因子数据库介绍:常用数据库的结构、数据质量指标与选择策略
排放因子数据库是LCA碳足迹计算的“燃料”。不同数据库在行业覆盖、地理代表性和数据质量上差异显著。本章系统梳理四大主流数据库——Ecoinvent、GaBi、CLCD、EFDB——的结构特征、数据质量评价指标,并给出因子选型决策路径。
3.1 四大主流数据库概览
| 数据库 | 开发机构 | 地理范围 | 行业覆盖 | 数据版本 | 访问方式 |
|---|---|---|---|---|---|
| Ecoinvent | 瑞士Ecoinvent中心 | 全球/欧洲/瑞士 | 能源、交通、化工、农业、电子等 | v3.9.1 (2023) | 付费订阅 |
| GaBi | Sphera (原PE International) | 全球/欧洲/北美 | 制造业、汽车、建筑、包装 | GaBi 2024.1 | 付费许可 |
| CLCD | 四川大学/中国LCA中心 | 中国 | 钢铁、水泥、电力、化工、交通 | CLCD 0.9 | 免费/注册 |
| EFDB | IPCC/联合国 | 全球/国家 | 能源、工业过程、农业、废弃物 | v2.0 (2023) | 免费公开 |
关键提示: Ecoinvent 和 GaBi 是“过程级”数据库,提供从原材料开采到废弃的完整单元过程数据;EFDB 是“排放因子级”数据库,仅提供单位活动水平的直接排放系数,不包含上游供应链。
3.2 数据库内部结构对比
理解数据库的结构是正确调用因子的前提。以下从数据层级、命名规则和元数据三个维度对比。
3.2.1 数据层级
- Ecoinvent:
活动 → 单元过程 → 系统过程。单元过程保留原始数据,系统过程为聚合结果。 - GaBi:
计划 → 过程 → 流。过程可嵌套,支持多输出分配。 - CLCD:
行业 → 技术 → 过程。按中国国民经济行业分类编码。 - EFDB:
部门 → 子部门 → 排放因子。按IPCC排放清单指南分类。
3.3 数据质量指标(DQIs)
排放因子的可靠性由一组标准化指标衡量。Ecoinvent 和 GaBi 使用 Pedigree Matrix(谱系矩阵)评估数据质量,CLCD 和 EFDB 采用简化版本。
| 指标维度 | Ecoinvent 评分范围 | GaBi 评分范围 | CLCD 等级 | EFDB 等级 |
|---|---|---|---|---|
| 可靠性 | 1(已验证数据)~ 5(专家估计) | 1(实测)~ 5(假设) | A/B/C | 1/2/3 |
| 完整性 | 1(代表全行业)~ 5(单一来源) | 1(全样本)~ 5(小样本) | A/B/C | — |
| 时间相关性 | 1(<3年)~ 5(>15年) | 1(<2年)~ 5(>20年) | 1~5年 | 年份标注 |
| 地理相关性 | 1(完全匹配)~ 5(全球平均) | 1(区域)~ 5(全球) | 中国/区域 | 国家/全球 |
| 技术相关性 | 1(完全匹配)~ 5(不同技术) | 1(相同工艺)~ 5(替代工艺) | 匹配/近似 | — |
实践建议: 在 Python 自动化计算中,建议将 DQIs 作为元数据字段嵌入因子字典。当多个因子可选时,优先选择“时间相关性”和“地理相关性”评分最优的因子。
3.4 如何选择适合的排放因子
因子选择遵循“三匹配”原则:地理匹配 → 技术匹配 → 时间匹配。以下给出决策流程。
3.4.1 决策流程图
3.4.2 场景化选型建议
| 应用场景 | 推荐数据库 | 理由 |
|---|---|---|
| 中国本土产品碳足迹 | CLCD + Ecoinvent 补充 | CLCD 覆盖中国主要工业过程,Ecoinvent 补充电子、化工等精细数据 |
| 欧盟出口产品EPD | Ecoinvent | EPD 标准要求使用 Ecoinvent 作为默认数据库 |
| 汽车行业供应链 | GaBi | GaBi 在汽车材料、冲压、涂装等过程数据最丰富 |
| 国家温室气体清单 | EFDB | IPCC 官方数据库,符合 UNFCCC 报告要求 |
| 学术研究/方法学开发 | Ecoinvent + 自定义因子 | Ecoinvent 元数据最完整,便于敏感性分析和不确定性量化 |
3.5 Python 中的因子检索示例
以下代码演示如何从本地因子库中按“地理+技术+时间”优先级检索最佳因子。
import json
from datetime import datetime
def select_best_factor(factors, geo_priority="CN", tech_keyword=None, max_age_years=5):
"""
按三匹配原则选择最优排放因子
Parameters:
factors: list[dict] - 因子列表,每个因子包含 'geo', 'tech', 'year', 'value', 'dqi'
geo_priority: str - 优先地理代码
tech_keyword: str - 技术关键词
max_age_years: int - 最大数据年限
Returns:
dict - 最优因子
"""
current_year = datetime.now().year
# 评分函数:地理匹配权重最高
def score(f):
s = 0
# 地理匹配 +50
if f['geo'] == geo_priority:
s += 50
elif f['geo'] == 'GLO':
s += 10
# 技术匹配 +30
if tech_keyword and tech_keyword.lower() in f['tech'].lower():
s += 30
# 时间匹配 +20
age = current_year - f['year']
if age <= max_age_years:
s += 20 * (1 - age / max_age_years)
# DQI 调整
s += f.get('dqi', 3) * 2
return s
best = max(factors, key=score)
return best
# 示例因子库
factor_db = [
{"geo": "CN", "tech": "煤电-超临界", "year": 2021, "value": 0.842, "dqi": 2},
{"geo": "GLO", "tech": "煤电-平均", "year": 2018, "value": 0.956, "dqi": 3},
{"geo": "CN", "tech": "煤电-亚临界", "year": 2019, "value": 0.913, "dqi": 2},
]
best = select_best_factor(factor_db, geo_priority="CN", tech_keyword="超临界")
print(f"最优因子: {best['tech']} ({best['geo']}, {best['year']}) = {best['value']} kg CO2/kWh")
# 输出: 最优因子: 煤电-超临界 (CN, 2021) = 0.842 kg CO2/kWh
常见陷阱: 不要直接使用数据库默认因子而不检查元数据。例如,Ecoinvent 的“全球平均”因子可能与中国实际工艺偏差超过 30%。始终优先使用地理匹配的因子,必要时通过“技术调整系数”修正。
3.6 数据库维护与更新策略
排放因子数据库每年更新,建议建立本地因子版本管理机制:
- 版本锁定:在项目开始时记录所用数据库版本号,避免中途更新导致结果不一致。
- 变更日志:记录每次因子替换的原因(如:Ecoinvent v3.8 → v3.9 中电力因子下降 5%)。
- 回退机制:保留旧版本因子快照,便于审计和敏感性分析。