2000~2024 年各省市区县平均人类足迹指数

今天给大家分享一份 2000~2024 年各省市区县平均人类足迹指数面板数据。原始数据为栅格数据:「An annual global terrestrial Human Footprint dataset from 2000 to 2018」(Mu, H., Li, X., Wen, Y. et al. Scientific Data 9, 176, 2022, doi:10.1038/s41597-022-01284-8),下载链接为:https://figshare.com/articles/figure/An_annual_global_terrestrial_Human_Footprint_dataset_from_2000_to_2018/16571064(该 figshare 条目后续持续更新,目前可获取到 2000~2024 各年份的栅格文件)。

人类足迹指数(Human Footprint, HFP)由 8 类人类压力变量合成:建成环境扩张(像元内建筑用地占比)、人口密度、夜间灯光、耕地、牧场、道路、铁路(不含小路与支路)以及可航行水道。合成时采用 Venter 等(2016)提出的权重方案,最终每个像元的取值介于 0~50 之间,50 表示理论上的最高人类压力。栅格采用 Mollweide 等积投影、1 km 空间分辨率,这也是本次面积加权汇总可以直接使用像元面积作为权重的前提。

处理方法

处理使用 R 语言的 sf、terra、data.table 包完成,大致流程如下:

  1. 坐标系统一:把 2021 年行政区划矢量(县.shp,34 省 / 371 市 / 2877 县)投影到栅格的坐标参考系(World_Mollweide 等积投影),这是栅格分区统计前必须做的一步。
  2. 构建像元映射表:以县为单位做精确提取(exact = TRUE),得到「县 – 像元编号 – 该像元被该县覆盖的面积比例」映射表(约 1000 万行)。该表只与几何有关,而 25 年栅格网格完全一致,因此只需计算一次并缓存。
  3. 逐年裁剪:用中国国界多边形(cn.rds)把全球栅格裁剪为中国范围(crop + mask),国界外像元置为 NA,同时逐年保存为 cn-tif/hfpYYYY_cn.tif。
  4. 面积加权汇总:按覆盖面积比例对像元值加权平均得到各区县均值;再以各县「参与统计的有效面积」为权重,由县级汇总到市级、省级。三个行政区划图层总面积完全一致,因此这样做与直接用市 / 省图层提取等价。
  5. 整理为面板:按「代码 – 年份」补齐完整面板(无数据的年份保留为空值而非删除),关联行政区划名称后输出为 Stata 14 格式的 dta 文件。

数据概览

为了方便大家使用,我把数据汇总成了省份、城市、区县三个层级的面板数据:

  • 2000~2024 年各省份平均人类足迹指数.dta:34 省 × 25 年 = 850 行,变量为 省、省代码、年份、平均人类足迹指数
  • 2000~2024 年各城市平均人类足迹指数.dta:371 市 × 25 年 = 9275 行,变量为 省、省代码、市、市代码、年份、平均人类足迹指数
  • 2000~2024 年各区县平均人类足迹指数.dta:2877 县 × 25 年 = 71925 行,变量为 省、省代码、市、市代码、县、县代码、年份、平均人类足迹指数

其中省级有 25 个空值(澳门特别行政区各年份均无有效栅格值)、市级 50 个、县级 825 个。县级中有 33 个单位在所有年份都没有有效栅格值,包括香港、澳门的全部市辖区,以及平潭县、东山县、南澳县、金门县、三沙市西沙区与南沙区等海岛——HFP 数据集对这些区域没有有效像元,这里保留了空值以保证面板的完整性。

各文件预览如下:

从全国水平看,各区县算术平均值由 2000 年的 18.34 上升到 2024 年的 21.51。需要注意的是,2018 年(20.41)到 2019 年(21.57)之间存在一次约 1.15 的跃升,这与该数据集在 2019 年及之后年份的数据更新有关,做跨年趋势分析时需要留意这个断点。

图表展示

下图展示了 2024 年各省份平均人类足迹指数:

下图展示了 2024 年各城市平均人类足迹指数:

下图展示了 2000~2024 年全国平均人类足迹指数的时间趋势(各区县算术平均,黄色虚线为 OLS 拟合线):

下图展示了四大区域平均人类足迹指数的分布对比:

