當前位置: 妍妍網 > 碼農

解析城市交通可達性:使用Python庫tracc進行交通可達性分析

2024-05-20碼農

隨著城市化行程的加速,交通可達性成為評估城市發展和規劃的重要指標之一。透過分析交通網路和目的地分布,我們可以深入了解城市各個區域的工作機會、服務設施等對公眾的可達性。今天,我們將介紹如何使用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 # 將時間從秒轉換為分鐘

    2. 計算阻抗函式 :接下來,我們根據設定的閾值計算阻抗函式,以描述在規定時間內到達目的地的可達性。

    dft.impedence_calc(cost_column="time",impedence_func="cumulative",impedence_func_params=45,output_col_name="fCij_c45",prune_output=False)

    3. 設定可達性物件 :然後,我們設定可達性物件,並將目的地數據與交通成本數據進行關聯。

    acc = tracc.accessibility( travelcosts_df=dft.data, supply_df=dfo.data, travelcosts_ids=["o_block", "d_block"], supply_ids="block_group_id")

    4. 計算可達性 :最後,我們根據阻抗函式計算在給定閾值下的可達性,通常是指到達目的地的機會或者資源。

    dfa = acc.potential( opportunity="C000", impedence="fCij_c45")

    這是 dfa 的前五行(例如,從區塊組 250056001001 出發,某人可以在 45 分鐘的交通行程中到達 4,061 個工作崗位)

    o_blockA_C000_fCij_c45---------------------------------0250056001001 4061.01250056001002 3960.02250056002021 3608.03250056002022 7845.04250056002023 5124.0

    然後可以透過加入與這些位置相關的空間數據,在 Python、QGIS 或任何其他地圖軟體中繪制此結果。這是一個簡單的例子:

    透過以上步驟,我們可以得到在給定時間閾值下,各個區域的工作崗位可達性情況。 這樣的分析有助於城市規劃者和政策制定者更好地了解城市交通格局,最佳化交通資源配置,提升公眾的生活品質。

    tracc庫提供了一個便捷而強大的工具,幫助我們進行交通可達性分析,並能夠根據不同的研究目的進行客製化的分析和視覺化。希望本文能夠為您理解和套用交通可達性分析提供幫助!