2013~2023 年各乡镇路网密度面板数据

今天给大家分享一份 2013~2023 年中国各乡镇路网密度面板数据。由 RStata 数据中心从 OpenStreetMap (OSM) 道路和铁路矢量数据中提取处理得到。

路网密度是衡量区域交通基础设施发展水平的重要指标,通常以单位面积内的道路长度表示。本数据集在乡镇级尺度上详细统计了各乡镇的道路与铁路长度、区域面积及对应的路网密度,并按道路/铁路类型进行了细分,方便研究者从不同维度分析乡镇交通基础设施的分布特征与时空演变。

数据概览

为了方便大家使用,我把数据汇总成了中国各乡镇的路网密度面板数据。

  • 2013~2023年各乡镇路网密度面板数据.dta(乡镇级主面板数据)
  • 乡镇代码匹配省市区县.dta(乡镇代码与所属省/市/区县的匹配表)

各文件均包含以下变量:

变量名 含义
年份 统计年份
道路类型 道路 / 铁路
类别 具体分类(如高速公路、一级公路、铁路、地铁等)
道路长度_m 长度(米)
道路长度_km 长度(公里)
路网密度 路网密度(公里/平方公里)
乡镇区域面积_km2 乡镇区域面积(平方公里)
乡镇 / 乡镇代码 乡镇名称及 12 位乡镇行政代码

道路类型包括:高速公路、一级公路、二级公路、三级公路、干道、居住区道路、服务道路、农村道路、步行道、自行车道、小径、其他。

铁路类型包括:铁路、地铁、轻轨、有轨电车、单轨铁路、窄轨铁路、其他。

图表展示

下图展示了 2023 年各乡镇道路路网密度的空间分布(单位 km/km²),按分位数分为 7 级,颜色由浅到深表示密度由低到高:

处理方法

该数据的处理代码并不复杂,但是运算量非常大,感兴趣的小伙伴可以学习平台上的地理计算相关课程,例如:

R 语言地理计算应用与地理数据可视化案例合集: https://rstata.duanshu.com/#/course/5dee5f29f36344f3be82aca0a20820bd

数据处理的核心流程如下:

  1. 数据来源:从 OpenStreetMap (OSM) 获取 2013~2023 年中国范围内的道路(gis_osm_roads_free_1.shp)和铁路(gis_osm_railways_free_1.shp)矢量数据。
  2. 行政区划数据:使用带几何信息的乡镇行政区划(town.rds),并采用 Albers 等面积投影(+proj=aea +lat_0=0 +lon_0=105 +lat_1=25 +lat_2=47)确保面积计算准确;可从 12 位乡镇代码派生省/市/县/乡镇四级代码,并联动 2021 年行政区划补充名称。
  3. 空间计算:使用 R 语言 sf 包,通过 st_intersection() 函数将道路/铁路线与乡镇行政区划面进行空间叠加,按批次(每批 2000 个乡镇)并行计算各乡镇内各类道路和铁路的总长度。
  4. 密度计算:路网密度 = 道路(或铁路)长度(公里)/ 乡镇区域面积(平方公里)。
  5. 并行处理:采用 pbmclapply 进行多核心并行计算,支持断点续跑,每年独立保存 RDS 文件。
  6. 结果合并:将每年的计算结果合并,最终输出乡镇级长面板数据,并添加中文变量标签;随后使用 Stata 对字段进行整理,并基于乡镇地图坐标绘制 2023 年路网密度地图。

核心 R 代码片段如下:

# 读取乡镇行政区划并统一为等面积投影(Albers),保证面积与密度口径一致
town_sf <- readRDS("town.rds") %>%
st_transform(crs = target_crs) %>%
mutate(区域面积_km2 = as.numeric(st_area(geometry) / 1e6))

# 从 12 位乡镇代码派生 省 / 市 / 县 / 乡镇 四级代码
town_meta <- town_sf %>% st_drop_geometry() %>%
mutate(
乡镇代码 = code,
省代码 = substr(code, 1, 2),
市代码 = substr(code, 1, 4),
县代码 = substr(code, 1, 6)
)

# 道路/铁路与全部乡镇做矢量化空间相交,按批次并行计算各分类长度
int <- st_intersection(lines, select(batch_towns, 乡镇代码 = code, 区域面积_km2))

# 计算路网密度:长度(公里) / 乡镇面积(平方公里)
year_df <- year_df %>%
mutate(长度_km = 长度_m / 1000,
密度 = (长度_m / 1000) / 区域面积_km2)

随后使用 Stata 对字段进行整理并绘制 2023 年各乡镇道路路网密度地图(plot.do),关键代码如下:

*- 仅保留 2023 年道路数据,按乡镇汇总长度并计算路网密度
use "2013~2023年各乡镇路网密度面板数据.dta", clear
keep if 年份 == 2023 & 道路类型 == "道路"
collapse (sum) 道路长度_m (sum) 道路长度_km (first) 乡镇区域面积_km2, by(townname towncode 年份)
gen 路网密度 = 道路长度_km / 乡镇区域面积_km2

*- 与乡镇地图坐标合并后,绘制分位数分级的路网密度地图
merge 1:1 townname towncode using town_mini_db.dta
grmap 路网密度 using town_mini_coord.dta, id(ID) ///
clmethod(quantile) clnumber(7) ///
ti("2023 年各乡镇道路路网密度(km/km2)")

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

数据引用格式

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

RStata 数据中心: 2013~2023年各乡镇路网密度面板数据. 2026. https://tidyfriday.cn/rsdb2/

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

RStata Data Center: Panel Data on Road Network Density by Township, 2013–2023. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

如何绘制一幅漂亮的路网地图?网页文本提取、地理编码与可视化:https://rstata.duanshu.com/#/course/2b622a0fab0d4201a4324775259d89b0

矢量数据几何运算:https://rstata.duanshu.com/#/course/3d96208599674959a38f5ebe1474f1de

中国各城市间的交通距离是如何解析的?——以各城市与上海的驾车交通路线规划为例:https://rstata.duanshu.com/#/course/e35a78b8555143749245c9de51f9aa48

1993~2020 年各省市区县交通质量面板数据:https://rstata.duanshu.com/#/course/1335ed7a366442a2b4edafcac1858d6b

2021 和 2022 年中国各城市间的驾车路线规划和交通距离矩阵数据库:https://rstata.duanshu.com/#/course/77dfbd280e764820b1b20d929632e831

点击这里跳转到 RStata 短书平台获取附件:2013~2023 年各乡镇路网密度面板数据

评论