全球电厂点名册 — 3.5 万座,发电量九成靠推算

34,936 座、167 国、15 种燃料与七年的发电量缺口

来源 WRI Data Explorer(世界资源研究所) url: https://datasets.wri.org/dataset/globalpowerplantdatabase发布时间: 2026-10-30最后更新: 2026-10-30 阅读 3
全球电厂点名册 — 3.5 万座,发电量九成靠推算

信息速览

数据集名称全球电厂点名册 — 3.5 万座,发电量九成靠推算
数据类型34,936 座电厂,167 个国家,570.7 万兆瓦装机,15 种主燃料,2013–2019 发电量,CC BY 4.0
规模不适用(设施台账,无自然人;一条记录是一座发电厂,不对应个体)
接入方式WRI Data Explorer(世界资源研究所) url: https://datasets.wri.org/dataset/globalpowerplantdatabase
AI 就绪度

世界资源研究所(WRI)的全球电厂数据库是一份按电厂逐站登记的名册。一条记录对应一座发电厂,粒度停在一个并网点,不上到发电机组,下不到逐时出力。全库 34,936 条记录、167 个国别代码,装机合计约 570.7 万兆瓦。

它与常见的能源统计库结构相反。统计库给的是「某国某年某燃料发了多少电」,这里给的是「这一座厂在哪里、多大的容量、烧什么、哪年投产」。发电量只在 2013 至 2019 年逐年附上,而且填不满——2013 年只有 18.4% 的记录有上报值,2017 年之后近九成要靠模型推算。

因此,它最容易被误读成一串可以拿去做负荷预测的时间序列。这项误解来自字段命名,而非数据本身。这份名册的价值在于把全球三万多家电厂摆在同一张坐标纸上;它的问题也全在这张纸上:覆盖极不均、坐标精度参差、燃料只保留前三种、发电量分「上报」与「推算」两套账。

项目 数值 依据
记录数 34,936 主表行数,去掉表头
覆盖国别代码 167 country 去重;页面 JSON-LD 仍写 164
装机合计 5,706,975 MW capacity_mw 求和
单厂容量中位数 16.79 MW 同上,按全库排序取中位
主燃料种类 15 primary_fuel 去重
带副燃料的记录 1,944 other_fuel1 非空
上报发电量覆盖 2019 年 9,659 条(27.6%) generation_gwh_2019 非空
估算发电量覆盖 2017 年 33,138 条(94.9%) estimated_generation_gwh_2017 非空
字段总数 36 表头计数
版本 v1.3.0,2021-06-02 发布包 README.txt
维护状态 已停止 上游 README 首段
许可 CC BY 4.0 JSON-LD license;README.txt

§1 速览:它是名册,不是曲线

1.1 一句话定义

这是一份把全球燃煤、燃气、水电、核电、风电、光伏逐站点名并贴上容量与坐标的台账,每个名字后面跟着四类信息:它是谁(编号与名称)、它在哪(经纬度)、它有多大(容量)、它烧什么(燃料构成)。

若这份台账消失,补上的路径几乎不存在。各国电网公司、监管机构、行业协会各有自己的电厂清单,但口径不一、语言不一、格式不一:有的给机组、有的给厂、有的只给省。把三万多个来源——技术说明写的是 600 多个数据来源——缝成一张可比的表,这份工作量才是它真正的成本所在,数字本身反倒容易得很。

1.2 为什么它不是「发电量数据库」

名字里有 Power Plant,字段里也有 generation,但它的重心在「有哪些厂」而不在「发了多少电」。这两件事在数据结构上是相互拖累的:要逐站属性,就得一厂一行;要发电量时序,就得一厂多行或一列多期。选择前者,代价就是发电量只能摊成七个并列的年度列。

capacity_mw 与 generation_gwh_YYYY 的关系,也是一条最容易被人忽略的约束:装机容量是额定功率,乘上一年 8,760 小时才得到理论上限,而任何一座厂都跑不满这个上限。两者之比就是容量因子,它因燃料、因国别、逐年各异。把容量当发电量,等于假设全世界的电厂全年满负荷运转。

1.3 三十秒决策卡:你的处境,它能帮你什么

你的处境 这份台账能帮你什么
要给一批经纬度补上「附近有没有电厂、多大、烧什么」 直接按坐标做邻近匹配,全库带坐标,且 geolocation_source 交代了坐标出处
要做国别电力结构的静态画像 按 country × primary_fuel 汇总容量,得到的是一张装机结构表,不是发电结构表
要查某座知名电厂的基本信息 按名称或 gppd_idnr 直取,容量、投产年、所有者、数据来源多数能填上
要做电厂级排放或用水的估算输入 容量、燃料、坐标齐全,可作为排放因子法的输入;但发电量本身大半是推算的,误差会叠加
要把电厂与流域、人口、气候格点做空间连接 坐标是 WGS84 十进制度,可直接与栅格或矢量底图对齐,但精度差异要处理
要一份 2020 年以后的全球电力数据 给不了。最后一版发布于 2021 年,之后没有更新

最后一行值得单独讲。这个库的年份字段容易让人产生错觉:year_of_capacity_data 里 10,281 条写的是 2019 年,看起来像「2019 年的数据」,可以当时效;但库在 2021 年定格,2020 年之后新投产的电厂、退役的机组、改建的燃料,一概不在里面。

1.4 不适合谁

不适合要发电量时序的人。 七个年度值就是全部,没有月度、没有逐日、没有逐时。做负荷预测、做调峰分析、做出力模拟,都不该从这里出发。

不适合要精确燃料构成的人。 库里只保留主燃料加最多三个副燃料,三列的顺序本身没有意义,第四个起被截断。要做精确的燃料占比,必须另找源头。

不适合做全球无偏统计的人。 覆盖差异是结构性的:美国 9,833 条、中国 4,235 条、英国 2,751 条,而 17 个国别代码不到三条。直接对全库求和得到的「全球电力结构」实际上高度偏向美、中、英、巴西、法五国。

不适合要最新状态的人。 库已停止更新,它是一个时点快照,而非持续维护的活库。

1.5 贯穿本文的案例:佛罗里达的 Turkey Point

为了让「名册而非曲线」这件事落到具体数字上,全文用同一座厂贯穿。取美国佛罗里达州迈阿密以南的 Turkey Point,gppd_idnr 为 USA0000621。

选它有三个理由。它是全美装机排名靠前的大型电厂,容量 2,861.2 MW,不是边缘样本;它同时带核电与两种副燃料,正好演示燃料字段的多层结构;它的上报发电量与模型估算值都填了,而且差值不小,是「两套账」最清楚的标本。

这一行记录的关键字段是:国家 USA,坐标北纬 25.4356、西经 80.3308,主燃料 Nuclear,副燃料依次 Oil 与 Gas,投产年 1987.5449,所有者 Florida Power & Light Co,容量数据年份 2019,wepp_id 写的是 20282|20284 两个编号用竖线连在一起。

它的发电量两组数值并列:2017 年上报 18,022.70 GWh,估算 22,698.72 GWh,估算比上报高 25.9%。同一年、同一座厂、同一条记录里,两个数字相差四分之一。

下文凡提「§1.5 的案例」,指的都是这一行记录。

§2 数据构成:一行是一座厂

2.1 一个发布包,五个文件

v1.3.0 的官方发布包是一个 4,178,889 字节的 zip,解压后五个文件,合计 14.7 MB 左右:

