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排放清单指南分类。
数据库层级结构对比 Ecoinvent 活动 (Activity) 单元过程 系统过程 GaBi 计划 (Plan) 过程 (Process) 流 (Flow) CLCD 行业分类 技术路线 过程数据 EFDB 部门 (Sector) 子部门 排放因子 层级差异影响因子调用方式 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 决策流程图

排放因子选择决策流程 确定评估对象 步骤1:地理匹配 优先选国家/区域级因子 步骤2:技术匹配 选择与生产工艺一致的因子 步骤3:时间匹配 选择最近5年内的因子 步骤4:质量校验 检查 DQIs,排除低质量因子 确定最终因子

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%)。
  • 回退机制:保留旧版本因子快照,便于审计和敏感性分析。