R254 · 六项补齐与做实

碳合规机构库补齐 · GS 全量突破 · 碳汇供给池分层 · WB 部门字段补全 · 零碳申报引擎 · 碳普惠全链 | 2026-10-20
碳合规机构7418 → 74
GS 项目4,2362,000 → 全量
WB 项目3,241491 → 全量
碳汇供给1811 → 181
零碳指标14国家 + 地方
省级建制31省区市申报口径

一、carbon_compliance:18 → 74 家,恢复可售

做了什么

原库只有 18 家(认监委批准的审定与核查机构),低于 MIN_ROWS=60 的硬门槛,被自动下架。这次从省市主管部门公布的核查机构备案/评估名单真实扩采:先解决"怎么找到名单页"(360 检索 → 解析跳转页 → 真实 URL),再解决"名单在附件里"(纯标准库 xlsx 解析,不装第三方包)。

新增来源均为官方公告,逐条带 src_url 可回溯:

来源文件抓取结果
深圳市 2022 年碳排放核查机构备案名录(深圳市市场监管局,xlsx 附件)28 家
上海市首批碳排放核查第三方机构备案名单(市发改委,正文表格)10 家
辽宁省 2013-2015 年碳排放第三方核查机构备案(省发改委)13 家
福建省碳排放核查机构评估结果公示(2025,省生态环境厅)11 家
原认监委批准机构(cnca_announcement / official)18 家(去重后保留)

入库去重后共 74 家,其中 74 家有官方来源链接(100%)。按地区:广东 29 上海 13 辽宁 12 福建 8 全国 7 湖北 2 北京 2 未标注 1。

已恢复上架 当前可售库 126 个,四个变动库随全量包一并重建。

卡在哪里(如实说)

判定标准未放松:一条记录必须有官方 src_url,解析不出机构名就报 0 家跳过。没有为凑 60 行编任何机构。

二、GS:2,000 → 4,236 条,突破"API 上限"误判

根因

此前认为"GS 单查询上限 2,000"。实测发现两件事:

改为 size=150 全量翻页 + 429 指数退避,取到 4,236 个唯一项目(含 122 国、769 家开发机构)。

维度数量
项目总数4,236
已认证(CERTIFIED_PROJECT)2,291
列名(LISTED)1,074
设计阶段(CERTIFIED_DESIGN)871
覆盖国别122
中国项目276
造林/再造林 A/R180
开发机构769
institutions 表(派生)803

落地为 carbon_panorama.db: gs_projects(24 字段,含经纬度、签发期、SDG、SustainCERT 链接),并建 country/state/type/developer 四个索引;institutions 由开发机构真实聚合派生(458 → 803)。

"按状态/国别切片"这条路实测走不通——不是没做,是 GS 服务端不认。全量拉取反而更完整、更省事。

三、碳汇供给:1 宗 → 181 宗,分层标注不冒充挂牌

先说清楚一宗是什么

原来那 1 宗 RGRP202609120309459FB523 是内部演示数据(无任何官方来源),本轮已如实标注 src=internal_demo,不再冒充"已挂牌"。

为什么不能直接"造"验真挂牌

换成能对客户负责的做法:分层供给池

把 Gold Standard 官方登记的造林/再造林项目按可交易性分三层入库,每条带登记号与 registry 链接:

层级含义数量可直接交易
T1已认证(CERTIFIED_PROJECT),可洽谈采购/合作26是
T2已列名/设计阶段,可提前锁定、签发后供货154否
T3弱证据项(仅项目名/摘要强匹配),待核1否

覆盖 51 国、中国 3 个;方法学表由 8 条扩到 48 条(GS 真实方法学聚合);原候选池 2,188 条保留为 T3 线索,明确标注"待林权证与计量验真"。

没有把候选池包装成"已挂牌"。客户看到的是:哪 26 宗现在就能谈、哪 154 宗要先锁定、哪些只是线索。

四、WB:491 → 3,241 条,sector 缺失 36% → 5.2%

两个真根因

现在解析 sectordata 多值部门 + 官方 themev2_level3_exact 三级主题,并如实记录来源:

sector 来源条数说明
sectordata2722WB 真实部门字段,多值
sector1345旧字段,2015-2023 项目
theme_inferred6部门真缺时用官方 level3 主题兜底,已标注
none168WB 自身确实未填(多为 2024+ DPL 政策贷款)

绿色/气候标记改为只看主部门(前 3 项)+ 官方 level3 主题,不再用标题关键词猜:green_flag=1 共 1,318 条、climate_flag=1 共 2,136 条。早期版本曾把 Social Protection、Health 判成绿色(2,399 条),收紧后降到 1,318 条。

剩下的 168 条 sector 空值是 WB 自己没填(2024+ 政策贷款类项目普遍如此),平台不臆造部门名,只做 theme 兜底并标注来源。

五、零碳园区 / 零碳工厂:从"静态页"改成"能申报"

原来有什么问题

zero_carbon_park_engine.py 只是个静态页生成器(gen_page() 输出 HTML),客户点不了、填不了、算不出。这次新建交互式申报引擎 carbon_desk_pro.py(端口 8718,路径 /cd/)。

能做什么

实测数字(可复算)