文件 字节 内容
global_power_plant_database.csv 11,973,385 主表,34,936 行数据
README.txt 10,659 元数据与 36 个字段的逐项说明
RELEASE_NOTES.txt 1,547 相对 v1.2.0 的变更清单
A_Global_Database_of_Power_Plants.pdf 1,441,800 建库技术说明,18 页,2021 年 3 月更新
Estimating_Power_Plant_Generation_in_the_Global_Power_Plant_Database.pdf 1,685,244 发电量估算方法说明,36 页,2020 年 3 月

GitHub 仓库 output_database 目录下的主表与发布包内那份逐字节相同(两者 MD5 均为 bd938fe5d753dd29dde230d8690f09ab)。这一条值得记下来:很多元数据仓库里 GitHub 上的「最新版」其实领先于正式发布包,这里不是,两条链路给的是同一份文件。

CSV 的约定写在 README.txt 里:UTF-8 编码、逗号分隔、CRLF 换行、首行为表头、只在字段内含双引号时才加引号并按 RFC 4180 转义。这条约定在实际读取时很关键——Windows 换行与字段内引号的组合,会让不严谨的解析器把个别厂商名拆成多列。

2.2 36 个字段分五组

组 字段 性质
身份 country、country_long、name、gppd_idnr 谁、在哪国
物理 capacity_mw、latitude、longitude 多大、在哪
燃料 primary_fuel、other_fuel1、other_fuel2、other_fuel3 烧什么
时间与归属 commissioning_year、owner、year_of_capacity_data 何时起、谁拥有、容量哪年报的
溯源 source、url、geolocation_source、wepp_id、generation_data_source 数据从哪来
发电量 generation_gwh_2013 至 _2019 七列、estimated_generation_gwh_2013 至 _2017 五列、estimated_generation_note_2013 至 _2017 五列 发了多少、怎么算的

最后一组占了 36 个字段里的 17 个,接近一半。这个比例说明建库人清楚:发电量才是使用者最想要、也最难拿到的东西,所以给了它最多的列,同时也给了它最多的说明性字段。

2.3 主键 gppd_idnr 的构成

README 与 README.txt 都说明了编号规则:从国家级机器可读来源采集的电厂,编号由 ISO 3166-1 三字母国别码加七位数字组成;从其他来源(含 WRI 人工整理)采集的,由变长的前缀码加七位数字组成。

按前缀统计,规模最大的几类前缀是:

前缀 记录数 含义
WRI 13,173 WRI 人工整理
USA 9,789 美国 EIA
WKS 3,690 Wiki-Solar 光伏库
GBR 2,705 英国可再生规划数据库
BRA 2,340 巴西 ANEEL
CAN 1,154 加拿大自然资源部
IND 492 印度中央电力局
GEO 332 Global Energy Observatory
CHL、MEX、ARG 254、251、231 智利、墨西哥、阿根廷能源部门

前缀为 WRI 的占全库 37.7%。这个比例很说明问题:超过三分之一的电厂不是从某国官方系统里读出来的,而是 WRI 自己一条条整理进去的。这也解释了为什么溯源字段 source 与 geolocation_source 要分成两列——数据与坐标常常来自不同的地方。

2.4 一条记录逐字段解剖

回到 §1.5 的案例,把 Turkey Point 这一行完整摊开:

字段 值 该怎么读
country / country_long USA / United States of America ISO 三字母码加全称,全称偏口语化(如 F’Krina 一类地名会带撇号)
name Turkey Point 罗马化名称,未强制定长,存在同国重名
gppd_idnr USA0000621 国别码加七位序号
capacity_mw 2861.2 兆瓦,带一位小数
latitude / longitude 25.4356 / -80.3308 WGS84 十进制度,四位小数约合 11 米分辨率
primary_fuel Nuclear 贡献发电量最大的那种燃料
other_fuel1 / 2 / 3 Oil / Gas / 空 副燃料,顺序无意义
commissioning_year 1987.5449461764294 浮点年份,小数点后表示年内位置
owner Florida Power & Light Co 控股方,非运营商
source U.S. Energy Information Administration 数据报告方
url http://www.eia.gov/electricity/data/browser/ 来源网页,不是本厂页面
geolocation_source U.S. Energy Information Administration 坐标出处
wepp_id 20282\ 20284
year_of_capacity_data 2019 容量数值的报送年
generation_gwh_2017 18022.696956 上报发电量
generation_data_source U.S. Energy Information Administration 上报值的来源
estimated_generation_gwh_2017 22698.72 模型估算值
estimated_generation_note_2017 CAPACITY-FACTOR-V1 用的是产能因子基线模型
estimated_generation_note_2013–_2016 NO-ESTIMATION 前四年没有给估算

从这张表能读出四件在别处读不到的事。

第一,commissioning_year 是浮点数,不是年份。1987.5449 换算下来大约是 1987 年 7 月中旬。这个字段本意是「首台机组发电的年份」,但因为按机组容量加权折算,小数部分被保留了下来。全库 17,447 条有投产年的记录里,3,048 条带非零小数。把它直接当年份用,精度提高了一个量级,但意义变了;把它取整,又会与原始资料对不上。

第二,wepp_id 不是一对一。Turkey Point 对应 WEPP 的两个编号,说明对方库里这一座厂被登记成了两条。全库 46.5% 的记录有 wepp_id,有匹配失败的、也有多对一的,所以这个字段只能当辅助线索,不能当外键。

第三,url 指向的是数据源首页,不是本厂的资料页。这意味着「溯源」这个承诺在字段层面只做到「哪家机构报的」,要做到「哪个文件哪一张表」,得回到原机构自己的系统里去查。

第四,估算与上报同时存在,且不互相覆盖。这一行的估算值比上报值高 25.9%。技术说明对此的解释很直接:估算的作用是给没有上报的厂一个量级,而不是给有上报的厂做校验;所以对既有上报又有估算的行,上报值优先。

2.4b 空值的三种含义

这份台账的空格子有三种完全不同的含义,混在一起读会误判。

第一种是「确实没有」:该国不存在这类数据,或该厂不适用这个字段。比如 commissioning_year 空,很多时候是因为原始来源根本没写投产年,而不是电厂不存在(全库 49.9% 的记录有投产年,另 50.1% 没有)。

第二种是「有但没采」:数据公开存在,只是这一版没来得及收进来。owner 字段最典型:59.7% 的记录有值,其余四成并非电厂没有所有者,而是公开资料里查不到或没去查。

第三种是「不适用于这一行」:estimated_generation_gwh_2017 空,可能是 NO-ESTIMATION,原因是估算年份早于投产年、当年无适用模型、或基线模型被选择性关闭。这三种原因在 README.txt 里都列了,但主表里不会告诉你是哪一种。

三种含义在同一个空单元格里无法区分,这是这份台账最实在的一处信息损失。可操作的办法是:填充分布本身就是信息。generation_data_source 的填充率 32.6%、wepp_id 的 46.5%、year_of_capacity_data 的 42.6%,这三个比例远的差距反映的是各国统计体系的差异,而不只是建库时的工作量差异。

2.5 与同类资源的定位差异

