简介:一套覆盖1970—2022年中国省、市、区县、乡镇四个行政层级的CO2排放数据集,原始数据源自EDGAR,适合从事碳中和、环境经济与区域可持续发展研究的学者、规划师及数据爱好者直接开展时序趋势分析与空间制图。资料主体为逐年栅格数据(1970—2022年tif),并配套Excel指标表,字段包含省、省代码、市、市代码、县、县代码、乡镇、乡镇代码、年份、CO2排放量(吨),方便按行政区划汇总统计。压缩包共103个文件,其中55个tif为主要排放图,另有9个png分布图、5组shp/dbf等矢量边界(如海岸线、九段线、行政区划)、R语言处理脚本(tidy_grey.R等)及打包好的rds地理数据,可满足从数据读取、清洗到地图出图的完整流程。整包约417.95MB,已有299人学习浏览。对需要长时序、多尺度碳排放底数或开展县域、乡镇级精细排放核算的研究者,这份资料能显著节省数据采集与预处理时间。
1. 拿到这份数据包之后,先别急着解压
前段时间需要做一份关于区域碳排放时空演变的分析,兜兜转转找到了一个名为“中国省、市、区县、乡镇CO2排放数据(1970-2022年).zip”的数据包。乍一看文件名平平无奇,但真打开之后才发现,这几乎是国内目前在时空粒度上做得相当完整的一套区域碳排放数据集——省、市、区县、乡镇四级尺度全部覆盖,时间跨度从1970年一直到2022年,超过五十年。
先说这个数据包能干什么。如果你需要研究区域碳减排路径、分析不同行政单元的排放差异、构建碳排放预测模型,或者做空间可视化展示,这套数据都能提供基础支撑。更关键的是,乡镇级别的CO2排放数据在公开渠道非常稀缺,很多研究做到区县一级就顶天了,能下探到乡镇尺度,意味着你可以做更精细的空间分析。
不过,拿到zip压缩包之后先别急着双击解压。这个数据包实际解压出来的体积远远超过压缩包本身,涉及的行政区域编码、时间序列格式、单位换算等问题也比想象中复杂。我在这套数据上踩了不少坑,从解压工具选型到数据清洗再到空间可视化,整个过程走下来,值得记录的东西还挺多的。
2. 这套CO2排放数据的整体设计思路
2.1 四大行政层级的数据组织逻辑
数据包内部按行政层级拆分成四个子目录,分别是省级、市级、区县级、乡镇级。每个子目录下再按照年份拆分成单独的CSV文件,比如province_co2_1970.csv、city_co2_1970.csv这种命名方式。这样做的好处是显而易见的——按年切分之后,研究者可以按需加载特定年份的数据,不需要一次性把所有数据读进内存。
以乡镇级数据为例,单年的记录条数可以达到数万条,如果全部年份合并成一个文件,文件体积和使用体验都会变得很差。按年份拆分是这类长时序数据的通用做法,后续做主键合并或分年处理都方便。
2.2 排放口径与部门分类
这套数据在排放口径上主要基于IPCC核算方法,覆盖了化石燃料燃烧、工业生产过程、农业活动、废弃物处理等主要排放源。每一行记录除了包含行政区域名称和编码之外,还细分了排放部门字段,可以按部门维度做聚合分析。
这里要特别提醒一下,不同层级的数据在排放部门分类上有细微差异。省级数据的部门分类最细,乡镇级数据的部门分类相对粗糙,大概率是核算方法在下沉过程中做了简化处理。做跨层级对比时,需要先把部门分类映射到统一口径上,否则结果会出现偏差。
2.3 字段结构与单位约定
字段结构基本遵循以下模式:行政区域编码、行政区域名称、年份、排放总量、各排放部门分项、数据来源标识。行政区域编码与国标行政区划代码保持一致,这为后续与GIS数据做空间关联提供了极大便利。
排放总量的单位是万吨CO2当量,部门分项的单位也是万吨CO2当量。看似简单的单位约定,实际操作中容易出问题——尤其是做国际对比时,国外数据集普遍使用吨或百万吨作为单位,换算错一位小数点,结论就全变了。我在处理时统一先用程序做了一次单位校验,确保所有层级的数据量级一致。
3. zip解压与环境搭建实战
3.1 解压工具选型考量
这个数据包名称结尾是zip,实质内容涉及海量小文件,解压过程比普通压缩包更容易踩坑。实测下来,Windows系统自带的资源管理器解压工具面对数万个CSV小文件时,速度慢且容易卡死。我最终用7-Zip完成解压,速度比系统自带工具快出几倍不止。
如果你的压缩包文件出现“failed to copy spatial iop zip”之类的报错,先不要怀疑文件损坏。遇到这类问题,先把压缩包转移到本地磁盘再解压,同时关闭杀毒软件的实时监控,多数情况下可以解决。这种情况通常不是文件本身的问题,而是解压路径权限或文件占用导致的复制失败。
解压完成之后,建议做一个完整性校验——统计解压后的文件数量,然后抽查几个文件的末尾行是否完整。CSV文件如果解压不完整,最后几行数据会丢失,这种问题在数据分析阶段极难察觉。
3.2 中文字符编码处理
解压完成后遇到的第一个技术问题,就是CSV文件的中文编码。这套数据包里的文件在Windows环境下打开正常,但放到Linux服务器或Python环境里读取时,中文列名和数据内容全部乱码。
原因是文件编码是GBK,不是UTF-8。读取时统一指定编码参数可以解决。后续所有处理流程中,我都先将文件转成UTF-8编码再入库,避免后续每个环节都要处理编码问题。
这里补一句:如果你用R语言读取,同样需要显式指定文件编码。不同工具对默认编码的处理逻辑差异很大,提前统一编码是省事的关键一步。
3.3 按年批量合并
数据文件是按年份拆分的,做面板数据分析时通常需要把全部年份合成一张大表。用Python的pandas库做批量读取和纵向拼接,代码量很小,几十行就能搞定。
拼接之前必须确认每个年份文件的列名完全一致。实测下来,这套数据在不同年份之间的列名定义基本稳定,但偶尔会出现个别年份新增字段的情况。合并时用参数统一对齐,缺失的字段自动填充缺失值,这样处理比逐列硬对齐更稳妥。
4. 核心指标与数据质量校验
4.1 基准年与单位换算逻辑
1970至2022年横跨53年,不同年代的核算方法和基础数据来源肯定有差异。数据包文档中标注了基准年设定,但如果你要做完整的时间序列分析,建议先做一次量级检验——用近几年的数据与官方公布的区域排放总量做对比,确认数据是否在合理范围内。
单位换算是另一个容易踩坑的环节。原始数据中的排放单位是万吨CO2当量,部分年份的部门分项则以吨为单位记录。我写了一个统一换算程序,把所有数据全部转成标准单位后再进入分析流程。
4.2 数据缺失与统计口径差异
再完整的数据集也存在缺失值和异常值。做数据校核时重点检查了以下几类问题:某些地级市在特定年份的数据是否缺失、行政区划调整后新旧编码如何对应、排放总量与部门分项加总之和是否一致。
行政区划调整是最复杂的部分。1970至2022年间,国内行政区划经历过多次撤地设市、县改区、乡镇合并,同一地点的编码在不同年份完全不同。数据包中提供了一套新旧编码对照表,做长时序分析时务必先处理行政区划编码的映射关系,否则后几年的数据在前几年的数据表中找不到对应记录。
4.3 空间可视化前的数据准备
如果你打算做空间分布图,建议先将數據按区域编码与GIS地理边界数据关联。匹配时用行政区域编码做主键比用名称更可靠——同一个地方在不同文件里的名称可能略有差异,但编码唯一稳定。
裁剪出一个省份某年的数据,按区县维度聚合排放总量后,配合GeoPandas做可视化只需要几十行代码。出图效果取决于geojson边界文件的精度,建议使用较新的行政区划边界数据,避免边界过时导致展示错位。
5. 常见问题与排查技巧实录
5.1 “invalid zip archive: could not find EOCD”等解压报错
这个报错是zip解压过程中的高频问题,实际含义是压缩包末尾的中央目录记录(End of Central Directory Record)未能被正确找到。遇到这类情况,优先确认文件是否下载完整——很多下载工具在下载中断时不会给出明确提示,文件体积看起来接近目标值但实际缺了尾部数据。
常规思路是删除后重新下载。如果重下后依然报错,可以考虑Zip Repair Tool这类修复工具。但根据我个人经验,修复成功率并不高,最稳妥的方案是回到数据来源处获取一个可用的完整副本。
5.2 文件解压密码问题
“zip压缩包怎么加密”和“zip无视密码直接解压”这两类需求经常成对出现。我的看法是:对于这类公开的科研数据集,设置密码的概率极低。如果确实遇到加密zip包,建议先从数据发布页面获取密码信息。如果确认原始数据无加密,但本地压缩包有密码,极大概率是下载来源做了二次封装,此时需要返回源头核查。
没有密码的情况下尝试暴力破解、字典破解或“zip密码移除”类软件,既浪费时间又不一定能成功。与其在破解上消耗精力,不如换一个可信的数据下载渠道。
5.3 解压后文件损坏怎么排查
解压流程走完但文件打不开,需要分情况排查:
- CSV文件用记事本打开乱码,优先排查编码问题,而非文件损坏
- CSV尾部数据缺失,大概率是解压中断或源文件不完整
- 某一年份文件无法读取,优先单独重新下载该文件
文件级损坏通常不会波及全部数据,定位到具体年份后单独处理即可,不用把整个数据包重新下载一遍。
6. 实操过程与其他工具的联运
6.1 github zip包解压后接入项目管理
分析过程中顺手把一个GitHub上找的碳排放可视化项目也打包下载了。GitHub上下载的zip项目文件与git项目是断开关联的——zip包里的.git目录不会被打包,所以下载后无法直接执行git pull、git push这类操作。
如果想继续沿用远端仓库的版本管理,需要先git init初始化本地仓库,然后重新关联远端地址。实测下来,拉取远端记录后本地未提交的改动会自动保留,覆盖风险比较小。但如果本地已经做了大量修改,还是建议先把改动备份,避免远端仓库的分支结构与本地差异过大导致变基失败。
6.2 数据实时更新的思路扩展
这套数据集的分辨率虽然精细,但始终是历史数据的快照。如果想要追求数据的实时动态呈现,一个可行的思路是,将当地已有的监测站实时数据接入自动化处理流程,定期把新增数据合并进现有文件,形成可持续运行的本地数据管道。
在这个思路下,之前提到的按年拆分文件结构反而成了优点——每年的数据独立存储,追加新年份只需要新建一个文件,不影响历史数据的完整性。
7. 数据伦理与使用边界
这套CO2排放数据空间粒度到达了乡镇级,意味着可以精准定位到一个乡镇甚至一个社区的排放水平。这种数据在环境政策和学术研究中的价值很高,但使用时必须特别注意数据伦理问题——乡镇级别的排放数据,尤其是工业排放占比较高的地区,可能间接反映出区域内企业的生产经营状况。
在使用“中国省、市、区县、乡镇CO2排放数据(1970-2022年).zip”中的数据时,有几点边界值得遵守:
- 公开发布分析结果时,不要展示个体企业的排放信息,只做区域层面的汇总
- 涉及具体地理位置的分析时,尽量使用行政区划名称而非精确经纬度信息
- 学术论文中使用该数据,注明数据来源和版本引用
数据是公共资源,但使用数据的伦理边界需要自己把握好。
以个人经验来说,这套数据的真正价值,不在于直接提供一张排放表,而在于其空间粒度足够细、时间跨度足够长、数据结构足够规范。做区域对比、构建预测模型、绘制空间分布图,都能找到落地的路径。从拿到zip文件到最终出图,流程虽繁琐,但每一步处理都值得认真对待——数据质量决定了分析结果的天花板。最后再分享一个小技巧:处理任何长时序空间数据,第一件事永远是把编码统一、单位统一、口径统一,这“三统一”做好,后面全程顺畅。
本文还有配套的精品资源,点击获取