当前位置:   article > 正文

智能交通(1)——杭州交通数据集_交通之眼数据集

交通之眼数据集

赛题简介

在本地赛题中,参赛团队需要在平台提供的仿真交通场景下,通过算法模型驱动交通信号灯,以在各种交通状况(高峰期、雨天等)下都能最大程度地服务车辆,使其在模拟环境中获得综合最大得分。

数据集

来源:Reinforcement Learning for Traffic Signal Control

杭州交通数据集    

 这些数据集基于杭州的摄像头数据。由于缺乏转弯车辆的记录,每个数据集的转弯比例是固定的,10% 为左转,60% 为直行,30% 为右转。由于右转车辆不受交通信号灯控制,因此将其舍弃。每个道路网的每个方向都有一条左转车道和一条直行车道。        

每个数据集都包括道路网络(roadnet.json)和交通流文件(flow.json),其格式分别定义为道路网络文件格式和交通流文件格式。      

此外,每个场景的名称都表达了该场景的位置、时间和交通流量。例如,"hangzhou_bc_tyc_1h_8_9_2231 "定义了这样一个场景:交叉口位置索引为杭州的 "bc_tyc",交通流从早上 8 点开始到 9 点结束,在这一个小时内有 2231 辆车进入该场景。

字段说明

数据处理

  1. import json
  2. filename = 'roadnet.json'
  3. # 读取并解析JSON文件
  4. with open(filename, 'r') as file:
  5. roadnet_data = json.load(file)
  6. def analyze_roadnet_data(data):
  7. print(f"总共有 {len(data.get('intersections', []))} 个交叉点。")
  8. for intersection in data['intersections']:
  9. intersection_id = intersection['id']
  10. print(f"\n交叉点ID: {intersection_id}")
  11. point = intersection['point']
  12. print(f" 坐标: x={point['x']}, y={point['y']}")
  13. width = intersection['width']
  14. print(f" 宽度: {width}")
  15. roads = intersection['roads']
  16. print(f" 连接的道路: {', '.join(roads)}")
  17. # 信号灯信息
  18. traffic_light = intersection['trafficLight']
  19. lightphases = traffic_light['lightphases']
  20. print(f" 信号灯阶段数: {len(lightphases)}")
  21. for idx, phase in enumerate(lightphases):
  22. print(f" 阶段 {idx + 1}: 持续时间 {phase.get('time')}秒")
  23. available_road_links = phase.get('availableRoadLinks', [])
  24. print(f" 可通行道路链接索引: {', '.join(map(str, available_road_links))}")
  25. print(f"\n总共有 {len(data.get('roads', []))} 条道路。")
  26. for road in data['roads']:
  27. road_id = road['id']
  28. print(f"\n道路ID: {road_id}")
  29. points = road['points']
  30. print(f" 起点坐标: x={points[0]['x']}, y={points[0]['y']}")
  31. print(f" 终点坐标: x={points[1]['x']}, y={points[1]['y']}")
  32. lanes = road['lanes']
  33. print(f" 车道信息:")
  34. for lane in lanes:
  35. print(f" 车道宽度: {lane['width']}m, 最高速度: {lane['maxSpeed']}m/s")
  36. start_intersection = road['startIntersection']
  37. end_intersection = road['endIntersection']
  38. print(f" 起点交叉点: {start_intersection}, 终点交叉点: {end_intersection}")
  39. # 运行脚本
  40. if __name__ == "__main__":
  41. analyze_roadnet_data(roadnet_data)

  1. import json
  2. # 假设您的JSON数据存储在名为flow.json的文件中
  3. filename = 'flow.json'
  4. # 读取JSON文件
  5. with open(filename, 'r') as file:
  6. data = json.load(file)
  7. # 遍历数据中的每个车辆信息
  8. for vehicle_data in data:
  9. # 获取车辆的起始时间和结束时间
  10. start_time = vehicle_data['startTime']
  11. end_time = vehicle_data['endTime']
  12. # 检查是否是同一个时间段
  13. if start_time == end_time:
  14. print(f"车辆在时间 {start_time} 启动并结束")
  15. # 打印车辆的路线信息
  16. route = vehicle_data['route']
  17. print(f"车辆的路线: {route}")
  18. # 访问车辆的具体参数
  19. vehicle = vehicle_data['vehicle']
  20. print(f"车辆参数 - 长度: {vehicle['length']}m, 宽度: {vehicle['width']}m, 最大速度: {vehicle['maxSpeed']}km/h")
  21. # 可以添加更多的数据处理逻辑,例如筛选、排序、统计等

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号