资源 核心内容 与本库的差异
GPPD 逐站属性,一厂一行,覆盖全球 唯一同时覆盖燃料、坐标、容量、所有权的开放全球台账
各国监管机构电厂清单 单国、权威、更新及时 精度更高,但国别间不可比,语言与口径各异
国际能源署与 IRENA 国别统计 国家级装机与发电总量 无电厂级粒度,但有权威的国别口径,可用来标定本库的覆盖缺口
碳排或产能相关的第三方电厂库 侧重排放与产能因子 指标更专,覆盖电厂数更少
各国电网调度公开数据 逐时出力 时间粒度细得多,但只有少数国家公开,且不含全球统一的燃料编码

一句可操作的判断规则:要「这一座厂是什么」,看这里;要「这一国发了多少」,看国别统计;要「这一座厂现在出了多少力」,看调度数据。

2.6 记录粒度上的一处含糊:一座厂到底是什么

「一个并网点」这个定义听起来精确,落到数据上却留下了明显含糊。

同一并网点的多台机组被并成一行:一台核电机组加一台燃油备用机,合成一行 Nuclear 加 Oil。不同并网点、地址相邻、同属一家公司的两个厂,则各占一行。于是「一座电厂」在不同国家可能指不同的东西——在美国,EIA 的厂级口径与库的口径基本吻合;在把多台机组分散接入的点位,库的厂数会明显少于机组数。

这处含糊在统计上有两个后果。第一,按记录数得到的「电厂数」是并网点数,不是机组数,也不是法人实体数。第二,同一座厂的多燃料记录无法拆出各燃料对应的容量,所以「煤电装机」这个数在混烧厂上只能是整厂容量。

技术说明对此的态度是承认并留待后续:发电机组级信息在 v1.3.0 里没有,列为未来步骤。这个空缺不是疏忽,而是在全球范围内找不到足够统一的机组级公开数据。

§3 燃料层:主燃料、副燃料与三种分层错误

3.1 15 种主燃料,按记录数与容量各排一次

primary_fuel 的取值只有 15 个,比很多人预想的少。按记录数排:

主燃料 记录数 容量合计(MW)
Solar 10,665 188,312
Hydro 7,156 1,053,160
Wind 5,344 263,054
Gas 3,998 1,493,051
Coal 2,330 1,965,541
Oil 2,320 261,879
Biomass 1,430 34,281
Waste 1,068 14,749
Nuclear 195 407,912
Geothermal 189 12,688
Storage 135 1,712
Other 43 3,613
Cogeneration 41 4,048
Petcoke 12 2,425
Wave and Tidal 10 552

这两列放在一起看,就是这份台账最容易被读错的地方。光伏按记录数占 30.5%,按容量只占 3.3%;煤炭按记录数占 6.7%,按容量占 34.4%。

原因很朴素:一座燃煤电厂的容量动辄上千兆瓦,一座分布式光伏可能只有 1 到 10 兆瓦。全库 34,936 条里,容量超过 1,000 MW 的只有 1,569 条(4.5%),却占了 53.0% 的装机。容量中位数只有 16.79 MW。

所以「按电厂数量说电力结构」和「按装机容量说电力结构」会得到两张完全不同的图。前者描述的是设施数量与小规模发电单元,后者才接近电力系统的实际体量。

3.2 primary_fuel 是「最大份额」,不是「唯一燃料」

README.txt 对这个字段的定义写得很清楚:主燃料是贡献发电量份额最大的那种燃料,或者是数据源认定的主燃料。这意味着两件事:一个电厂可以同时烧煤、油、气;而主燃料的判定不一定经过测算,可能只是照抄数据源的说法。

副燃料三列 other_fuel1 到 other_fuel3 的填充数依次是 1,944、276、92,带任一副燃料的记录共 1,944 条,占 5.6%。第 2 列与第 3 列的填充急剧衰减,部分是真实情况(多数混烧厂只有一种副燃料),部分是截断——库里只保留三个副燃料槽位,第四个起直接丢弃。

一个必读的告示来自 JSON-LD 与 README.txt 两处,措辞一致:副燃料三列的顺序不代表任何优先次序。这不是客气话。在构建主表时,副燃料原本以无序集合类型存储,输出成 CSV 时为了配合三列格式被摊平成序列,编号只是列表位置,不代表机组重要性,也不代表投运先后。

3.3 三种按燃料分组会犯的错

错法一:只按主燃料分组。 1,944 条混烧记录会被整块记到主燃料名下,容量也一并归过去。对煤电的影响最大:煤加副燃料的组合里,煤单独以外的搭配有 289 条是「主煤副油」、73 条是「主煤副气」、50 条是「主气副煤」。

错法二:把副燃料也当成一份容量。 副燃料没有独立容量列,capacity_mw 是整厂的。若把一个混烧厂在两个燃料类别下各记一次,容量会被重复计数。

错法三:把 Other、Cogeneration、Storage 当燃料。 这三个取值不是燃料,是性质。Storage 是储能,Cogeneration 是热电联产,Other 是兜底的未知。在燃料结构统计里把它们单列是合理的,混进化石或可再生里都会失真。

3.4 一起看混烧:气油与煤气

按主副燃料组合取前几名:

组合 记录数 读法
主气 + 副油 795 典型的燃气电厂保留燃油备用
主煤 + 副油 289 燃煤锅炉的助燃或点火用油
主油 + 副气 166 燃油电厂后期改烧气
主煤 + 副气 73 常见于燃煤机组的掺烧或改造
主废料 + 副气 70 垃圾焚烧厂的辅助燃料
主生物质 + 副废料 60 生物质与固废界线模糊
主气 + 副煤 50 少见,多为记录口径问题
主光伏 + 副储能 26 光伏配储,非混烧而是联合布置

前四组是真正的混烧,后四组里有相当一部分其实是联合布置而非燃料混合。这一点很难从字段本身分辨:库里没有一列说明副燃料是「同一炉膛掺烧」还是「同厂址另一套机组」。技术上,一座厂被定义为「一个并网点」,所以同一并网点下的核电与油机、光伏与电池,都会被并进这一行。

§1.5 的案例就是这种并厂的标本。Turkey Point 主燃料是 Nuclear,副燃料有 Oil 与 Gas。这三者不可能是同一个炉膛里的燃料,实际是同一个厂址上的核电机组与燃油、燃气备用机组。若按「燃料」理解这一行,会误以为核电厂烧油烧气。

3.5 燃料编码缺失带来的合并难题

15 种主燃料是从各数据源的燃料名称里归并出来的,归并规则表在仓库的 resources/fuel_type_thesaurus。归并意味着丢失:不同的技术(联合循环与单循环燃气轮机、陆上风电与海上风电、单晶与多晶光伏、径流式与抽水蓄能)在库里全都合并成同一个燃料值。

技术说明明确提到了后续补充计划:加入技术类型、发电机组级信息、排放与水耗指标。这些在 v1.3.0 里都没有。所以要做「燃气联合循环与单循环的对比」这类分析,这个库只能给到厂级容量,技术类型得另外找。

§4 发电量层:两套账,七个年份

4.1 七列上报、五列估算、五列方法标签

发电量在这份台账里占 17 个字段:

列组 字段 年份范围
上报 generation_gwh_2013 至 generation_gwh_2019 2013–2019,七列
估算 estimated_generation_gwh_2013 至 _2017 2013–2017,五列
方法标签 estimated_generation_note_2013 至 _2017 2013–2017,五列
来源标注 generation_data_source 单列,注明上报值来自哪个机构

估算只做到 2017 年,上报做到 2019 年,这个不对称来自 v1.3.0 的发布说明:当年新增了 2018、2019 两列上报值,但没有同步扩估算年限。

