2001~2025 年各省市区县月度与年度NDVI面板数据

今天给大家分享一份 2001~2025 年各省市区县月度与年度 NDVI 面板数据。由 RStata 数据中心处理得到(栅格数据转面板数据)。

数据来源与处理方法

原始数据为月度 NDVI(归一化植被指数,Normalized Difference Vegetation Index)栅格数据,约 1km 分辨率、WGS84 坐标系,覆盖 2001 年 1 月至 2025 年 12 月。我们基于 2021 年行政区划矢量数据(省 / 市 / 县 三级,WGS84)对栅格逐期进行分区统计,处理流程如下:

  1. 坐标对齐:将行政区矢量投影到栅格的坐标参考系(二者同为 WGS84,显式执行恒等投影);
  2. 分区栅格化:使用 terra::rasterize 把每个行政区栅格化为独立的 zone 图层;
  3. 逐期分区均值:对每一期月度 NDVI 栅格,用 terra::zonal 计算各行政区的平均 NDVI,得到省 / 市 / 县 三级的逐月面板;
  4. 月度面板补齐:对每个「行政区 × 年月」组合补齐,保证面板在时空上完整连续;
  5. 年度汇总(两种口径):

原始数据来源:

徐洋, 宁科正, 于淼, 等. 中国 1 km 分辨率逐月 NDVI 数据集(2001–2024)[J/OL]. 中国科学数据, 2026. (2026-06-17). DOI: 10.11922/11-6035.noda.2024.0180.zh.

数据概览

为了方便大家使用,我把数据汇总成了 省 / 市 / 县 三级、月度与年度 两种频率的 NDVI 面板数据,共 9 个 .dta 文件:

文件 层级 频率 年度口径 行数 主要变量
各省份年度平均NDVI面板数据(月度均值法) 省 年度 月度均值法 850 省、省代码、年份、平均NDVI
各省份年度平均NDVI面板数据(月度最大值法) 省 年度 月度最大值法 850 省、省代码、年份、平均NDVI
各省份逐月平均NDVI面板数据 省 月度 — 10200 省、省代码、年份、月份、年月、平均NDVI
各城市年度平均NDVI面板数据(月度均值法) 市 年度 月度均值法 9275 省、省代码、市、市代码、年份、平均NDVI
各城市年度平均NDVI面板数据(月度最大值法) 市 年度 月度最大值法 9275 省、省代码、市、市代码、年份、平均NDVI
各城市逐月平均NDVI面板数据 市 月度 — 111300 省、省代码、市、市代码、年份、月份、年月、平均NDVI
各区县年度平均NDVI面板数据(月度均值法) 县 年度 月度均值法 71925 省、省代码、市、市代码、县、县代码、年份、平均NDVI
各区县年度平均NDVI面板数据(月度最大值法) 县 年度 月度最大值法 71925 省、省代码、市、市代码、县、县代码、年份、平均NDVI
各区县逐月平均NDVI面板数据 县 月度 — 863100 省、省代码、市、市代码、县、县代码、年份、月份、年月、平均NDVI

变量说明:平均NDVI 为对应行政区在某一时期内的平均归一化植被指数,取值范围约 −1~1,数值越高代表植被覆盖越茂密、长势越好(水体、裸地、建成区通常接近 0 或为负,浓密植被接近 1)。

时间范围:2001~2025 年;行政区划基准为 2021 年(约 34 个省级单元、371 个地级市、2877 个区县级单元)。

具体用途:基于上述变量结构,本数据可用于——

  • 测算区域生态环境质量(如生态环境质量指数 RSEI 中的植被分量);
  • 刻画城市绿化水平与建成区周边植被覆盖的时空变化;
  • 监测农业植被长势、耕地与林地变化;
  • 与气温、降水等气象面板结合,研究气候变化对植被生长的影响。

图表展示

下图为基于本数据绘制的 4 张图表:

图 1:2001–2025 年各省平均 NDVI 空间分布

