智能交通(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 辆车进入该场景。

字段说明

数据处理

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")

# 可以添加更多的数据处理逻辑,例如筛选、排序、统计等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值