之前给大家分享过不少碳排放相关的数据,例如:
- 2005~2020 年各城市总碳排放、人均碳排放、各领域碳排放、常住人口、地区生产总值等指标:https://rstata.duanshu.com/#/course/608f6e3072544db1afa41f8b78d81e56
- 1970~2022 年中国各省市区县、乡镇 CO2 排放量面板数据 & 栅格数据(EDGAR v8.0):https://rstata.duanshu.com/#/brief/course/49fd227237794c27b4f563f4420da1ad
- …(更多碳排放数据可以在平台搜索)
不过大多都是一些宏观层面的碳排放数据,实用性有限。
在其他研究中,经常我们会使用例如样本所在城市的人口、GDP 作为该样本本身变量的一些代理变量。因此我想是不是也可以使用税调企业周边一定区域的碳排放量作为其自身碳排放量的代理(这种做法的问题会很多,但是如果实在没有更好的方法,或许也是一种手段)。
借助地理计算,我们可以构建税调企业周围半径一定距离的范围,然后以此来裁剪「1970~2022 年中国各省市区县、乡镇 CO2 排放量面板数据 & 栅格数据(EDGAR v8.0)」中的栅格数据得到该范围内的碳排放总量。
税调企业的经纬度数据可以使用之前分享的:
2007~2020 年税调企业地理信息数据(含经纬度及其所处的省市区县):https://rstata.duanshu.com/#/course/39f5d95ad58841628fa4d935371bf3fd
数据概览
为便于大家使用,我计算了税调企业周边 1km、2km、3km、4km、5km 范围内的碳排放总量,最终得到了附件中的:2007~2020 年税调周边 1~5km 范围内的碳排放总量(单位吨).dta,dta 格式的数据是这样的:
![]()
经过计算之后一共得到了 772.2 万条结果,包含如下变量:
- 年份
- sdid
- sdgroup
- 法人代码
- 企业名称
- CO2_dist1km
- CO2_dist2km
- CO2_dist3km
- CO2_dist4km
- CO2_dist5km
下图展示了历年税调企业周边 1~5km 范围的的碳排放量(吨):
![]()
处理方法
首先分别生成了税调企业注册地址周边 1km、2km、3km、4km、5km 的缓冲区,例如注册地址 5km 的缓冲区是这样生成的:
library(tidyverse) |
这样会得到一个以每个税调企业为中心、半径为 5km 的圆形区域。
然后读取碳排放量栅格数据,例如 2020 年的:
library(terra) |
然后使用上面的缓冲区数据和栅格数据进行地理计算就可以得到每个缓冲区内的碳排放总量了!例如 5km 的:
terra::extract(rst, vect(df2_5km), fun = "sum", na.rm = T, exact = T) %>% |
按照这个思路循环各个年份的即可(不过运算量非常大,建议大家不要尝试,非常耗时)。
为了便于大家理解这个计算过程,我绘制了一幅这样的图:
![]()
方格子就是栅格数据,圆圈是税调企业周围 5km 范围的缓冲区。例如某个缓冲区和四个格子交叉,那么就是根据交叉部分的比例计算其范围内的碳排放总量。
处理代码
附件中也提供了该数据的处理代码供参考:
![]()
点击这里跳转到 RStata 短书平台获取附件:2007~2020 年税调周边 1~5km 范围内的碳排放总量(EDGAR v8版本)
评论