# beijing-commute-circle-analysis **Repository Path**: Caesar_N/beijing-commute-circle-analysis ## Basic Information - **Project Name**: beijing-commute-circle-analysis - **Description**: 用于区域分析与区域规划课程。北京通勤圈各项指标的分析。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-06 - **Last Updated**: 2026-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 北京通勤圈人口聚集与通勤效率分析 > 基于百度热力图与高德地图API的实证研究 ## 一、项目简介 本研究聚焦京津冀协同发展背景下的首都通勤圈(约2.7万km²),利用百度热力图数据和高德地图API,从**人口聚集特征**和**通勤效率**两个维度,对通勤圈内的空间结构与通勤模式进行量化分析。 **研究区域**:北京市全域 + 天津市武清区 + 河北省廊坊市/保定市部分区县 + 张家口市怀来县 **参考论文**:《京津冀协同发展背景下首都都市圈通勤治理对策研究》 --- ## 二、核心指标 | 指标 | 数值 | 公式/来源 | |------|------|----------| | 过剩通勤率 | 37.2% | Hamilton(1982): E = (C_obs - C_min) / (C_max - C_min) | | 加权职住分离度 | 4.0 km | 每个居住区到最近就业区的驾车距离,面积加权 | | 45分钟公交可达率 | 12.7% | 公交时间≤45min的O-D对面积加权占比 | | 60分钟公交可达率 | 30.9% | 公交时间≤60min的O-D对面积加权占比 | | 公交通勤时间/驾车时间 | 2.68 | 公交是驾车的2.68倍 | | 加权驾车平均时间 | 32.9 min | | | 加权公交通勤时间 | 88.1 min | | | 通勤空间半径 | 38.6 km | 90%覆盖椭圆长轴 | --- ## 三、软件与环境 | 软件 | 版本 | 用途 | |------|------|------| | **GeoScene Pro** | 5.1(高校试用版) | 核密度分析、空间裁剪、投影、重分类、制图 | | **QGIS** | 4.0.0 | 数据预处理(CSV转点、初期探索) | | **Python** | 3.12 | 脚本运行、API调用、图表生成 | | **matplotlib** | - | 图表可视化 | | **geopandas** | - | SHP矢量操作 | | **brokenaxes** | - | 图表打断坐标轴 | | **python-docx** | - | Word报告生成 | | **高德地图开放平台** | - | 驾车/公交通勤数据API | --- ## 四、完整工作流程 ### 阶段1:数据准备 #### 1.1 原始数据 - **百度热力图数据**:2026年4月14日(工作日),5城市×24小时,共120个CSV文件 - **城市**:北京、天津、保定、廊坊、张家口 - **CSV格式**:`wgs84_LNG, wgs84_LAT, value` #### 1.2 数据统一格式 - **脚本**:`code/01_unify_csv.py` - **操作**:北京市原始9列CSV统一提取为3列标准格式 - **输出**:120个标准CSV(`通勤圈热力数据_标准格式/`) #### 1.3 按时间合并 - **脚本**:`code/02_merge_by_time.py` - **操作**:将同时间5城市数据垂直合并,添加"城市"标识列 - **输出**:24个CSV(`通勤圈热力数据_按时间合并/`,00~23时) --- ### 阶段2:空间分析(GeoScene Pro) #### 2.1 CSV转矢量点 - **工具**:GeoScene → XY表转点 - **参数**:X=`wgs84_LNG`, Y=`wgs84_LAT`, CRS=`EPSG:4326` - **结果**:24个点要素类 #### 2.2 空间裁剪 - **工具**:裁剪(Clip) - **裁剪要素**:通勤圈面图层 - **结果**:仅保留通勤圈范围内的点 #### 2.3 坐标投影 - **工具**:投影(Project) - **源CRS**:EPSG:4326(WGS84) - **目标CRS**:EPSG:4547(CGCS2000 3度带 GK zone 39) - **说明**:核密度分析需要投影坐标系(单位:米),选zone 39因其中央经线117°E位于研究区中心 #### 2.4 核密度分析 - **工具**:核密度分析(Kernel Density) - **参数**: - 权重字段:`value` - 搜索半径:**300米** - 像元大小:**30米** - 面积单位:平方千米 - **结果**:24个核密度栅格 #### 2.5 掩膜提取 - **工具**:按掩膜提取(Extract by Mask) - **掩膜**:通勤圈面_投影(EPSG:4547) - **结果**:24个裁剪后栅格 #### 2.6 时段划分与栅格计算 - **工具**:栅格计算器(求算术平均值) | 时段 | 包含栅格 | 栅格数 | |------|---------|--------| | 通勤① 7:00-9:00 | 核密度07+08 | 2 | | 上班① 9:00-12:00 | 核密度09+10+11 | 3 | | 休憩① 12:00-13:00 | 核密度12 | 1 | | 上班② 13:00-18:00 | 核密度13~17 | 5 | | 通勤② 18:00-20:00 | 核密度18+19 | 2 | | 休憩② 20:00-24:00 | 核密度20~23 | 4 | > **注**:0:00-7:00凌晨时段舍弃(参照论文做法) #### 2.7 人口聚集平均值 - **公式**:P(x) = Σ(Xi) / n,n=6 - **工具**:栅格计算器 #### 2.8 人口聚集标准差 - **公式**:Pstd = √(Σ(Xi - P(x))² / n) - **计算步骤**: 1. 每个时段与平均值差的平方 → 6个偏差平方栅格 2. 求和 → 方差 3. 开方 → 标准差 #### 2.9 重分类 - **工具**:GeoScene Pro 内置重分类(Natural Breaks,7类) - **分类对象**: - 裁剪_人口聚集平均值 → 7类 - 裁剪_标准差 → 7类 - 上班①、上班②、休憩② → 各自7类 - **6个时段统一分类**:分位数断点(14.3%/28.6%/42.9%/57.1%/71.4%/85.7%) #### 2.10 典型聚集区识别 - **商业类**:上班①≥4 且 上班②≥4 且 标准差≥3 - **居住类**:休憩②≥4 且 标准差≥3 - **合并**:0=非聚集, 1=仅商业, 2=仅居住, 3=混合 --- ### 阶段3:通勤数据采集(高德API) #### 3.1 聚集区中心点提取 - **工具**:GeoScene → 栅格转面 → 转中心点 - **结果**:商业类335个、居住类743个、混合区402个 #### 3.2 驾车通勤数据(全量) - **脚本**:`code/gaode_commute.py` - **工具**:高德批量距离测量API(每次100个origin) - **样本**:625,342条O-D对(全量) - **输出**:`OD_驾车结果.csv` #### 3.3 公交通勤数据(分层抽样20%) - **脚本**:`code/gaode_transit_only.py` - **工具**:高德公交换乘规划API - **抽样**:按直线距离分5层(0-10/10-20/20-30/30-40/40-50km),每层20% - **样本**:125,067条 - **输出**:`OD_公交结果.csv` --- ### 阶段4:通勤效率分析 #### 4.1 距离分级统计 - **脚本**:`code/01_距离分级统计.py` - **方法**:按直线距离分位数分为5级,面积加权统计 #### 4.2 通勤效率综合指标 - **脚本**:`code/02_通勤效率指标.py` → `code/03_修正指标.py` - **指标**: - 过剩通勤率(Hamilton 1982) - 加权职住分离度 - 30/45/60分钟公交可达率 - 方向性指数 - 通勤流量衰减率 #### 4.3 空间指标 - **脚本**:`code/04_椭圆与指标.py` - **计算**: - 90%通勤空间椭圆(面积加权) - 椭圆面积、长轴、短轴 - 断裂点公式(Reilly-Converse) #### 4.4 可达率分析 - **脚本**:`code/07_距离分级可达率.py` - **结果**:30/45/60分钟×5个距离级 = 15个可达率指标 --- ### 阶段5:可视化与报告 #### 5.1 图表生成 - **脚本**:`code/05_可视化.py` - **工具**:matplotlib + brokenaxes - **配色**:蓝色渐变(#AABCDB #7698C3 #487DB2) #### 5.2 Word报告 - **脚本**:`code/06_生成报告.py` - **工具**:python-docx - **内容**:第四章+第五章,含所有表格和公式 --- ## 五、项目结构 ``` beijing-commute-circle-analysis/ ├── README.md ├── .gitignore ├── code/ # Python脚本(按流程顺序编号) │ ├── 01_距离分级统计.py │ ├── 02_通勤效率指标.py │ ├── 03_修正指标.py │ ├── 04_椭圆与指标.py │ ├── 05_可视化.py │ ├── 06_生成报告.py │ ├── 07_距离分级可达率.py │ └── 08_完整报告.py ├── results/ # 分析结果 │ ├── OD_驾车结果.csv │ ├── OD_公交结果.csv │ ├── 修正_通勤效率综合指标.csv │ └── ... ├── figures/ # 图表 + SHP │ ├── 图X-1_时段聚集面积对比.png │ ├── 图X-3_标准差等级面积.png │ ├── 不同距离级公交效率指标.png │ ├── 过剩通勤率距离分布.png │ ├── 距离分级_公交可达率对比.png │ ├── 距离分级_公交时间分布堆叠图.png │ ├── 不同距离级通勤时间对比.png │ ├── 通勤距离分布与理论极值.png │ ├── 通勤效率综合指标汇总.png │ ├── 首都通勤圈不同人口聚集程度的面积比较.png │ ├── 首都通勤圈不同人口聚集程度的面积比较_右图.png │ ├── 90%通勤空间椭圆.shp │ └── 椭圆中心点.shp ├── docs/ # 文档 │ ├── 指标解释与对比分析.md │ ├── 论文_第五章.md │ └── GeoScene地图制作指南.md └── data/ # 原始通勤数据 ├── OD_驾车结果.csv ├── OD_公交结果.csv └── OD_聚集区点_带权重.csv ``` --- ## 六、配色规范 **图表标准蓝色渐变**: ``` #AABCDB 浅蓝(最浅) #7698C3 中蓝 #487DB2 深蓝(最深) #B0B0B0 灰色 ``` **聚集区识别色**: ``` #547DB1 仅商业类(蓝色) #719DC9 仅居住类(中蓝) #C6D6EA 职住混合区(浅蓝) #D9D9D9 非聚集区(灰色) #FFB74D 一般聚集(橙) #FF7043 轻度聚集(橙红) #D32F2F 中度聚集(红) ``` --- ## 七、依赖安装 ```bash pip install pandas numpy matplotlib geopandas shapely brokenaxes python-docx pyproj requests ``` --- ## 八、与既有研究对比 | 指标 | 本研究 | 《2023中国通勤监测报告》(北京) | 差异原因 | |------|--------|-------------------------------|---------| | 通勤空间半径 | 38.6 km | 41 km | 方法略有差异 | | 平均通勤距离 | 26.7 km(驾车) | 11.7 km | 研究范围(2.7万km² vs 中心城区) | | 职住分离度 | 4.0 km | 6.8 km | 计算方式差异 | | 平均通勤时间 | 32.9 min(驾车) | 47 min(全方式) | 交通方式差异 | | 45分钟公交可达率 | 12.7% | 32% | 研究范围差异 | --- ## 九、学术引用 **数据来源**: - 百度热力图数据:百度地图开放平台 - 通勤OD数据:高德地图开放平台 Web服务API - 通勤空间半径参考:《2023年度中国主要城市通勤监测报告》 **参考文献**: - Hamilton, B.W. (1982). Wasteful Commuting. *Journal of Urban Economics*, 10(3), 272-285. - 《京津冀协同发展背景下首都都市圈通勤治理对策研究》 --- ## License 学术研究使用