with one click
transbigdata-getdata
使用 TransBigData 获取公共交通和地理数据。适用于获取公交线路站点、行政区划边界、等时圈分析等任务。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
使用 TransBigData 获取公共交通和地理数据。适用于获取公交线路站点、行政区划边界、等时圈分析等任务。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
TransBigData 交通时空大数据分析工具集。适用于轨迹数据栅格化、轨迹清洗处理、出租车OD提取、公交地铁网络分析、坐标转换、数据可视化等交通大数据分析任务。
使用 TransBigData 进行坐标系转换和距离计算。适用于 WGS84、GCJ02、BD09 坐标系互转,以及两点间距离计算。
使用 TransBigData 库进行地理数据栅格化处理。适用于将GPS轨迹数据映射到栅格、生成矩形/三角形/六边形栅格、Geohash编码、栅格参数优化等空间数据分析任务。
使用 TransBigData 构建公交地铁网络拓扑和路径分析。适用于地铁网络建模、最短路径查询、换乘分析、公交 GPS 到站识别等任务。
使用 TransBigData 进行数据预处理与质量评估。适用于数据质量检查、采样间隔分析、边界过滤、ID重编号等任务。
使用 TransBigData 处理出租车 GPS 数据。适用于出租车状态清洗、OD 提取、载客/空驶轨迹分离等任务。
| name | transbigdata-getdata |
| description | 使用 TransBigData 获取公共交通和地理数据。适用于获取公交线路站点、行政区划边界、等时圈分析等任务。 |
pip install transbigdata
部分功能需要地图 API 密钥:
import transbigdata as tbd
# 高德地图(用于获取行政区划、等时圈等)
# 在高德开放平台注册获取
# Mapbox(用于底图和等时圈)
tbd.set_mapboxtoken('your_mapbox_token')
getbusdata()获取中国城市的公交线路和站点数据。
# 获取深圳 M433 路公交数据
line, stop = tbd.getbusdata(
city='深圳',
keywords=['M433'],
accurate=True, # 精确匹配
timeout=20
)
# line: 线路 GeoDataFrame (WGS84)
# stop: 站点 GeoDataFrame (WGS84)
获取多条线路:
line, stop = tbd.getbusdata(
city='深圳',
keywords=['M433', '1', '2', '地铁1号线'],
accurate=False # 模糊匹配
)
getadmin()获取中国行政区划边界数据。
# 获取深圳市边界
admin, districts = tbd.getadmin(
keyword='深圳',
ak='your_amap_key', # 高德 API Key
jscode='your_jscode', # 高德安全密钥(可选)
subdistricts=True, # 是否获取下级区划
timeout=20
)
# admin: 行政区边界 GeoDataFrame (WGS84)
# districts: 下级区划信息 DataFrame
按行政代码获取:
admin, districts = tbd.getadmin(
keyword='440300', # 深圳市行政代码
ak='your_amap_key'
)
get_isochrone_amap()获取指定点的公交可达范围。
isochrone = tbd.get_isochrone_amap(
lon=114.05, # 起点经度 (WGS84)
lat=22.55, # 起点纬度 (WGS84)
reachtime=30, # 可达时间(分钟)
ak='your_amap_key',
mode=2, # 0=公交, 1=地铁, 2=公交+地铁
timeout=20
)
# 返回 GeoDataFrame
get_isochrone_mapbox()使用 Mapbox 获取等时圈(支持驾车/步行/骑行)。
# 先设置 token
tbd.set_mapboxtoken('your_mapbox_token')
isochrone = tbd.get_isochrone_mapbox(
lon=114.05,
lat=22.55,
reachtime=15, # 分钟
mode='driving', # 'driving', 'walking', 'cycling'
timeout=20
)
import matplotlib.pyplot as plt
import transbigdata as tbd
# 获取深圳地铁1号线数据
line, stop = tbd.getbusdata(
city='深圳',
keywords=['地铁1号线'],
accurate=True
)
# 可视化
fig, ax = plt.subplots(figsize=(12, 8))
bounds = line.total_bounds
bounds = [bounds[0]-0.05, bounds[1]-0.05, bounds[2]+0.05, bounds[3]+0.05]
tbd.plot_map(plt, bounds, zoom=12, style=4)
line.plot(ax=ax, color='blue', linewidth=3, label='线路')
stop.plot(ax=ax, color='red', markersize=50, label='站点')
plt.legend()
plt.title('深圳地铁1号线')
plt.show()
import pandas as pd
import geopandas as gpd
import transbigdata as tbd
# 获取深圳市及各区边界
admin, districts = tbd.getadmin(
keyword='深圳',
ak='your_amap_key',
subdistricts=True
)
# 获取各区边界
district_list = []
for _, row in districts.iterrows():
d, _ = tbd.getadmin(keyword=row['adcode'], ak='your_amap_key')
district_list.append(d)
districts_gdf = gpd.GeoDataFrame(
pd.concat(district_list, ignore_index=True),
crs='EPSG:4326'
)
# 在各区内生成 500 米栅格
grid, params = tbd.area_to_grid(admin, accuracy=500)
# 空间连接
grid_with_district = gpd.sjoin(grid, districts_gdf, how='left')
import matplotlib.pyplot as plt
import transbigdata as tbd
# 福田CBD位置
center_lon, center_lat = 114.05, 22.55
# 获取不同时间的等时圈
iso_15 = tbd.get_isochrone_amap(center_lon, center_lat, 15, ak='your_key', mode=2)
iso_30 = tbd.get_isochrone_amap(center_lon, center_lat, 30, ak='your_key', mode=2)
iso_45 = tbd.get_isochrone_amap(center_lon, center_lat, 45, ak='your_key', mode=2)
# 可视化
fig, ax = plt.subplots(figsize=(12, 10))
bounds = iso_45.total_bounds
bounds = [bounds[0]-0.05, bounds[1]-0.05, bounds[2]+0.05, bounds[3]+0.05]
tbd.plot_map(plt, bounds, zoom=11, style=4)
iso_45.plot(ax=ax, alpha=0.3, color='blue', label='45分钟')
iso_30.plot(ax=ax, alpha=0.4, color='green', label='30分钟')
iso_15.plot(ax=ax, alpha=0.5, color='red', label='15分钟')
ax.scatter([center_lon], [center_lat], c='black', s=100, zorder=5, label='起点')
plt.legend()
plt.title('公交等时圈分析')
plt.show()
tbd.set_mapboxtoken() 设置公交数据:
accurate=True 用于精确匹配特定线路accurate=False 用于批量获取相似线路行政区划:
等时圈:
请求频率:
完整文档: https://transbigdata.readthedocs.io/en/latest/getbusdata.html