两组的覆盖率差得很远:

年份 有上报值 有估算值
2013 6,417(18.4%) 16,120(46.1%)
2014 7,226(20.7%) 16,503(47.2%)
2015 8,203(23.5%) 17,050(48.8%)
2016 9,144(26.2%) 17,570(50.3%)
2017 9,500(27.2%) 33,138(94.9%)
2018 9,637(27.6%) —
2019 9,659(27.6%) —

2017 年的估算覆盖率跳到 94.9%,原因就在方法标签里:CAPACITY-FACTOR-V1 这个基线模型只对 2017 年有效,README.txt 明写「This model is only permissible for year 2017」。所以只有 2017 年这一列是「尽力填满」的,前四年则按燃料专用模型的适用范围各填各的。

4.2 六种估算方法标签

方法标签的六种取值与覆盖次数(按 2013 至 2017 五列合计 169,843 个槽位计):

标签 出现次数 含义
NO-ESTIMATION 74,299 未给估算,理由有三种,见下
SOLAR-V1-NO-AGE 35,798 光伏,缺投产年时使用的版本
HYDRO-V1 35,536 水电专用模型
CAPACITY-FACTOR-V1 14,942 国别×燃料的平均产能因子基线
WIND-V1 8,430 风电专用模型
SOLAR-V1 5,675 光伏,有投产年的版本

README.txt 对 NO-ESTIMATION 列了三种原因:估算年份早于该厂投产年;当年缺少适用的模型;2017 年对该用基线模型的部分国别×燃料组合选择性不适用。

第三种原因最值得注意。 基线模型会按国别与燃料算出一个平均产能因子,再按装机份额分摊。若算出来的产能因子超过 90%,说明这一组合的国别总量与库内装机严重不匹配(多半是该国发电总量远大于库内已收录的电厂),此时模型不用这个值,直接留空。这是一个相当克制设计选择:与其给出一个明显荒谬的数,不如空着。

README.txt 给了这项留空的规模:NO-ESTIMATION 在 2017 年约占全部行的 5%(约 1,800 行),占全部容量的 1.3%(约 77 GW)。主表里实际数出来的是 1,798 条,与说明几乎一致。

4.3 两套账的同框对比

2017 年,上报与估算同时非空的有 9,241 条;只有估算的 23,897 条;只有上报的 259 条;两者都没有的 1,539 条。

在有上报值且不为零的 8,342 条里,估算值除以上报值:

统计量 值
中位数 1.04
十分位 0.51
九十分位 18.27
比值超过 2 倍 23.5%
比值不到一半 9.5%

中位数 1.04 看起来很体面,仿佛估算与上报基本一致。这个数容易误导。它说的是「一半的电厂估算与上报相差不到一成」,没说分布的形状;九十分位 18.27 说明有一成电厂的估算值是上报值的十八倍以上,这才是分布的真面目。

原因可以从方法里推出来。基线模型按国别×燃料的年度总量,乘上该厂在同国同燃料装机中的份额。这一算法有一个隐含前提:同国同燃料的所有电厂,容量因子相同。凡是容量因子明显偏离国别均值的厂,都会被打偏:常年满发的核电厂会被低估,一年只跑几百小时的调峰燃气厂会被高估。

§1.5 的案例正是被低估的那一类。Turkey Point 是一座利用率很高的核电厂,2017 年上报 18,022.70 GWh,估算 22,698.72 GWh。它的容量 2,861.2 MW,理论上限发电量约 25,064 GWh,上报值对应的容量因子约 71.9%,估算值对应的约 90.6%。也就是说,基线模型按国别均值给它在一年跑了九成的假设;实际跑了七成。推算比实际情况乐观。

4.4 上报值的口径也不统一

generation_gwh_* 填了就是有人报过,但「报的是什么年」并不统一。README.txt 明写:上报值可能对应日历年,也可能对应财政年度或监管年度,库里不作区分。

这个坑在做跨国年度对比时会立刻显形。日本的财年从 4 月起算,印度的财政年从 4 月起算,有些电力公司的监管年与日历年错开几个月。这些差异在一个国家的内部分析里可以忽略,一旦把几十个国家的上报值拼成一张全球表,季节性错位就开始影响到结论。

上报来源的集中度同样明显。有 generation_data_source 的 11,400 条里,美国能源信息署占 9,715 条,其余分散在四十多个来源。也就是说,全球范围内有上报发电量、且知道出处的记录,八成以上来自同一个国家的一个机构。

4.5 时间序列的三道墙

第一道墙:样本不连续。 一座厂 2013 年有值、2014 年空、2015 年有值,这种情况很常见,因为不同年份的上报来源不同、覆盖不同。直接按年份平移做差分,会把缺失当零。

第二道墙:口径不一致。 上报与估算混用会把曲线锯开。一座厂前四年是 HYDRO-V1 估算、后三年是上报值,把七年连成一条线,看到的「增长」或「下降」可能只是口径切换。

第三道墙:时间分辨率。 七个年度点,做趋势拟合已经勉强,做季节性分解、做日内调度学习是完全不可能的。技术说明里提到的所有模型(产能因子基线、风电光伏水电专用模型)都以年为步长,没有更细的粒度可供反推。

4.6 七列上报值加起来对不上全球总量

一个可以自己做的检验:把 2019 年这一列(上报值最全的一年)的全部数值相加,得到约 409 万 GWh。而同年全球发电量在六万亿千瓦时上下,差了一个数量级。

差额的构成有两部分。其一是覆盖:只有 9,659 条记录有 2019 年上报值,占全库 27.6%,其余记录在当年要么没报、要么资料源根本没更新到 2019 年。其二是回溯性:库发布时,各国的 2019 年度统计大多尚未出齐,能填上 2019 年的主要是美国能源信息署这条线。

把这一列的损失率按年份画出来更直观:2013 年合计 380 万 GWh、2015 年 625 万 GWh、2017 年 629 万 GWh、2019 年回落到 409 万 GWh。这条曲线先升后降,看起来像全球发电量在 2018 年之后腰斩,实际只是逐年补充的上报来源在 2018、2019 两年没有跟上。任何把这条曲线当趋势的人,都会得出一个不存在的结论。

4.7 估算值只对「同年同国同燃料」有守恒性

基线模型有一个不难验证的性质:对同一个国家、同一个燃料、同一年份,把各厂的估算值加起来,应当正好等于该国该燃料的年度总量——因为模型就是从总量往回按装机份额拆的。

这个性质用来说明两件事。

第一,估算值的可信度是成组而非逐条成立的。单看一座厂,估算值可能偏离真实值数倍;把一组厂加起来,偏差会部分抵消,因为拆分本身是守恒的。所以估算适合做区域加总,不适合做单厂判断。

第二,守恒性只在基线模型里成立。SOLAR-V1、WIND-V1、HYDRO-V1 这三个燃料专用模型走的是另一条路:用投产年、坐标、国别等参数推该厂自身的容量因子。它们不保证组内加总等于国别总量。把三类模型的输出混在一起使用,守恒性就破了。

§1.5 的案例在这一项上属于「有上报、估算也填了」的那一类。它当年用的正是基线模型,理论上它与美国其余核电厂的估算值相加,会等于美国核电当年的总量。但既然它自己有上报值,这条守恒链上它已经被扣减过,所以不宜再拿它做单厂校验。

§5 覆盖与坐标:名册的疏密与定位的粗细