展示了 2001–2025 年各省平均 NDVI 的地理分布,整体呈现自东南向西北递减的格局(南方植被更茂密)。

图 2:2001–2025 年全国平均 NDVI 时间趋势

展示了全国平均 NDVI 随年份的变化趋势。

图 3:各区县平均 NDVI 分布直方图

展示了各区县-年 尺度上平均 NDVI 的取值分布(频数)。

图 4:各区县平均 NDVI 年度分布比较(箱线图)

按年份比较各区县平均 NDVI 的分布变化。

处理代码

下面给出数据处理与可视化的关键 R 代码片段。

1)各行政区 NDVI 面板计算(核心:分区均值 + 年度两法汇总)

# 三级行政区定义(投影到栅格 CRS 后栅格化为分区图层)
lv_def <- list(
list(key = "省", shp = "2021行政区划/省.shp",
admin = c("省", "省代码")),
list(key = "市", shp = "2021行政区划/市.shp",
admin = c("省", "省代码", "市", "市代码")),
list(key = "县", shp = "2021行政区划/县.shp",
admin = c("省", "省代码", "市", "市代码", "县", "县代码"))
)

# 逐期用 zonal 计算各分区平均 NDVI
for (i in seq_len(nrow(meta))) {
r <- rast(meta$path[i])
for (d in lv_def) {
z <- zonal(r, zone_r[[d$key]], fun = "mean", na.rm = TRUE)
df <- data.frame(adm_id = z[, 1],
平均NDVI = z[, 2],
年份 = meta$year[i],
月份 = meta$month[i],
年月 = sprintf("%04d-%02d", meta$year[i], meta$month[i]))
acc[[d$key]][[i]] <- df
}
}

# 年度汇总:月度最大值法 / 月度均值法
fmax <- function(x) if (all(is.na(x))) NA_real_ else max(x, na.rm = TRUE)
fmean <- function(x) if (all(is.na(x))) NA_real_ else mean(x, na.rm = TRUE)

res_ann <- list(
"月度最大值法" = mdf %>% group_by(!!!syms(gcols), 年份) %>%
summarise(平均NDVI = fmax(平均NDVI), .groups = "drop"),
"月度均值法" = mdf %>% group_by(!!!syms(gcols), 年份) %>%
summarise(平均NDVI = fmean(平均NDVI), .groups = "drop")
)

2)可视化(以省级填充地图为例)

# 读取省级年度均值数据并合并地图
prov_ann <- read_dta("2001~2025 年各省份年度平均NDVI面板数据(月度均值法).dta")
prov_mean <- prov_ann %>% group_by(省, 省代码) %>%
summarise(平均NDVI = mean(平均NDVI, na.rm = TRUE), .groups = "drop")
provmap <- read_sf(file.path(SKILL_DATA, "chinaprov2021mini/chinaprov2021mini.shp")) %>%
left_join(prov_mean, by = "省代码")

# Albers 等面积投影 + YlGn 连续配色
p1 <- ggplot(provmap) +
geom_sf(aes(fill = 平均NDVI), color = "gray", linewidth = 0.01) +
scale_fill_distiller(name = "平均NDVI", palette = "YlGn", direction = 1,
na.value = "grey85") +
labs(title = "2001-2025 年各省平均 NDVI 空间分布")

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

数据引用格式

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

RStata 数据中心: 2001~2025 年各省市区县月度与年度NDVI面板数据. 2026. https://tidyfriday.cn/rsdb2/

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

RStata Data Center: 2001~2025 Provincial, Prefecture-level City and County Monthly and Annual NDVI Panel Data in China. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

R 语言计算 NDVI 时序数据变异系数栅格:https://rstata.duanshu.com/#/course/e9e25461e95145c88aa739f3dcd14368

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

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

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

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

如果有将栅格数据处理为面板数据或时间序列数据的定制需求,可以联系李老师付费定制。

点击这里跳转到 RStata 短书平台获取附件:2001~2025 年各省市区县月度与年度NDVI面板数据

评论