2024 年各省份中,人类足迹指数最高的是香港特别行政区(43.77)、上海市(37.88)、天津市(34.47)、山东省(30.76)和江苏省(28.79);最低的是新疆维吾尔自治区(3.65)、西藏自治区(4.09)、青海省(4.46)和内蒙古自治区(7.06),整体呈现「东高西低」的格局。

处理代码

数据的处理代码如下(R 语言),完整代码保存在附件的 code 文件夹中。

第一步,把行政区划矢量投影到栅格的坐标参考系,并构建「县 – 像元 – 面积权重」映射表:

library(sf)
library(terra)
library(data.table)

# 以 2000 年栅格为基准,获取栅格坐标参考系(World_Mollweide)
r0 <- rast("raw-tif/hfp2000.tif")
crs_grid <- crs(r0)

# 读取县级行政区划并投影到栅格坐标参考系(必须步骤)
county_sf <- st_read("2021行政区划/县.shp", quiet = TRUE) |>
st_transform(crs_grid)

# 按省分块做精确面积加权提取,得到「县 - 像元 - 覆盖面积比例」映射表
vcounty <- vect(county_sf)
ex <- terra::extract(r0, vcounty,
exact = TRUE, # 按像元被多边形覆盖的面积比例加权
weights = TRUE, # 输出覆盖比例
cells = TRUE) # 输出像元编号
cell_map <- data.table(id = ex$ID,
cell = as.integer(ex$cell),
weight = as.numeric(ex$weight))

第二步,逐年裁剪栅格并按面积权重汇总:

# 逐年读取全球栅格,按中国国界裁剪后取像元值
rc <- crop(rast("raw-tif/hfp2000.tif"), crop_ext, snap = "out")
rc <- mask(rc, cn_vect) # 国界内保留,国界外置为 NA
vals <- values(rc)[, 1]

# 海洋 / 无数据区为 NA 或 -Inf,统一剔除后按面积加权
dt <- cell_map[, .(省代码, 市代码, 县代码, weight)]
dt[, v := vals[cell_map$cell]]
dt <- dt[is.finite(v) & is.finite(weight) & weight > 0]

# 县级:sw 为参与统计的有效面积,hfp 为面积加权均值
agg <- dt[, .(sw = sum(weight), swv = sum(v * weight)),
by = .(省代码, 市代码, 县代码)]
agg[, hfp := swv / sw]

# 市、省级:以县级有效面积为权重再做一次加权平均
dt_city <- agg[!is.na(hfp), .(hfp = sum(hfp * sw) / sum(sw)),
by = .(省代码, 市代码)]
dt_prov <- agg[!is.na(hfp), .(hfp = sum(hfp * sw) / sum(sw)),
by = .(省代码)]

第三步,整理为完整面板并写出 dta 文件:

library(haven)

# 把「代码 - 年份」补齐为完整面板(无数据的年份保留为空值)
make_panel <- function(lk, keys) {
rbindlist(lapply(2000:2024, function(y) cbind(lk[, ..keys], 年份 = y)))
}
d_county <- merge(make_panel(lk_county, c("省代码", "市代码", "县代码")),
dt_county, by = c("省代码", "市代码", "县代码", "年份"),
all.x = TRUE, sort = FALSE)

haven::write_dta(d_county, "2000~2024 年各区县平均人类足迹指数.dta",
version = 14, label = "数据处理:微信公众号 RStata")

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

数据引用格式

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

RStata 数据中心: 2000~2024 年各省市区县平均人类足迹指数. 2026. https://tidyfriday.cn/rsdb2/

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

RStata Data Center: Average Human Footprint Index by Province, City, and District/County, 2000–2024. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

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

如何将栅格数据处理成面板数据或时间序列数据?以 PM2.5 浓度数据处理为例(含并行计算内容):https://rstata.duanshu.com/#/course/109dfcdfd1174d1eb2d00c621df4f047

栅格数据几何运算:https://rstata.duanshu.com/#/course/b579b775ee4f449283615a06f9cdcebb

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

1985~2025 年各省市区县不同土地覆盖类型的土地面积:https://rstata.duanshu.com/#/course/9fc8943a57084cfa9b6304a26e9ee389

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

点击这里跳转到 RStata 短书平台获取附件:2000~2024 年各省市区县平均人类足迹指数

评论