5.1 167 个国别代码,前十占近七成

按记录数排,前十个国别代码合计 30,000 余条,占全库 68.2%;按装机合计排,前十占 70.0%。两者的名单略有不同:

排名 按记录数 条数 按装机 容量(MW)
1 USA 9,833 CHN 1,415,067
2 CHN 4,235 USA 1,204,638
3 GBR 2,751 IND 316,089
4 BRA 2,360 RUS 228,220
5 FRA 2,155 JPN 215,366
6 IND 1,589 BRA 147,589
7 DEU 1,309 CAN 143,579
8 CAN 1,159 DEU 112,040
9 ESP 829 FRA 110,616
10 RUS 545 KOR 99,473

美国按记录数第一、按装机第二;中国反过来。英国按记录数第三,按容量排不进前十;韩国按容量第九,记录数只有 132 条。这两张表的差异不是统计口径问题,而是设施规模结构的差异:英国与德国的可再生能源设施数量多而单体小,韩国与日本则是大型集中式机组为主。

5.2 稀疏的另一端:17 个国别代码不到三条

国别代码 记录数 容量(MW)
ATA(南极洲) 2 7.6
PSE(巴勒斯坦) 1 7.6
ESH(西撒哈拉) 1 23.4
LCA(圣卢西亚) 1 3.0
GNB(几内亚比绍) 1 18.2
DJI(吉布提) 1 107.3
LSO(莱索托) 1 72.0
SUR(苏里南) 1 5.0

南极洲的记录是科考站自备电源,西撒哈拉与圣卢西亚各一条。这些记录的存在说明库的收录边界是「能定位到坐标且容量不低于 1 MW」,而不是「有电网供电的国家」。16 个国别代码只有一条记录,把它们放进国别比较,任一跨国均值都会被这几条拽偏。

5.3 覆盖缺口有官方口径,但没有逐国数字

技术说明给了一张按燃料的覆盖表,基准是 2020 年 8 月的国际总量:

燃料 覆盖全球装机比例 缺口(MW) 比对基准
核电 超过 100% — IAEA,2020
地热 90.33% 1,345 IRENA,2019
煤电 超过 100% — Platts,2017
水电 88.48% 136,765 IRENA,2019
天然气与油 81.58% 391,715 Platts,2017
生物质 76.38% 10,649 Platts,2017
风电 38.59% 382,205 IRENA,2019
光伏 30.27% 407,782 IRENA,2019

核电与煤电超过 100%,意味着库内这两类的装机合计已大于同期国际统计总量。可能的解释有三种:基数年份不同(库内容量年份跨 2000 至 2019)、库内重复计数、统计口径差异(如是否含自备电厂)。库本身没有对此作出说明。

风电与光伏的覆盖只有三到四成,这是这份台账最实质的短板。而这两类恰恰是数量占比最大的两类(光伏 10,665 条、风电 5,344 条)。也就是说,数量上最密的品类,恰恰是覆盖漏洞最大的品类。

5.4 坐标精度没有分级字段,只能从出处反推

这是与常见想象差距最大的一点。库里没有一列写「坐标精度为厂址/城市/国别」。只有 geolocation_source 交代出处,28 种取值:

出处 记录数 精度含义
U.S. Energy Information Administration 9,789 厂址级,监管报送的经纬度
Wiki-Solar 3,690 光伏电站中心,个案可能落在阵列中部
WRI 2,869 人工整理,精度不定
UK Renewable Energy Planning Database 2,582 规划审批坐标,多为厂址
Open Power System Data 2,389 欧洲电网运营商汇总
Agência Nacional de Energia Elétrica (Brazil) 2,338 监管登记坐标
GEODB 1,788 GEO 库转来,技术说明称抽测 50 座中 92% 在 300 米内
UNFCCC CDM Registry 1,598 碳交易项目登记坐标
Industry About 1,327 民间整理
CARMA 1,295 技术说明称精度不如 GEO

技术说明给了两处关键数字。第一,只有 29.7% 的容量是用国家级数据定位的;其余靠 GEO、CARMA 等二级库匹配或卫星影像人工识别。第二,与 GEO 的匹配用弹性搜索,参数是名称权重 2 倍、国家 1 倍、燃料 1 倍,命中 1,797 座、占容量 20.5%;中等置信度的匹配还要人工复核,约一半被判定为有效。

匹配当然会出错。README 直承这一点:匹配算法可能把两座不同的电厂错配成一条,也可能把同一座厂的两条记录匹配失败。这意味着坐标层面的误差不是均匀随机噪声,而是集中在特定来源的国家——凡是靠 GEO 与 CARMA 补坐标的国家,误差结构与那两家库的误差结构绑定在一起。

§1.5 的案例在这一项上是干净的一端。Turkey Point 的坐标来自美国 EIA 的监管报送,四位小数,可直接与卫星影像对上。但同一张表里的另一端是 GEODB 转来的记录,那类坐标只保证 300 米量级。

5.5 覆盖不均如何污染全球统计

做全球燃料结构统计时,若直接把全库求和,得到的是「所收录电厂的容量结构」,不是「全球电力结构」。这两者的差距由各国的收录完整度决定。

举一个可算的例子:全库煤炭装机 1,965,541 MW,水电 1,053,160 MW,两者比约 1.87 比 1。而按上面那张覆盖表,煤电覆盖基准已超过 100%、水电覆盖 88.48%,也就是说水电的缺失比煤电多。修正之后,水电的真实占比应当比库内比例更高。

另一个例子是风电与光伏:库内风电 263,054 MW、光伏 188,312 MW,但国际统计里的实际装机远大于此(缺口分别是 382,205 MW 与 407,782 MW),且光伏的缺口比例更大。不做覆盖加权,光伏的份额会被系统性低估。

可操作的修正办法只有一条:用外部权威的国别×燃料总量做分母,把库内合计做分子,算出逐格的覆盖系数,再按格反向加权。技术说明自己就是这么算覆盖率表的,任何做全球统计的人都可以照此办理。

§6 版本、许可与获取

6.1 一条命令拿到,三条链路等价

cd /tmp && curl -sL -o gppd.csv \
  "https://raw.githubusercontent.com/wri/global-power-plant-database/master/output_database/global_power_plant_database.csv" \
  && wc -l gppd.csv && head -1 gppd.csv | cut -c1-60

输出应为 34,937 行(34,936 条数据加表头)与一行 36 列的字段名。文件大小 11,973,385 字节。

冷启动时单线程下载会很慢。GitHub 的原始文件端点支持 HTTP Range,分块并行拉可以显著提速:

cd /tmp && U="https://raw.githubusercontent.com/wri/global-power-plant-database/master/output_database/global_power_plant_database.csv"
S=1000000; for i in $(seq 0 11); do s=$((i*S)); e=$((s+S-1)); [ $i -eq 11 ] && e=11973384
  curl -s --retry 2 -r $s-$e -o part_$(printf %02d $i) "$U" & done; wait
cat part_* > full.csv && wc -l full.csv

三段式说明:先取 Content-Range 拿到总长(这里回的是 bytes 0-0/11973385),再按 100 万字节切段,最后按序拼接。拼接顺序必须按段号,因为 cat part_* 依赖文件名的字典序。

发布包那条链路给的是同一份文件,MD5 一致,但多带三份说明文档,适合离线留存:

