2000年1月~2024年12月各省市区县CO2排放量面板数据 & 栅格数据(CGER 来源)

Center for Global Environmental Research 网站上提供了 2000 年 1 月到 2024 年 12 月的全球 CO2 排放数据。网站上提供了 1kmx1km 和 1˚x1˚ 两种分辨率的 GeoTIFF 和 netCDF 数据,为了方便大家的使用,我把这份数据(1kmx1km的)汇总成了中国各省市区县的 CO2 总排放量面板数据,单位为吨。另外由于全球的数据非常大,我还提取了中国范围的栅格数据。

原始数据为 ODIAC(Open-Data Inventory for Anthropogenic Carbon dioxide)2025 版,数据来源链接为 https://db.cger.nies.go.jp/dataset/ODIAC/DL_odiac2025.html。处理流程为:使用 R 语言的 terra 包读取全球 1kmx1km 分辨率的 GeoTIFF 栅格数据,裁剪并掩膜出中国范围,再利用 terra::extract() 函数按照 2021 年行政区划矢量数据分别提取各省、各市、各区县的 CO2 排放量总和,最后汇总为面板数据并保存为 .dta 格式文件。

数据概览

附件中提供了 2000 年 1 月~2024 年 12 月中国各省市区县的 CO2 排放量面板数据:

  • 2000年1月~2024年12月各省份CO2排放量面板数据.dta
  • 2000年1月~2024年12月各城市CO2排放量面板数据.dta
  • 2000年1月~2024年12月各区县CO2排放量面板数据.dta

除了省市区县、日期信息,各文件都包含了 CO2排放量_吨 变量。各文件观测值数如下:

数据文件 观测值数 行政区划数
各省份CO2排放量面板数据 10,200 34 个省份
各城市CO2排放量面板数据 111,300 371 个城市
各区县CO2排放量面板数据 863,100 2,877 个区县

以 2000年1月~2024年12月各区县CO2排放量面板数据.dta 为例,该数据包含了 86.3 万条观测值,预览如下:

各省份和各城市的数据预览如下:

中国范围的 CO2 排放栅格数据

原始数据为 1kmx1km 分辨率的 GeoTIFF 数据,非常大(每个月的文件将近 4GB),为了方便大家使用,我裁剪出了中国范围的,时间范围为 2000 年 1 月到 2024 年 12 月,共 300 个月的栅格数据存放在 cntif 文件夹中。例如下图展示了 2024 年 12 月中国各地的 CO2 排放强度,单位为 吨/平方千米:

各区县 CO2 排放量面板数据

通过分区县汇总就可以得到中国各区县 CO2 总排放量面板数据,时间范围为 2000 年 1 月到 2024 年 12 月,单位为吨,例如下图展示了 2024 年 12 月中国各区县的 CO2 总排放量:

各城市 CO2 排放量面板数据

通过分城市汇总就可以得到中国各城市 CO2 总排放量面板数据,时间范围为 2000 年 1 月到 2024 年 12 月,单位为吨,例如下图展示了 2024 年 12 月中国各城市的 CO2 总排放量:

各省份 CO2 排放量面板数据

通过分省份汇总就可以得到中国各省份 CO2 总排放量面板数据,时间范围为 2000 年 1 月到 2024 年 12 月,单位为吨,例如下图展示了 2024 年 12 月中国各省份的 CO2 总排放量:

处理代码

附件中也提供了该数据的处理代码,代码位于 code 文件夹中,其中 main.R 用于栅格数据的裁剪、掩膜与分区汇总,plot.R 用于图表绘制。以下是 main.R 中的关键代码:

# 读取全球 1kmx1km 分辨率的 CO2 排放栅格数据
rast(x) -> rst
names(rst) <- flname

# 裁剪并掩膜出中国范围
rst %>%
terra::crop(vect(cn)) %>%
terra::mask(vect(cn)) -> cnrst

# 保存中国范围的栅格数据
cnrst %>%
writeRaster(paste0("cntif/", flname, ".tif"))

# 按省份提取 CO2 排放量总和
terra::extract(cnrst, vect(prov), fun = sum, na.rm = T) %>%
as_tibble() %>%
write_rds(paste0("rds/", flname, "_prov.rds"))

# 按城市提取 CO2 排放量总和
terra::extract(cnrst, vect(city), fun = sum, na.rm = T) %>%
as_tibble() %>%
write_rds(paste0("rds/", flname, "_city.rds"))

# 按区县提取 CO2 排放量总和
terra::extract(cnrst, vect(county), fun = sum, na.rm = T) %>%
as_tibble() %>%
write_rds(paste0("rds/", flname, "_county.rds"))

汇总各月数据并合并行政区划信息后即可得到面板数据:

# 合并省份面板数据
provdf %>%
left_join(
prov %>%
st_drop_geometry() %>%
mutate(ID = row_number()) %>%
select(-contains("类型"))
) %>%
select(-ID) %>%
select(省, 省代码, date, everything()) %>%
rename(日期 = date, CO2排放量_吨 = CO2) -> provdf

# 保存为 dta 格式
provdf %>%
haven::write_dta("2000年1月~2024年12月各省份CO2排放量面板数据.dta",
label = "数据计算:微信公众号 RStata,单位:吨")

附件中也提供了该数据的处理代码供参考:

数据引用格式

由于该数据包含较多 RStata 处理的内容,在研究中使用该数据请使用清晰的方式注明数据来源于 RStata 或者 RStata 数据中心,并使用如下格式引用:

RStata 数据中心: 2000年1月~2024年12月各省市区县CO2排放量面板数据 & 栅格数据(CGER 来源). 2026. https://tidyfriday.cn/rsdb2/

英文文献可以使用下面的格式引用:

RStata Data Center: CO2 Emissions Panel Data by Province, City, and District/County in China and Raster Data (CGER Source), January 2000–December 2024. 2026. https://tidyfriday.cn/rsdb2/

另外也建议在说明数据来源的同时,根据本文的介绍在论文中描述数据的详细处理方法。

关联课程/数据推荐

1970~2024 年中国各省市区县、乡镇 CO2 排放量面板数据 & 栅格数据(EDGAR v2025):https://rstata.duanshu.com/#/course/0753e7af840f4886a7c78ac8eafbfb50

1990~2024 年上市公司注册地址与办公地址周边一定范围的 CO2 排放量面板数据:https://rstata.duanshu.com/#/course/c72d81d321ab49f4859f8e7488e7df6e

中国各省市碳排放量是如何计算的?R 语言栅格数据转面板数据:https://rstata.duanshu.com/#/course/75de598dcfcc4ad0b9ff28bff27f6b83

栅格数据的裁剪与面积汇总——基于 R 语言的方法:https://rstata.duanshu.com/#/course/d2c2710928f44ad7a7518b8a178562c0

RStata 定制|栅格数据转面板数据或时间序列数据:https://rstata.duanshu.com/#/course/839afebb01d54457b42b94e87e7dc085

如果有相关的定制需求可以联系李老师付费定制。

点击这里跳转到 RStata 短书平台获取附件:2000年1月~2024年12月各省市区县CO2排放量面板数据 & 栅格数据(CGER 来源)

评论