赞
踩
在本地赛题中,参赛团队需要在平台提供的仿真交通场景下,通过算法模型驱动交通信号灯,以在各种交通状况(高峰期、雨天等)下都能最大程度地服务车辆,使其在模拟环境中获得综合最大得分。
来源: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 辆车进入该场景。
- import json
-
- filename = 'roadnet.json'
-
- # 读取并解析JSON文件
- with open(filename, 'r') as file:
- roadnet_data = json.load(file)
-
- def analyze_roadnet_data(data):
- print(f"总共有 {len(data.get('intersections', []))} 个交叉点。")
- for intersection in data['intersections']:
- intersection_id = intersection['id']
- print(f"\n交叉点ID: {intersection_id}")
- point = intersection['point']
- print(f" 坐标: x={point['x']}, y={point['y']}")
- width = intersection['width']
- print(f" 宽度: {width}")
- roads = intersection['roads']
- print(f" 连接的道路: {', '.join(roads)}")
-
- # 信号灯信息
- traffic_light = intersection['trafficLight']
- lightphases = traffic_light['lightphases']
- print(f" 信号灯阶段数: {len(lightphases)}")
- for idx, phase in enumerate(lightphases):
- print(f" 阶段 {idx + 1}: 持续时间 {phase.get('time')}秒")
- available_road_links = phase.get('availableRoadLinks', [])
- print(f" 可通行道路链接索引: {', '.join(map(str, available_road_links))}")
-
- print(f"\n总共有 {len(data.get('roads', []))} 条道路。")
- for road in data['roads']:
- road_id = road['id']
- print(f"\n道路ID: {road_id}")
- points = road['points']
- print(f" 起点坐标: x={points[0]['x']}, y={points[0]['y']}")
- print(f" 终点坐标: x={points[1]['x']}, y={points[1]['y']}")
- lanes = road['lanes']
- print(f" 车道信息:")
- for lane in lanes:
- print(f" 车道宽度: {lane['width']}m, 最高速度: {lane['maxSpeed']}m/s")
-
- start_intersection = road['startIntersection']
- end_intersection = road['endIntersection']
- print(f" 起点交叉点: {start_intersection}, 终点交叉点: {end_intersection}")
-
- # 运行脚本
- if __name__ == "__main__":
- analyze_roadnet_data(roadnet_data)
- import json
-
- # 假设您的JSON数据存储在名为flow.json的文件中
- filename = 'flow.json'
-
- # 读取JSON文件
- with open(filename, 'r') as file:
- data = json.load(file)
-
- # 遍历数据中的每个车辆信息
- for vehicle_data in data:
- # 获取车辆的起始时间和结束时间
- start_time = vehicle_data['startTime']
- end_time = vehicle_data['endTime']
-
- # 检查是否是同一个时间段
- if start_time == end_time:
- print(f"车辆在时间 {start_time} 启动并结束")
-
- # 打印车辆的路线信息
- route = vehicle_data['route']
- print(f"车辆的路线: {route}")
-
- # 访问车辆的具体参数
- vehicle = vehicle_data['vehicle']
- print(f"车辆参数 - 长度: {vehicle['length']}m, 宽度: {vehicle['width']}m, 最大速度: {vehicle['maxSpeed']}km/h")
-
- # 可以添加更多的数据处理逻辑,例如筛选、排序、统计等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。