curl -sL -o gppd130.zip \
  "https://datasets.wri.org/private-admin/dataset/53623dfd-3df6-4f15-a091-67457cdb571f/resource/66bcdacc-3d0e-46ad-9271-a5a76b1853d2/download/globalpowerplantdatabasev130.zip"
unzip -l gppd130.zip
md5sum gppd130.zip   # 与 GitHub 版 CSV 内容一致,包内文件名去掉了前缀

6.2 第三通道:Resource Watch 的 SQL 转发

页面 JSON-LD 的 distribution 里列了一个图层端点,指向 Resource Watch。它不是文档化 API,而是一条把 SQL 转发到底层表的查询通道:

curl -s "https://api.resourcewatch.org/v1/query/a86d906d-9862-4783-9e30-cdb68cd808b8?sql=SELECT%20count(*)%20as%20n%20FROM%20powerwatch_data_20180102"

返回 {"data":[{"n":34936}]},与 CSV 行数一致。底层表名是 powerwatch_data_20180102,名字里的日期是 2018 年 1 月 2 日,而表内数据已更新到 2021 年的版本——表名不代表数据时点。

这条通道的价值是可以按国家、按燃料服务端聚合,不必把 12 MB 拉到本地。它的风险是未公开承诺稳定性,且表名一旦变更,查询就会直接报错。

6.3 许可:机器可读,两处可查

许可为 CC BY 4.0,两处比机器可读更直接地从响应与文件里取得:

curl -sL "https://datasets.wri.org/dataset/globalpowerplantdatabase" \
  | grep -o '"license":{[^}]*}'

输出原文为:

"license":{"@type":"CreativeWork","name":"Creative Commons Attribution","url":"http://www.opendefinition.org/licenses/cc-by"}

第二处在发布包的 README.txt,License 行逐字写着:

License: Creative Commons Attribution 4.0 International -- CC BY 4.0

两处相互印证,且都是可读的结构化或固定格式文本。上一版底稿称许可「可在 API 响应体里机器读取」,这个说法可以保留,但要说清是网页内嵌的 JSON-LD,而不是某个数据 API 的响应头——JSON-LD 是页面元数据,不是 DataDownload 的响应体。真正从数据端点拿到的只有 CSV 本身,CSV 里没有许可字段。

许可条款带来的义务是署名。正式引用格式在 JSON-LD 的 citation 字段与 README.txt 里都给了,两份略有出入(年份一个写 2021、一个写 2019),用途上以 JSON-LD 的 v1.3.0 版为准。

6.4 版本:定版之后不再动

v1.3.0 发布于 2021-06-02,发布说明列出的相对 v1.2.0 变更包括:删掉单一的 estimated_generation_gwh 字段、改为按年五列;新增 2018 与 2019 两列上报值;新增 generation_data_source;光伏数据大改,从 Wiki-Solar 补入 3,700 多座、合计逾 113 GW;从 JRC-PPDB 补入约 450 座欧洲电厂的上报发电量;美国、澳大利亚、英国、印度的数据分别更新。

最该记住的一句在上游 README 的第一段:项目自 2022 年初起不再由 WRI 维护,没有计划中的更新,v1.3.0 是最后一版。发布包 README.txt 在 Updates 一节也留了伏笔:「Though updates have been infrequent, there is the potential that this is the last major update to this database.」

网页端仍可访问,页面元数据的 dateModified 是 2025-10-06。这个日期容易被误认为数据更新,实际是页面本身的改动时间。数据最后改动是 2021-06-02。

§7 质量评估:先换掉一套评价框架

7.0 阅读本节前需要知道的一件事

评价这份台账,不宜沿用「数据集质量」这套框架——用它来衡量,几乎一定会得出负面结论:覆盖不全、字段缺失、发电量大半是推算、停止维护、坐标精度未标。

换成另一套框架更贴近事实:它是一份一次性完成的长名单。评判长名单的标准,是它有没有把该点到的名字都点到、有没有为每个名字留下足够核实的信息、有没有诚实地标出哪里没点到。按这套标准,它的完成度相当高——每条记录都有数据来源与坐标出处,每列发电量都标了是报的还是算的,连「哪一年哪一类没算」都写进了说明文件。

7.1 逐条局限

第一,没有时间序列。 七个年度值就是全部。任何以「出力」「负荷」「曲线」为前提的任务,都不该从这里出发。

第二,发电量分两套账,且两套不互校。 上报值优先,估算值只用于填补空缺。2017 年两列并存的行有 9,241 条,其中不少相差数倍。混用两列做年度对比,会把口径差异当成趋势。

第三,燃料只保留三个副燃料。 混烧厂的完整燃料构成无法从库里恢复;副燃料的顺序无意义,也不能解释为投运先后。

第四,覆盖极不均。 前十国占 68.2% 的记录;风电与光伏按国际统计只覆盖三到四成;17 个国别代码不到三条。

第五,坐标精度无字段标记。 只有出处,没有精度分级。要靠出处反推,而部分出处(如 WRI、Industry About)本身精度不定。

第六,部分坐标可能是匹配错配的产物。 技术说明承认弹性搜索匹配会错配,也会漏配。这类误差集中在靠 GEO 与 CARMA 补坐标的国家。

第七,commissioning_year 是浮点数。 3,048 条带非零小数。当整数年份用会引入年内位置的伪精度,当连续变量用又缺乏明确的小数语义(README.txt 只说是按容量加权)。

第八,year_of_capacity_data 只有 11 个取值、42.6% 的填充率。 容量数据的报送年份早到 2000 年,晚到 2019 年,跨度近二十年。同一张表里比「2019 年的容量」,实际上混着不同年份的快照。

第九,wepp_id 不是一对一。 46.5% 的记录有值,存在一条记录对多个编号(如 §1.5 的案例)、也有编号被多条记录引用的情况。

第十,库已停止维护。 2020 年之后的一切变化都不在里面。若需要现状,必须另找数据源做增量更新。

7.2 三组可以自己做的对照

对照一:容量合计与国别统计总量。 把全库 capacity_mw 按燃料求和,再与 IRENA、IAEA 的同期总量相比,能得到逐燃料的覆盖系数。技术说明已经做过一次(基准 2020 年 8 月),用自己的数据可以复现。

对照二:估算与上报的分布。 取 2017 年两列都非空的行,分别按燃料算比值中位数。水电与风电的偏差方向往往相反,原因是两类模型的假设不同。

对照三:记录数口径 vs 容量口径。 同一批国家的两种排名差异越大,说明该国的电厂规模结构越分散。英国(记录数第三、容量跌出前十)与韩国(容量第九、记录数 132)是两个极端。

7.3 DAIMS 二十四项速评

维度 结论 依据
数据模型文档 强 README.txt 逐字段说明,两份技术说明 PDF
标识符稳定性 强 gppd_idnr 定长 10 位,一厂一号
版本记录 强 发布说明逐条列出增删改
变更日志 强 RELEASE_NOTES.txt 覆盖 v1.2.0 到 v1.3.0
许可明确 强 JSON-LD 字段 + README.txt 文本,两处一致
署名要求 强 给出正式引用格式
文献溯源 中 到机构一级,url 指向来源首页而非本厂页
元数据完整性 强 字段说明与覆盖率表齐全
数据字典 强 36 个字段逐条定义
空值策略 中 空即未知,但没有显式的缺失原因码
精度分级 弱 坐标无精度字段,只能从 geolocation_source 反推
不确定度表达 弱 估算值不附误差区间
时间语义 中 年度值但财年与日历年不分
空间参考 强 WGS84(EPSG:4326),README.txt 写明
质量控制标记 中 estimated_generation_note_* 标方法,不标精度
覆盖声明 强 按燃料给出覆盖率与缺口,基准与年份都写明
抽样代表性 弱 无抽样设计,收录依赖可用性
关联资源链接 中 wepp_id 通往第三方库,但不是一对一
访问接口 强 三个直链,无需注册
批量导出 强 单文件 CSV,12 MB
速率限制 未涉及 静态文件
响应截断保护 未涉及 整文件下载
数据冻结版本 强 v1.3.0 定版,不再变动
引用规范 强 两处给出格式

