使用 Python 库 tracc 解析城市交通可达性


随着城市化进程的加速,交通可达性成为评估城市发展和规划的重要指标之一。通过分析交通网络和目的地分布,我们可以深入了解城市各个区域的工作机会、服务设施等对公众的可达性。今天,我们将介绍如何使用Python库TRACC进行交通可达性分析,以便更好地理解城市的交通格局和人流动态。

tracc简介

tracc是一个开源的Python库,专注于城市交通可达性分析。它提供了一套功能强大的工具,能够帮助用户加载、处理和分析交通数据,从而评估不同地区的交通可达性情况。

这个库结合了土地利用数据(例如工作地点、人口、商店、医疗机构等的位置)和预先计算的交通成本(例如旅行时间、公共交通票价等),生成交通可达性指标。大部分工作通过操作pandas DataFrames来完成。目前的功能允许计算三种类型的可达性指标。它们包括:

潜在可达性指标:从一个位置可达到的机会总和,按其距离加权(例如,访问一个地区的就业机会,比如在45分钟的通勤中可以到达多少工作岗位)

被动可达性指标:能够访问一个位置的人口总和,按其距离加权(例如,访问一个地区的劳动力人口,比如有多少工人可以在30分钟内通勤到达一个地点)

最小旅行成本指标:到达X个机会的最小旅行成本(例如,到达最近的杂货店的旅行时间,或到达最近的3个图书馆的最小旅行时间)

该库还包括以下功能:

  • 估计区域内旅行成本
  • 使用空间权重矩阵填补旅行成本矩阵中的空白
  • 根据不同函数(累积、线性、负指数、反幂)生成旅行阻抗
  • 计算广义成本

计划中的未来功能将包括竞争性(即浮动网格)的可达性测量。待办事项还包括创建适当的文档。请看下面基本用法和示例。

安装

pip install tracc

数据准备

在进行交通可达性分析之前,我们需要准备两类数据:目的地数据和交通成本数据。

目的地数据:这些数据描述了各个地区的特征,比如工作岗位数量、服务设施等。在我们的例子中,我们使用LEHD提供的波士顿市的工作岗位数据。

交通成本数据:这些数据反映了不同地区之间的交通成本,通常是通过交通工具的时间、距离等指标来衡量。在我们的例子中,我们使用了波士顿市不同区域间的公共交通时间矩阵。

分析流程

  1. 加载数据:首先,我们使用TRACC库的功能加载目的地数据和交通成本数据,并进行必要的数据预处理。
# 加载目的地数据dfo = tracc.supply(    supply_df=pd.read_csv("examples/test_data/boston/destination_employment_lehd.csv"),    columns=["block_group_id", "C000"]  # C000表示工作岗位总数)
# 加载交通成本数据dft = tracc.costs(    pd.read_csv("examples/test_data/boston/transit_time_matrix_8am_30_06_2020.zip", compression='zip'))
dft.data.time = dft.data.time / 60  # 将时间从秒转换为分钟
  1. 计算阻抗函数:接下来,我们根据设定的阈值计算阻抗函数,以描述在规定时间内到达目的地的可达性。
dft.impedence_calc( cost_column="time",
          impedence_func="cumulative",    
          impedence_func_params=45,    
          output_col_name="fCij_c45",    
          prune_output=False)
  1. 设置可达性对象:然后,我们设置可达性对象,并将目的地数据与交通成本数据进行关联。
acc = tracc.accessibility(    
             travelcosts_df=dft.data,    
             supply_df=dfo.data,    
             travelcosts_ids=["o_block""d_block"],    
             supply_ids="block_group_id")
  1. 计算可达性:最后,我们根据阻抗函数计算在给定阈值下的可达性,通常是指到达目的地的机会或者资源。
dfa = acc.potential(opportunity="C000",    
          impedence="fCij_c45")

这是 dfa 的前五行(例如,从区块组 250056001001 出发,某人可以在 45 分钟的交通行程中到达 4,061 个工作岗位)

    o_block       A_C000_fCij_c45
---------------------------------
0 250056001001 4061.0
1 250056001002 3960.0
2 250056002021 3608.0
3 250056002022 7845.0
4 250056002023 5124.0

然后可以通过加入与这些位置相关的空间数据,在 Python、QGIS 或任何其他地图软件中绘制此结果。这是一个简单的例子:

通过以上步骤,我们可以得到在给定时间阈值下,各个区域的工作岗位可达性情况。这样的分析有助于城市规划者和政策制定者更好地了解城市交通格局,优化交通资源配置,提升公众的生活质量。

tracc库提供了一个便捷而强大的工具,帮助我们进行交通可达性分析,并能够根据不同的研究目的进行定制化的分析和可视化。希望本文能够为您理解和应用交通可达性分析提供帮助!


🏴‍☠️宝藏级🏴‍☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉 PythonMySQL数据分析数据可视化机器学习与数据挖掘爬虫 等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递

相关推荐

  • 昨天GPT-4o 发布,今天首席科学家 Ilya 官宣离开 OpenAI
  • 「大模型」之所短,「知识图谱」之所长
  • 中国唯一!阿里云入选 UEC 技术委员会,携手微软、思科等打造 AI 网络基础设施
  • 【禁止血压飙升】如何拥有一个优雅的 Controller?
  • 【5000字】带你了解透彻浏览器缓存!
  • 开发阶段!跨域问题多种解决方案的精华总结
  • 面试官:说一说多线程常见锁的策略
  • 37岁同事通知被裁!可奇怪的是,半年后他仍在公司上班,每天准时打卡,每月工资照领!
  • 谷歌裁员重创 Flutter,Flutter 会步入谷歌的 "坟场" 吗?
  • Lombok!代码“亚健康”元凶?
  • Agents需要一个代码解释器
  • “全家桶”战士归来,谷歌自我革命!
  • 让树模型预测时能加速2-10倍的方案
  • 又一篇AI顶会!这个idea简直“ 杀疯了 ” ....
  • 如何查看 Spring Security 过滤器链?
  • GPT-4o 会带来哪些颠覆?
  • 如何攀上容量保障的珠峰?讲透全链路压测!
  • 2024 Vue 联邦大会,全明星阵容!探讨 Vue 的未来和问题
  • 你的 React 目录结构是啥样?
  • 30 天倒计时警告,Windows 10 21H2 末日即将来临!