输入值
外购电量12,000 万kWh
其中绿电9,600 万kWh
绿证20,000 张(=2,000 万kWh)
天然气 / 热力120 万m³ / 5,000 GJ
工业总产值800,000 万元
碳汇200 tCO2e
核算结果值校验
排放总量67,562.80 tCO264,392 + 2,620.8 + 550 = 67,562.8 ✓
绿电+绿证抵扣62,245.60 tCO211,600 万kWh × 0.5366 × 10 ✓
抵扣后净排放5,117.20 tCO267,562.8 − 62,245.6 − 200 ✓
综合能耗16,514.60 tce14,748 + 1,596 + 170.6 ✓
判定92.5 分 / 零碳达标(引领级)—
阈值是平台内置参照值(标注了政策依据文件),不是官方发文数字。报告里明确写了"申报前请以属地主管部门最新公告校验",不做"包过"承诺。省市条目只收录公开可查的文件名与口径要点,不臆造各省阈值。

六、碳普惠全链:填报 → 确权 → 核准 → 定价 → 挂牌 → 撮合 → 结算

七步闭环,每步留痕

环节做了什么产出编号
填报主体、地块、面积、方法学、权属凭证(可后补)PH+日期+序号
确权登记权属凭证号与剩余年限,生成确权编号RT…A
核准(MRV)碳密度 × 核准面积 = 核准量;记录影像来源与抽样比例MV…B
定价以 CEA 真实行情为锚 × 自愿市场折价 45%/55% × 第三方核查加成,给区间与中值,可人工覆盖—
挂牌生成撮合标的,进市场列表OD…
撮合买方提交意向(数量/金额/用途),不构成合同IN…
结算归档全链事件流水可导出,作为核算与审计底稿—

定价不是拍脑袋:直接读 carbon_feed.db 的 CEA 最新价(当前 97.56 元/吨,2026-10-19,源为上海环交所公开行情),再按方法学折价与核查质量加成给区间。取不到行情就明确提示"请手工填写",不编价。

验收实测(生产环境 31 项断言)

测试项结果
10 个页面全部 200通过
园区核算三项数字与手算一致通过
工厂申报出报告通过
核算 API 返回 8 项指标 JSON通过
碳普惠七步全链走通通过
中文全程无乱码(含 GB18030 回退)通过
未知路径返回 404通过
验收数据已清理(不留假单)通过

入口:https://ilumegroup.cn/cd 服务:ilume-carbon-desk.service(active,端口 8718) 运营库 carbon_desk_pro.db 已进 SKIP_BASE,不会变成可售资产。

诚实的边界:确权与 MRV 是表单化登记与计算,真实权属核验仍需林权证原件、真实遥感影像与第三方核查机构签章。平台把流程、计算口径、留痕和归档做到位,签字盖章这一步必须线下完成。

七、门禁与交付包

数据变动必须重建交付包,否则 G16/G18 立刻红。本轮踩到的坑:full_export.py all 只重建 tar.gz,build 才刷 csv.gz;而且必须先跑 module_vault.py 刷索引,否则打包读的还是旧行数。

正确顺序:数据更新 → module_vault → full_export build → full_export all --force → 门禁

库tar.gz 全库包csv.gz 主表包
carbon-panorama5,173 行 / 10 表4,236 行
beltcarb-belt-carbon3,289 行 / 5 表3,241 行
carbon-compliance74 行 / 1 表74 行
carbon-sink-net2,897 行 / 8 表2,188 行

run_id=86 total=65 ok=65 fail=0 warn=0 耗时 147997ms

全部门禁 PASS

八、新增/改动清单

文件作用
gs_full.pyGS 全量采集(size=150 翻页 + 429 退避),sync/stats/audit
wb_sector_fix.pyWB os 翻页 + sectordata 解析 + 绿色/气候标记
carbon_compliance_expand.py省市核查机构名单采集(360 检索 + xlsx 解析)
sink_supply.py碳汇供给池分层(T1/T2/T3),方法学聚合
carbon_desk_pro.py碳资产服务中心:零碳申报 + 碳普惠全链 + 撮合 + 核算 API
carbon_desk_init.py31 个省区市零碳建制(文件名 + 申报口径)
module_vault.pySKIP_BASE 增加 carbon_desk_pro(就地补丁,锚点校验)
nginx.conf新增 /cd/ → 8718(80 与 443 两个 server 块)

运维:systemctl status ilume-carbon-desk 日志 /var/log/ilume-carbon-desk.log 重启 systemctl restart ilume-carbon-desk

一句话总结:能扩到真数的都扩了(GS 2.1 倍、WB 6.6 倍、碳合规 4.1 倍、碳汇 181 倍);扩不动的都说明了为什么(CCER 401、Verra SPA、三处 WAF、doc/pdf 无解析库),没有一处用编造数据凑数。
💰 今天就能落袋 ⚡ 一键下单 ¥9.9 先取样试 ¥19.9 体验包 📜 合约对接 赚钱地图
ILUME 数据资源云 · 14 大赛道真实数据 · 碳核算已补齐 16.5 万条 · 逐源确权可溯源
进入数据市场  · 数据推广中心  · 渠道合伙人(服务费 20–35%)  · 资源总库  · 确权台账