强项集中在「文档、许可、标识符、冻结」这四项,弱项集中在「精度分级、不确定度、抽样代表性」。这四项恰好是逐站台账最容易被忽视、也最影响下游建模的四项。

7.4 它为何能持续

答案有一半是否定的:作为活库,它已经停了。但作为一份被反复调用的资料,它没有停下。

第一层原因来自不可替代的对位。 全球范围内,同时具备开放许可、电厂级粒度、覆盖多国的台账,目前只有这一份。GEO 早在 2012 年前后停止有效更新,CARMA 的坐标精度被技术说明点名为不如 GEO。替代品不在。

第二层原因来自下游的隐性依赖。 它被大量研究当作基础清单:排放估算、水耗核算、退役影响分析、能源转型情景,方法节里常常写一句「电厂清单取自 GPPD v1.3.0」。这种依赖一旦进入论文,就具有自我维持能力;后来的研究为了可比,也得用同一版。

第三层原因来自停止的理由足够清楚。 上游 README 直说不再维护,并且公开征集维护分叉。这比一个「名义上在维护、实际上三年不动」的库要诚实:使用者知道自己在用一份 2021 年的快照,会自觉去找增量来源,而不会误以为它仍在更新。

它靠什么存在下来的?靠 600 多个来源、按国别逐一整理的漫长工作,加上 WRI 若干年的机构投入与 Google、KTH 等合作方的支持。它从哪里来?技术说明的第一段给了动机:在它出现之前,没有一份既真正全面、又完全开放的全球电厂库;各国能报的数据报法各异,拼不成一张可比表。这份台账的起点就是把这件事做一次。

7.5 三处读数的取舍建议

面对同一座厂在库里可能出现的多个数,给出落地的取舍顺序。

发电量:先看 generation_gwh_2017,非空就用它;空的时候看 estimated_generation_gwh_2017 的标签,若是 CAPACITY-FACTOR-V1 则按组使用,若是 SOLAR-V1 一类专用模型则单独使用并注明方法;两列都空的,记为未知,不要用相邻年份填补。

容量:直接取 capacity_mw,但要同时带上 year_of_capacity_data。没有这个年份的记录,容量所属时点不明,做时序对比时要单独标注。

坐标:先看 geolocation_source,出自国家监管机构的可以直接用于小范围判断;出自二级库匹配的要按 300 米量级处理;WRI 与 Industry About 这两类人工整理的,建议逐条抽查后再用。

这三条建议都指向同一个原则:同一张表里的数值,可信度不等价。把不等价的东西当成等价,是使用这份台账时最常见、也最难事后发现的一类错误。

§8 与库内条目的关系

8.1 它在库内的位置

库里此前没有任何一个电厂级或电力系统级的条目。它落进来,补的是「人类活动的物理基础设施」这一块,与已经收录的地表覆盖、气象、水文、地图类条目处于同一张地理底图上,但回答的是不同纬度的问题。

8.2 四条可操作的内链路径

从这份台账出发 到哪个条目 怎么接
某座水电厂所在流域的年径流与降水 多源融合降水 MSWEP 用厂址经纬度取格点,与 HYDRO-V1 估算值对照
电厂是否为抽水蓄能或与水库共址 全球湖泊水面 HydroLAKES、子流域 HydroBASINS 坐标落在水库多边形内即为共址
电厂所在地的气温与风速基准 ERA5 单层再分析 按坐标与年份取格点,作为容量因子的解释变量
国别层面的用电与装机总账 世界银行开放数据 用国别指标做分母,算这份台账的覆盖系数
电厂周边的建成区与道路 Overture Maps 坐标做邻近查询,判断厂址是否落入城区

这五条路径有同一个前提:坐标是 WGS84 十进制度。库里 latitude、longitude 是数值列,可以直接参与计算;但要注意 §5.4 的精度差异,做小范围判断(如「厂址是否落在水库内」)时,靠 GEO 匹配来的坐标可能已经偏了几百米。

这两类条目的拼接里有一处会对不上:这份台账的坐标是厂址点,底图的多边形或栅格是面。点在面上时,要处理两种情况——点落在面外一点点(精度误差),与点落在面的缝隙里(底图覆盖漏洞)。前者要靠缓冲容差,后者不该硬凑,直接记为无匹配更安全。

8.3 检索路径:三种找法

按国别:country 用三字母码,不是两字母也不是中文名,country_long 才是名称。

按名称:name 是罗马化名称,同一国家内存在重名(同国同名记录 267 组),检索时要连同 country 一起限定。

按坐标:全库没有空间索引,需要在本地做距离计算,或用 §6.2 的查询通道把范围过滤下推到服务端。

三种找法返回的是同一张表,条件同时给出时取交集。

§9 使用指引

9.1 三种角色

角色一:能源研究者。 想知道某国的电力结构。路径是国别 × 燃料汇总容量,再用上报发电量校核,缺失部分标为估算。要避开的是只按记录数说话。

角色二:机器学习工程师。 想把电厂信息当作空间协变量。路径是取坐标做邻近或格点匹配,只取容量与燃料两类,不取发电量——后者的推算成分太重,作为标签会把模型误差与数据误差混在一起。

角色三:跨库整合者。 想与其他地理数据拼接。路径是先定坐标基准,再按 §5.4 的出处表给每条记录标一个精度权重。

9.2 最小可运行流程:从国别到燃料结构

import csv, collections

rows = list(csv.DictReader(open("global_power_plant_database.csv", encoding="utf-8")))

cap = collections.defaultdict(float)
cnt = collections.Counter()
for r in rows:
    mw = float(r["capacity_mw"])
    cap[(r["country"], r["primary_fuel"])] += mw
    cnt[(r["country"], r["primary_fuel"])] += 1

for fuel in ["Coal", "Gas", "Hydro", "Nuclear", "Wind", "Solar"]:
    mw = cap[("CHN", fuel)]
    print(f"{fuel:<8} {cnt[('CHN', fuel)]:>5} 座 {mw:>10,.0f} MW")

四行关键点:capacity_mw 在库里是字符串,必须显式转换;聚合键用二元组,避免把同名列合并;打印时分成条数与容量两栏,这一对数字的落差本身就是信息;最后按需要把 fuel 列表换成全库 15 种取值。

9.3 从案例到对照:两套账的同框计算

import csv

rows = list(csv.DictReader(open("global_power_plant_database.csv", encoding="utf-8")))

def num(r, k):
    v = r[k].strip()
    return float(v) if v else None

tp = next(r for r in rows if r["gppd_idnr"] == "USA0000621")
act = num(tp, "generation_gwh_2017")
est = num(tp, "estimated_generation_gwh_2017")
print(f"上报 {act:,.2f} GWh | 估算 {est:,.2f} GWh | 比值 {est/act:.2f}")
print(f"容量因子:上报 {act/(tp['capacity_mw'] and float(tp['capacity_mw'])*8760):.1%}")

