2000~2022 年各省市区县城乡夜间灯光平均亮度及比值面板数据(田一禾版本)

今天给大家分享一份 2000~2022 年各省市区县城乡夜间灯光平均亮度及比值面板数据(田一禾版本)。

该数据基于田一禾等研究者处理得到的夜间灯光亮度栅格数据,结合 2000~2022 年城市和镇建成区范围数据,分别计算了各省、各市、各区县范围内建成区(城市区域)和非建成区(农村区域)的平均夜间灯光亮度,以及城乡亮度的比值。数据由 RStata 数据中心处理完成。

该数据的处理可以参考如下课程:

使用 Python 测算城乡夜间灯光亮度及城乡差异:https://rstata.duanshu.com/#/brief/course/d12a899b0d2b415a8e76d5f525f5ac4a

使用 R 语言测算城乡夜间灯光亮度及城乡差异:https://rstata.duanshu.com/#/brief/course/7836c12baef54eda82b5797cac3b284c

其中城市建成区和镇建成区的数据来源于这个论文:

Bai, M., Zhang, X., Ai, W., Jing, X., & Liu, L. (2026). A high-resolution global annual city and town boundaries dataset (2000–2022) derived from GLC_FCS30D product. Scientific Data, 13:50. https://doi.org/10.1038/s41597-025-02568-9

夜间灯光数据来源于:

1986~2024 年中国各省市区县、乡镇夜间灯光面板数据(田一禾版本):https://rstata.duanshu.com/#/brief/course/b7392dc0a7f649c9bf129666445c866e

数据概览

附件中包含如下文件:

  • 2000~2022年各省城乡夜间灯光平均亮度及比值面板数据(田一禾版本).dta
  • 2000~2022年各市城乡夜间灯光平均亮度及比值面板数据(田一禾版本).dta
  • 2000~2022年各区县城乡夜间灯光平均亮度及比值面板数据(田一禾版本).dta

各文件都包含了城市平均亮度、农村平均亮度、城乡比变量,分别表示该区域内建成区平均灯光亮度、非建成区平均灯光亮度,以及两者的比值:

图表展示

下图展示了 2022 年中国各省份城乡夜间灯光比的分布:

下图展示了 2000~2022 年全国城乡比的时序变化趋势:

下图展示了 2022 年各省份城乡比排名(Top 15):

处理代码

数据的处理使用 R 语言完成,核心处理步骤如下:

  1. 读取年度夜间灯光亮度栅格数据(.tif 格式);
  2. 读取同年份的城市(Cities)和镇(Towns)建成区矢量数据,合并为城市区域;
  3. 将灯光栅格投影到 WGS84 坐标系,并使用建成区矢量数据创建城乡掩膜;
  4. 分别计算建成区内(城市灯光)和建成区外(农村灯光)的平均亮度;
  5. 按省、市、县行政区划进行分区统计(zonal statistics),得到各区域的城乡平均亮度及比值。

关键的 R 语言代码如下:

# 加载建成区掩膜
cities <- st_read(sprintf("Cities_2000_2022/Cities_%s.shp", year), quiet = TRUE)
towns <- st_read(sprintf("Towns_2000_2022/Towns_%s.shp", year), quiet = TRUE)

# 合并所有城市和镇作为城市区域
urban <- rbind(
cities %>% select(geometry),
towns %>% select(geometry)
)

# 投影到WGS84
light_proj <- project(light_raster, "EPSG:4326", method = "bilinear")
urban_vect <- vect(st_transform(st_make_valid(urban), crs = "EPSG:4326"))

# 创建城乡掩膜
mask_raster <- rast(ext(light_proj), resolution = res(light_proj), crs = "EPSG:4326")
mask_raster <- rasterize(urban_vect, mask_raster, touches = TRUE)
mask_raster[is.na(mask_raster)] <- 0 # 背景设为0(农村)

# 计算城市灯光和农村灯光
urban_lights <- light_proj * mask_raster
rural_lights <- light_proj * (1 - mask_raster)

# 省级统计
prov_urban <- zonal(urban_lights, province_raster, fun = "mean", na.rm = TRUE)
prov_rural <- zonal(rural_lights, province_raster, fun = "mean", na.rm = TRUE)

# 计算城乡比
prov_data$ratio <- prov_data$urban_mean / prov_data$rural_mean

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

数据引用格式

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

RStata 数据中心: 2000~2022年各省市区县城乡夜间灯光平均亮度及比值面板数据(田一禾版本). 2026. https://tidyfriday.cn/rsdb2/

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

RStata Data Center: Panel Data on Urban-Rural Average Nighttime Light Luminosity and Ratio by Province, City, and County (Tian Yihe Version), 2000–2022. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

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

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

1986~2024 年中国各省市区县、乡镇夜间灯光面板数据(田一禾版本):https://rstata.duanshu.com/#/course/ad08b5404a9d40f38e9598166ea33f51

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

点击这里跳转到 RStata 短书平台获取附件:2000~2022 年各省市区县城乡夜间灯光平均亮度及比值面板数据(田一禾版本)

评论