之前给大家分享过中国各省市区县的土地覆盖数据:
1985~2024 年各省市区县不同土地覆盖类型的土地面积:https://rstata.duanshu.com/#/course/dfd9cc9ba8af439d8b196a390813f50d
最近有培训班的小伙伴想要乡镇的土地覆盖数据,考虑到原始数据非常大,于是我就帮忙处理了下。
原始数据为栅格数据:「The 30m annualland cover datasets and its dynamics in China from 1985 to 2024」,下载链接为:https://zenodo.org/records/15853565,直接从该链接即可下载到 1985~2024 年的栅格数据。其中,土地覆被类型包括 9 种,具体为:Barren、Cropland、Forest、Grassland、Impervious、Shrub、Sonw_or_Ice、Water、Wetland。
由于这份数据对我的电脑来说也是非常巨大的,所以我这里实际上是一个个乡镇进行裁剪汇总的(所以即使用了多线程还是挺耗时的)。
数据概览
经过处理即可得到下面的文件:
- 1985~2024年各乡镇各类型土地覆盖面积面板数据.dta
数据包含了乡镇名称和行政区划代码、各种覆被类型面积,预览如下:
![]()
图表展示效果更好些。下图展示了 2024 年各乡镇耕地面积:
![]()
处理方法
对栅格数据的裁剪与面积汇总感兴趣的小伙伴可以学习下面这个课程:
栅格数据的裁剪与面积汇总——基于 R 语言的方法:https://rstata.duanshu.com/#/course/d2c2710928f44ad7a7518b8a178562c0
不过这次的数据处理方法和课程里面讲解的有所差异,因为这个数据并不是要分区域求均值之类的统计量,而是分区域统计每种植被类型的像元数。该数据一共包含了如下几种类型:
library(tidyverse) |
![]()
所以这里数据处理的过程和之前课程中讲解的差异是我们需要编写一个 countfun 函数:
countfun <- function(x){ |
该函数会统计每个区域中不同取值的像元数量。然后就可以在 parLapply() 循环里面使用这个函数进行汇总栅格数据了:
parLapply(cl, 1:nrow(df), function(i){ |
数据引用格式
由于该数据包含较多 RStata 处理的内容,在研究中使用该数据请使用清晰的方式注明数据来源于 RStata 或者 RStata 数据中心,并使用如下格式引用:
RStata 数据中心: 1985~2024 年各乡镇各类型土地覆盖面积面板数据. 2025. https://tidyfriday.cn/rsdb2/
英文文献可以使用下面的格式引用:
RStata Data Center: Panel Data on Land Cover Area by Township and Land Cover Type, 1985–2024. 2025. https://tidyfriday.cn/rsdb2/
点击这里跳转到 RStata 短书平台获取附件:旧版本|1985~2024 年各乡镇各类型土地覆盖面积面板数据
评论