这段代码用在 §1.5 的案例上,会打印出比值 1.26 与容量因子约 71.9%。它的意义不在于复核 Turkey Point 一座厂,而在于把所有行都跑一遍之后,看比值分布的尾部有多长。

9.4 在 AI 流程中的位置

作为空间协变量源。 把电厂的位置、容量、燃料投影到网格上,得到的是一张「电力基础设施强度」图层。它与人口、夜间灯光、路网一起进入空间回归或遥感解译模型时,是少数能区分「有电厂」与「没电厂」的变量。

作为实体检索的知识源。 「某地有什么电厂」「某座厂的容量与投产年」这类问答,直接查表即可,不需要推理。

作为排放与用水的输入。 容量、燃料、坐标齐全,可套用排放因子法或水耗系数。这条路的关键在于:发电量本身大半是推算的,误差会传下去;若排放量对精度敏感,应该改用上报发电量覆盖的那 27.6% 记录,其余另找依据。

§10 AI 使用声明

项目 说明
性质 设施台账,非标注数据集,无人工标签
建议用途 空间协变量、设施问答、排放与用水的输入、国别装机结构画像
不建议用途 负荷预测与出力模拟;全球无偏电力统计;把估算值当上报值
伦理 无个人数据,一条记录对应一座发电厂;引用须保留 CC BY 4.0 署名
引用 World Resources Institute et al. Global Power Plant Database version 1.3.0
版本 v1.3.0,2021-06-02 发布,已停止维护
状态 在线可访问,无需注册
再分发 可自由分发与商用,须署名

§11 常见误读(避坑清单)

以下每一条都能在正文找到对应证据,括号内为所在小节。

常见说法 实际情况 证据
「可以做电厂级负荷预测」 只有七个年度值,无逐日逐时出力 §4.1、§4.5(看列组与三道墙)
「estimated_generation_gwh 是上报值的补空」 两套独立数值,可并存且可相差数倍 §4.3;案例比值 1.26,九十分位 18.27
「按 primary_fuel 分组等于燃料结构」 1,944 条带副燃料,容量被整块归到主燃料 §3.2、§3.3
「容量加总就是发电量」 容量是额定功率,需乘 8,760 小时与容量因子的乘积 §1.2、§4.3
「167 个国家就是全球覆盖」 前十个国别代码占 68.2%,17 个不到三条 §5.1、§5.2
「风电光伏数量最多所以占比最高」 按记录数 35.7%,按容量仅 7.9% §3.1
「坐标精度有字段标记」 无精度字段,只有 geolocation_source 出处 §5.4
「commissioning_year 是年份」 浮点数,3,048 条带非零小数 §2.4、§7.1
「NO-ESTIMATION 表示发电量为零」 表示没给估算,原因有三种 §4.2
「网页 dateModified 是数据更新日」 数据最后改动 2021-06-02,页面元数据另有时间 §6.4
「wepp_id 可以当外键」 存在一对多,46.5% 的记录有值 §2.4、§7.1
「副燃料顺序代表主次」 官方明写顺序无意义 §3.2

FAQ

Q1:它到底是电厂库还是发电量库?

是电厂库。一条记录是一座厂的静态属性,发电量是附加的年度栏目,而且填不满。

Q2:怎样判断一条记录的发电量是报的还是算的?

看列名:generation_gwh_* 是上报,estimated_generation_gwh_* 是估算。两列同时非空时上报值优先。

Q3:estimated_generation_note_* 里的标签是精度评级吗?

不是。它标的是用了哪个模型。CAPACITY-FACTOR-V1 是基线,SOLAR-V1、WIND-V1、HYDRO-V1 是燃料专用模型,NO-ESTIMATION 是没给。

Q4:为什么只有 2017 年的估算填得那么满?

因为基线模型只对 2017 年有效,其余年份按各燃料专用模型的适用年限填。

Q5:库里有没有退役电厂?

没有。技术说明写明首版只收在运电厂,运营状态字段不在 36 列里。

Q6:1 MW 以下的电厂为什么不收?

技术说明给了理由:这类「电厂」数量超过十万,体量只占全球容量约 0.5%,且在公开卫星影像上难以定位。库内最小的容量正好是 1.0 MW。

Q7:同一座厂会不会有多条记录?

厂级定义是「一个并网点」,同一并网点下的核电机组与油机被并成一行。不同并网点、同名同址的多个厂则会各占一行,同国同名记录共 267 组。

Q8:许可允许商用吗?

允许。CC BY 4.0 只要求署名。

Q9:能用它做 2024 年的现状分析吗?

不能直接做。数据停在 2021 年,之后的变化不在里面。可以用它做基线,再另找数据源补增量。

Q10:还有别的入口吗?

有三个:GitHub 主表、WRI 发布包、Resource Watch 的 SQL 转发。前两者文件一致,第三者支持服务端聚合。

术语表

术语 含义
GPPD Global Power Plant Database 的缩写
gppd_idnr 电厂主键,10 位,前缀表示来源体系
装机容量(capacity) 额定最大出力,兆瓦,不是实际发电量
容量因子 实际发电量与理论上限之比,用小时数折算
主燃料(primary fuel) 贡献发电量份额最大的燃料,由数据源判定或测算
副燃料(other fuel) 主燃料以外的燃料,最多三个,顺序无意义
上报发电量 由机构报告的年度发电量,可能对应财年
估算发电量 由模型推算的年度发电量,用途是补空缺
NO-ESTIMATION 未给估算,表示缺失而非零值
并网点 厂级粒度的定义单位,一个接入点算一座厂
GEO Global Energy Observatory,坐标主要来源之一
CARMA 早期碳排电厂库,坐标来源之一,精度被点名不如 GEO
WEPP PLATTS 的电厂库,wepp_id 指向它
基线与专用模型 基线按国别×燃料均摊,专用模型按燃料特性推算
WGS84 坐标参考系,EPSG:4326,十进制度
定版 发布后不再改动的版本,与持续更新的活库相对

编辑说明

核验时间 2026-10-30。核验方式:拉取 v1.3.0 发布包(4,178,889 字节)解包逐文件核对;拉取 GitHub 主表 11,973,385 字节,与包内 CSV 做 MD5 比对一致;读 README.txt、RELEASE_NOTES.txt 与两份技术说明 PDF;读页面内嵌 JSON-LD 的 license、citation、distribution 三个字段;查询 Resource Watch 图层做行数复核,返回 34,936 与本地一致。全文数字除引用官方说明外,均由主表直接算得。未核实项:year_of_capacity_data 为 2000 年的 58 条记录其原始来源文档未逐份追查;Resource Watch 底层表名的数据时点未取得独立说明;网页端日期 2025-10-06 的具体改动内容未比对历史版本。口径说明:覆盖国家数在页面 JSON-LD 写作 164、主表实际 167,正文按主表口径并列标注,未作取舍。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • hydrolakes — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • hydrobasins — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • dhs-program — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • ghcn-daily — 共享标签:公共卫生与流行病学 / 全球健康 / 多模态
  • ghdx — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • world-health-survey — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • gho-steps — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • share — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • sage-survey — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据
  • lasi — 共享标签:公共卫生与流行病学 / 全球健康 / 调查数据

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集