社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

数据STUDIO • 2 月前 • 86 次点击  


随着城市化进程的加速,交通可达性成为评估城市发展和规划的重要指标之一。通过分析交通网络和目的地分布,我们可以深入了解城市各个区域的工作机会、服务设施等对公众的可达性。今天,我们将介绍如何使用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 -设为星标,干货速递

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/170099
 
86 次点击