syntax = "proto3"; package xlsyn; option java_package = "com.xinglusyn.proto"; import "traj.proto"; import "map_match.proto"; // 路况状态的计算来源分类 enum seg_status_src_t { RTT_SRC_SELF = 0; // 自研原始路况状态 RTT_SRC_GAODE = 1; // 路况未计算出路况速度, eta计算出了eta速度 RTT_SRC_SHIJIGAOTONG = 2; RTT_SRC_SHIJIGAOTONG_RTIC = 3; RTT_SRC_SELF_FILLING = 4; RTT_SRC_STABLENESS_FILLING = 5; // 时间平滑的结果 RTT_SRC_SPACE_FILLING = 6; // 普通平滑的结果 RTT_SRC_STABLENESS_SPACE_FILLING = 7; // 时间平滑及空间平滑的结果 RTT_SRC_RTIC_FILLING = 8; RTT_SRC_DEGREE_FILLING = 9; RTT_SRC_FORM_WAY_FILLING = 10; RTT_SRC_LEN_FILLING = 11; RTT_SRC_CHANGES = 12; RTT_SRC_CLOSELINK_ML = 13; // new_add 封闭道路机器学习模型直接输出的结果 RTT_SRC_CLOSELINK_SMOOTH_ML = 14; // new_add 封闭道路用ML模型平滑的结果 RTT_SRC_SPARSE_FILING = 15; // new_add 稀疏模型填补的结果[已下线] RTT_SRC_TIME_FILING = 16; // new_add 邻近时间填补的结果 RTT_SRC_TIMESPACE_FILING = 17; // new_add 邻近时间填补及空间平滑的结果 RTT_SRC_DEFAULT_FILING = 18; // new_add 默认0.61倍ffs填补的结果 RTT_SRC_DEFAULTSPACE_FILING = 19; // new_add 默认0.61倍ffs填补及空间平滑的结果 RTT_SRC_FLOWFIX_FILLING = 20; // new_add 根据上下游流量校验的结果 RTT_SRC_GLSML_FILLING = 21; // new_add 平滑机器学习模型直接输出的结果 RTT_SRC_GROUND_LINK_ML = 22; // new_add 地面普通道路ML模型输出的结果 RTT_SRC_GROUND_LINK_LIGHT_ML = 23; // new_add 地面红绿灯道路ML模型输出的结果 RTT_SRC_GROUND_LINK_LESSDATA_ML = 24; // new_add 地面数据稀疏道路ML模型输出的结果 RTT_SRC_GROUND_LINK_MINROAD_ML = 25; // new_add 地面小路ML模型输出的结果 RTT_SRC_IMAGE_LIGHT_LINK_ML = 26; // new_add 基于图像的红绿灯道路路况(rtti_sw输出) RTT_SRC_IMAGE_COMM_LINK_ML = 27; // new_add 基于图像的非红绿灯道路路况(rtti_sw输出) RTT_SRC_IMAGE_CLASSIC = 28; // new_add 基于图像的基于规则的判定路况(rtti_sw输出) RTT_SRC_FIX_BY_JAM_PROB = 29; // 基于拥堵概率进行修正后的状态 RTT_SRC_GROUND_LINK_LIGHT_2_ML = 30;// 新灯前模型结果 RTT_SRC_LONG_JAM_SMOOTH = 31;// 长等灯平滑结果 RTT_SRC_RESERVED_1 = 32;//保留1 RTT_SRC_LOW_CONF_JAM_TAG = 33;//低置信拥堵标志 RTT_SRC_LOW_CONF_JAM = 34;//低置信拥堵 RTT_SRC_SZPA_FIX = 35; //服务区平行路的拥缓修正 RTT_SRC_RESERVED_5 = 36;//保留5 RTT_SRC_RESERVED_6 = 37;//保留6 RTT_SRC_RESERVED_7 = 38;//保留7 RTT_SRC_RESERVED_8 = 39;//保留8 RTT_SRC_RESERVED_9 = 40;//保留9 } // 单车速度样本的标记分类 enum sample_tag_t{ sample_tag_normal = 0; // 正常样本 sample_tag_luan_kill = 1; // 因轨迹混乱被kill sample_tag_park_kill = 2; // 因固定点停车被kill sample_tag_poi_kill = 3; // 因poi关联的异常行为被kill sample_tag_tollgate_kill = 4; //因收费站引起的异常行为被kill sample_tag_stand_still_filter=5; // 异常停车过滤 sample_tag_lowM_filter=6; // 完走率过滤 sample_tag_pickup_filter=7; // 小路pickup样本过滤 sample_tag_rc6_old_filter=8; // 小路旧样本过滤 sample_tag_too_old_filter=9; // 旧样本过滤 sample_tag_odd_filter=10; // 离群样本过滤 sample_tag_onlyOld_filter=11; // 小路上纯旧样本全删 sample_tag_too_fast_filter=12; // 超高速样本过滤 sample_tag_express_kill_low_filter=13; // 城际高速低速样本过滤 sample_tag_tunnel_kill_filter=14; // 隧道样本过滤 sample_tag_trend_kill_filter=15; // 趋势过滤 sample_tag_light_prefer_low_filter=16; // 信号灯前偏爱低速 sample_tag_trunk_filter=17; // 货车样本过滤 sample_tag_sparse_traj_filter=18; // 轨迹过稀的样本过滤 sample_tag_not_finish_light_filter=19; // 未走完信号灯的样本过滤 sample_tag_car_trip_head_filter=20; // 私家车单次行程起始段样本过滤 sample_tag_car_trip_tail_filter=21; // 私家车单次行程末尾段样本过滤 sample_tag_netcar_trip_head_filter=22; // 网约车单次行程起始段样本过滤 sample_tag_netcar_trip_tail_filter=23; // 网约车单次行程末尾段样本过滤 sample_tag_netcar_pickup_head_filter=24; // 网约车接客开始段样本过滤 sample_tag_netcar_pickup_tail_filter=25; // 网约车接客末尾段样本过滤 sample_tag_netcar_other_switch_filter=26; // 网约车其他状态切换导致的样本过滤 sample_tag_turnback_filter=27; // 轨迹掉头过滤 sample_tag_coin_filter=28; // 重复样本过滤 sample_tag_branchflow_filter=29; // 支流过滤 sample_tag_abnormal_match = 30;//异常匹配样本过滤 sample_tag_badcar=31; // 被车辆黑名单过滤掉 sample_tag_illegal_on_lane=32;//高速上异常高速样本,可能占用了应急车道 sample_tag_suburb_still_filter=33;//郊区异常停留 sample_tag_slow_empty_kill=34; // 针对滴滴等网约车的空车状态进行的低速过滤 sample_tag_allstop_kill=35; // 所有轨迹都在固定点停留 sample_tag_deviate_kill=36; // 因轨迹偏离道路而过滤 sample_tag_workzone_kill=37; // 在工作园区内过滤掉非送客状态的营运车辆的低速本 sample_tag_badsrc_kill=38; // 不良渠道轨迹的样本舍弃 sample_tag_poi_old_kill=39; // poi关联的link上的样本时间过滤 sample_tag_truck_low_kill=40; // 经过客货车综合对比,舍弃偏低速的货车样本 } message rtt_tlink_diverge_t { int32 dist2cross = 1;//距离路口的距离(单位:cm)(SW用) uint64 out_xlink_id = 2;//出口Link(经过路口后的第一条非交叉口内link)的tlinkid(SW用) int32 eta_speed = 3;//该方向上的eta速度(ETACalculator输出用) int32 dist2branch = 4;//经过该路进入非主流路前的距离(只保存100米以内的距离,因为一般100米以内会受多流向影响) uint64 out_linkid = 5; //出口Link的linkid(末尾数字为dir),不是xlink_id(没有赋值) int32 refine_eta_speed = 6; // 精细化的eta速度,单位为0.01km/h,仅当速度小于5km/h时,才提供该字段 }; // 某个流向的速度和状态信息 message rtt_flow_status_t { uint64 out_xlink_id = 1; //出口Link(经过路口后的第一条非交叉口内link)的tlinkid int32 status = 2; int32 speed = 3; int32 turn_type = 4; //转向类型,现有取值:0,1,2,3分别表示:直行,左转,右转,掉头 uint64 out_linkid = 5; //出口Link的linkid(末尾数字为dir),不是xlink_id(没有赋值) } // 多流向的状态结构体 message rtt_multiflow_status_t { repeated rtt_flow_status_t status_bkt = 1; // 多个流向的状态信息 int32 multi_type = 2; // 指明多个状态的含义。默认情况下表示指向下游多个link的分流向路况;当取值为1时,表示内部样本分层的情况,此时out_xlink_id取值为路况状态值,如:0,1,2,4。 } // 长link的分段路段结构体 message rtt_subsection_status_t { repeated int32 subsection_data = 1; // 分段的速度状态信息 } //等灯详情信息 message rtt_light_wait_detail_t{ int32 count = 1; // 等灯次数 repeated int32 wait_queue_lens = 2; // 等灯队列的长队数组。0号元素表示末次等灯队列长度 int32 life = 3; // 信息被复用的批次个数.取值恒大于0.取值n表示该被第n次延续使用;当属于真实计算结果时,不包含该字段. } message rtt_tlink_light_t { int32 count = 1; //等灯个数 int32 time = 2; // time of pass light int32 dis_firstwait2light = 3; //distance of first wait to the light int32 is_passed = 4; //is have passed the light int32 dis_firstwait2link = 5; //distance of first wait to the end of link int32 dis_first2end = 6; int32 dis_last2end = 7; }; message rtt_tlink_ml_t { int32 stay_len = 1;//停留长度 int32 stay_period = 2;//停留时间 uint32 latest_timestamp = 3;//驶离时间(最新数据时间),有一个例外:在红绿灯前,受影响的多个Link的latesttime都被设置为整个受影响轨迹串的最后一个点对的末尾点的时间 rtt_tlink_light_t light_info = 4; int32 max_stop_period = 5; int32 start_pos = 6; // 样本覆盖link的起点位置,不考虑link的顺向逆向,统一用0表示link起点位置 }; message rtt_sample_statistics_t { // 由高到低4个字节分别存放: 总样本数| 状态=0样本数| 状态=1样本数| 状态=2样本数 int32 inuse_cnt = 1; // 按字节存储in_use样本的统计 int32 normal_cnt = 2; // 按字节存储in_use,rc6_old,too_old样本的统计 int32 total_cnt = 3; // 按字节存储除SW标记异常的所有样本的统计 }; message close_link_detail_t { float p0 = 1; float p2 = 2; float relative_speed = 3; } // 单车样本或平均速度样本数据 message rtt_tlink_spt_t { uint64 xlink_id = 1; int32 speed = 2; // for one car uint32 load_status = 3; int32 priority = 4; uint32 t = 5; //样本时间,通常指的是车辆离开Link的时间,有一个例外是:被判定为疑似异常停车的时候,设置为异常停车开始的时间 uint64 car_id = 6; // for one state uint32 status = 8; // 2015_04_17 int32 eta_speed = 9; uint32 offset = 10; // types 0:gps_speed 1:avg_speed 2:light_speed int32 type = 11; // type of caculation seg_status_src_t src = 12; int32 reliability = 13; // car_num int32 flow = 14; // if it's the last link_spt, pass_by = false bool pass_by = 15; // is stand still bool is_stand_still = 16; // order_status xlsyn.order_status_t order_status = 17; uint32 city_id = 18; int32 gps_speed = 19; rtt_tlink_ml_t ml_info = 20; close_link_detail_t close_link_detail = 21; repeated float clm_data = 22; // new_add 当src=RTT_SRC_CLOSELINK_ML时,这里包含一些辅助信息 // added by gavanwang@20170425 int32 eta_speed_m1 = 23; int32 eta_speed_m2 = 24; sample_tag_t tag = 25; // 样本标记 // added by gavanwang@20171106 int32 gd_speed = 26; int32 gd_status = 27; // added by liguangsun@20180102 repeated float light_ml_features = 28; // feature array for light ml model // add by gavanwang@20180201 repeated rtt_tlink_diverge_t diverge_info = 29; // 分流信息 // add by thomasyyang@20180329 int32 smooth_speed = 30; // 用于存储平滑机器学习模型结果 int32 smooth_status = 31; repeated float gml_data = 32;//用于slidewindows向下游传递数据信息(地面道路红绿灯模型) int32 calc_speed = 33; // 用于存储Calculator结果 int32 calc_status = 34; seg_status_src_t calc_src = 35; int32 method = 36; // 用于标记平滑时采用传统还是ML方法 rtt_sample_statistics_t samples_info = 37; //用于向Publish模块传递各标签样本数统计 rtt_multiflow_status_t multiflow_status = 38; // 多流向状态 int32 mt_speed = 39; // 路况速度 for 美团 int32 mt_status = 40; // 路况状态 for 美团 int32 rtti_src = 41; // 富媒体来源 0-众包设备,1-滴滴设备 int32 flow_speed = 42; rtt_subsection_status_t subsection_status = 43; // 分段路段数据,在内部字段中,依次存储千分数、速度和状态 repeated uint64 ll_data = 44;//存储64位整数,目前首位存300米外最近等灯处linkid_dir rtt_light_wait_detail_t light_wait_detail = 45; // 等灯详情 rtt_speed_odd_point_t speed_odd_point = 46; // 速度突变点信息 int32 refine_eta_speed = 47; // 精细化的eta速度,单位为0.01km/h,仅当速度小于5km/h时,才提供该字段 xlsyn.rtt_gps_lane_info_t lane_info = 48; // 表示单车速度样本的车道信息 }; message rtt_tlink_spt_bkt_t { repeated rtt_tlink_spt_t bkt = 1; uint32 pack_info = 2; uint32 t = 3; string ver = 4; }; message rtt_stand_still_vehicle_t { uint64 car_id = 1; uint32 t = 2; }; // 一批停车信息 message rtt_stand_still_vehicle_bkt_t { repeated rtt_stand_still_vehicle_t bkt = 1; uint32 pack_info = 2; uint32 t = 3; }; // 边的状态:速度值和路况 message rtt_seg_status_t { xlsyn.rtt_seg_t seg = 1; // 描述路况状态的路段 xlsyn.rtt_seg_t next_seg = 2; // 该速度关联的下一条路段 uint32 timestamp = 3; // 时间戳 int32 qq_speed = 4; // 边的速度km/h int32 qq_status = 5; // 边的状态,畅通、缓行、拥堵 int32 use = 6; int32 gd_speed = 7; int32 gd_status = 8; int32 sj_speed = 9; int32 sj_status = 10; int32 t1 = 11; int32 t2 = 12; int32 t3 = 13; int32 eta_speed = 14; seg_status_src_t src = 15; // added by gavanwang@20170425 int32 eta_speed_m1 = 16; // 表示过渡期的重构后的eta_speed int32 eta_speed_m2 = 17; // added by thomasyyang@20180329 int32 smooth_speed = 18; // 平滑ML模型路况速度: km/h int32 smooth_status = 19; // 平滑ML模型路况状态: 畅通, 缓行, 拥堵, 极度拥堵 int32 reliability = 20; // 路况状态的置信度: 取值0~99 // added by gavanwang@20180423 repeated rtt_tlink_diverge_t diverge_info = 21; // added by thomasyyang@20180615 int32 trad_speed = 22; // 平滑传统模型路况速度: km/h int32 trad_status = 23; // 平滑传统模型路况状态: 畅通, 缓行, 拥堵, 极度拥堵 seg_status_src_t trad_src = 24; // 平滑传统模型路况src int32 calc_speed = 25; // Calculator计算出来的原始路况速度 int32 calc_status = 26; // Calculator计算出来的原始路况状态 seg_status_src_t calc_src = 27; // Calculator计算出来的原始路况src int32 method = 28; // 用于标记平滑时采用传统还是ML方法 rtt_sample_statistics_t samples_info = 29; // 用于存储Calculator模块中各标签样本数 rtt_multiflow_status_t multiflow_status = 30; // 多流向状态 int32 mt_speed = 31; // 路况速度 for 美团 int32 mt_status = 32; // 路况状态 for 美团 int32 rtti_src = 33; // 富媒体来源 0-众包设备,1-滴滴设备 int32 storm_status = 34; // 人工干预前Jstorm生产的路况状态 rtt_subsection_status_t subsection_status = 35; // 分段路段数据: 内部字段存储各段的千分数和状态 } // 批量接口 message rtt_seg_status_bucket_t { repeated rtt_seg_status_t seg_bucket = 1; uint32 count = 2; // 包的个数 uint32 idx = 3; // 当前包的idx, 0为起始值 uint32 batch = 4; // 路况的批次信息 string ver = 5; uint32 admin_code = 6; bool high_priority = 7; // for merge status } // 某个城市的一个批次的发布信息统计结果 message rtt_city_publish_stat_t { uint32 city_id = 1; // 城市id uint32 timestamp = 2; // 发布时间戳 int32 pub_link_count = 3; int32 show_link_count = 4; // 前台展示的link总数 int32 calc_link_count = 5; // 后台计算的link总数 float show_link_percent = 6; // 前台展示的link比例 float calc_link_percent = 7; // 后台计算的link比例 } //////////////////////////////////////////////////////////////// // 新增加一系列与交通延误信息相关的message message xl_delayinfo_t { int32 delay_time = 1; // 单车延误时间或平均延误时间,秒 float stop_times = 2; // 单车停车次数或平均停车次数 int32 queue_len = 3; // 排队长度,米 int32 speed = 4; // 行驶速度,单位:0.01km/h float jam_index = 5; // 拥堵指数 int32 travel_time = 6; // 行程时间,秒 repeated int32 stop_dists = 7; // 停车距离数组,米 int32 truck_percent = 8; // 对单车,0表示非货车;非0表示货车;对于路段或路口,则表示百分比数值 // 以下字段在单车情形下不使用 int32 car_num = 9; // 车辆个数 int32 park_percent = 10; // 停车率, 1表示0.0001 int32 turn_ratio_0 = 11; // 直行占比, 1表示0.0001 int32 turn_ratio_1 = 12; // 左转占比, 1表示0.0001 int32 turn_ratio_2 = 13; // 右转占比, 1表示0.0001 int32 turn_ratio_3 = 14; // 掉头占比, 1表示0.0001 int32 vacant_green_percent = 15; // 空放占比, 1表示0.0001 int32 ffs = 16; // 自由流速度, 单位:0.01km/h int32 capacity = 17; // 通行能力, 辆/小时 int32 overflow = 18; // 是否溢流0/1 int32 imbalance = 19; // 是否失衡0/1 int32 deadlock = 20; // 是否死锁0/1 string overflow_desc = 21; // 溢流描述信息 string imbalance_desc = 22; // 失衡描述信息 int32 move_speed = 23; // 不停车速度,单位:0.01km/h float imbalance_index = 24; // 失衡系数 // 新增加的指标 int32 park_time = 25; // 单车停车时间或平均停车时间,秒 int32 high_park_percent = 26; // 发生多次停车的占比,取值0~100,1表示1% int32 std_flow = 27; // 相对流量,取值1~100,0表示无数据,计算规则为:实际单位小时流量/当日小时流量峰值 }; // 单车的延误信息 message xl_car_delayinfo_t { uint64 car_id = 1; // 车ID uint64 xlink_id = 2; // 星路的linkid int32 turn_type = 3; // 转向类型,0,1,2,3表示:直行、左转、右转、掉头 xl_delayinfo_t delay_info = 4; // 延误信息 uint32 pass_timestamp = 5; // 车辆经过路口的时间戳 uint64 out_xlink_id = 6; // 下游路段的星路linkid }; // 一批单车延误数据 message xl_car_delayinfo_bkt_t { repeated xl_car_delayinfo_t bkt = 1; // 单车延误数据集合 int32 citycode = 2; // 城市编码 uint32 pack_info = 3; // 批次分装信息 uint64 t = 4; // 计算批次的Unix时间戳 string ver = 5; // 版本信息,预留 } ////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// // 对外公开的单流向延误数据message // 路段单流向延误特征 message xl_inroad_flow_record_t { uint64 seg_id = 1; // 路段id string inroadid = 2; // 进口道ID int32 turn_type = 3; // 转向类型, 整数取值范围:0~3 int32 car_num = 4; // 车辆个数, 整数取值范围:0~1000 int32 truck_percent = 5; // 货车比例, 整数取值范围:0~100 int32 delay_time = 6; // 延误时间, 整数取值范围:0~600 float stop_times = 7; // 平均停车次数, 浮点数取值范围:0~10 int32 queue_len = 8; // 排队长度, 整数取值范围:0~500 int32 speed = 9; // 平均行驶速度, 整数取值范围:0~15000 int32 move_speed = 10; // 不停车速度, 整数取值范围:0~15000 float jam_index = 11; // 拥堵指数, 浮点数取值范围:0.0~50.0 int32 travel_time = 12; // 行程时间, 整数取值范围:0~3600 repeated int32 stop_dists = 13; // 等灯距离数组, 数组内整数元素取值范围:0~500 uint32 timestamp = 14; // 数据时间戳 }; // 路段单流向延误特征的集合 message xl_inroad_flow_record_bkt_t { repeated xl_inroad_flow_record_t bkt = 1; // 单流向的延误数据集合 int32 citycode = 2; // 城市编码 uint32 pack_info = 3; // 批次分装信息 uint64 t = 4; // 计算批次的Unix时间戳 string ver = 5; // 版本信息,预留 }; ///////////////////////////////////////////////////////// /// @brief 时段信息 message xl_tp_t { int32 start_hm = 1; // 时段开始的小时分钟数字,后2位为分钟,高位为小时,如:930表示09:30 int32 end_hm = 2; // 时段结束的小时分钟数字,后2位为分钟,高位为小时 int32 weekday = 3; // 限定星期几, 0表示不限制,1~7对应7天,8表示工作日;9表示周末。当取值为yyyymmdd时,表示具体的一天 int32 type = 4; // 时段类型,默认0表示普通时段,1表示小时级时段,2表示单日典型时段 }; // 单个流向的延误信息 message xl_flow_delayinfo_t { uint64 xlink_id = 1; // 星路的xlinkid string inroadid = 2; // 进口道ID int32 turn_type = 3; // 转向类型,0,1,2,3表示:直行、左转、右转、掉头 xl_delayinfo_t delay_info = 4; // 延误信息 uint64 timestamp = 5; // 执行汇总统计的时间窗末尾时刻,通常为整分或整5分的时刻 int32 time_window = 6; // 统计时间窗,单位为分钟 xl_tp_t tp = 7; // 时段信息,为tp赋值,则表示这是该路口在这个时段内的延误信息 int32 daynum = 8; // 统计日期,yyyymmdd }; // 一批进口道的延误数据 message xl_flow_delayinfo_bkt_t { repeated xl_flow_delayinfo_t bkt = 1; // 流向的延误数据集合 int32 citycode = 2; // 城市编码 uint32 pack_info = 3; // 批次分装信息 uint64 t = 4; // 计算批次的Unix时间戳 string ver = 5; // 版本信息,预留 } // 单个进口道包含的所有流向的延误信息 message xl_inroad_delayinfo_t { uint64 xlink_id = 1; // 星路的xlinkid string inroadid = 2; // 进口道ID xl_delayinfo_t delay_info = 3; // 进口道的延误信息 repeated xl_flow_delayinfo_t flow_delay_infos = 4; // 多个流向的延误信息 uint64 timestamp = 5; // 执行汇总统计的时间窗末尾时刻,通常为整分或整5分的时刻 int32 time_window = 6; // 统计时间窗,单位为分钟 xl_tp_t tp = 7; // 时段信息,为tp赋值,则表示这是该路口在这个时段内的延误信息 int32 daynum = 8; // 统计日期,yyyymmdd }; // 一批进口道的延误数据 message xl_inroad_delayinfo_bkt_t { repeated xl_inroad_delayinfo_t bkt = 1; // 进口道延误数据集合 int32 citycode = 2; // 城市编码 uint32 pack_info = 3; // 批次分装信息 uint64 t = 4; // 计算批次的Unix时间戳 string ver = 5; // 版本信息,预留 } // 转向的统计信息 message xl_turninfo_t { int32 car_num = 1; // 车辆个数 int32 turn_ratio_0 = 2; // 直行占比, 1表示0.0001, 也可以直接整数表示车辆个数。 int32 turn_ratio_1 = 3; // 左转占比, 1表示0.0001,同上。 int32 turn_ratio_2 = 4; // 右转占比, 1表示0.0001,同上。 int32 turn_ratio_3 = 5; // 掉头占比, 1表示0.0001,同上。 }; // 一辆车的转向记录 message xl_turn_record_t { uint64 in_xlinkid = 1; // 灯前的xlinkid uint64 out_xlinkid = 2; // 灯后的xlinkid int32 turn_type = 3; // 转向类型,0,1,2,3表示:直行、左转、右转、掉头 uint32 timestamp = 4; // 车辆经过路口的时间戳 } // 单个出口道包含的信息 message xl_outroad_info_t { uint64 xlink_id = 1; // 星路的xlinkid string outroadid = 2; // 出口道ID xl_turninfo_t turn_info = 3; // 转向信息 xl_tp_t tp = 4; // 时段信息 int32 daynum = 5; // 统计日期,yyyymmdd }; // 一批出口道的转向数据 message xl_outroad_info_bkt_t { repeated xl_outroad_info_t bkt = 1; // 出口道转向数据数据集合 }; // 单个路口的包含的所有流向的延误信息 message xl_cross_delayinfo_t { string crossid = 1; // 路口ID xl_delayinfo_t delay_info = 2; // 路口的延误信息 repeated xl_inroad_delayinfo_t inroad_delay_infos = 3; // 所有进口道的所有流向的延误信息 uint64 timestamp = 4; // 执行汇总统计的时间窗末尾时刻,通常为整分或整5分的时刻 int32 time_window = 5; // 统计时间窗,单位为分钟 xl_tp_t tp = 6; // 时段信息,为tp赋值,则表示这是该路口在这个时段内的延误信息 int32 daynum = 7; // 统计日期,yyyymmdd repeated xl_outroad_info_t outroad_infos = 8; // 所有出口道的转向统计信息 }; // 一批路口的延误数据 message xl_cross_delayinfo_bkt_t { repeated xl_cross_delayinfo_t bkt = 1; // 路口延误数据集合 int32 citycode = 2; // 城市编码 uint32 pack_info = 3; // 批次分装信息 uint64 t = 4; // 计算批次的Unix时间戳 string ver = 5; // 版本信息,预留 }; //////////////////////////////////////////////////////////////////////////////// // 城市路口巡检报告相关的结构体定义 // 一个转向结构体 message xl_cross_flow_t { string inroadid = 1; // 进口道ID int32 turn_type = 2; // 转向类型,0,1,2,3表示:直行、左转、右转、掉头 }; // 路口问题结构体 message xl_cross_problem_t { xl_cross_delayinfo_t cross_delay = 1; repeated xl_cross_flow_t target_flows = 2; // 有问题的转向或进口道列表 }; // 路口潮汐计算详情结构体 message xl_cross_tide_detail_t { int32 L1 = 1; // 早高峰较大的进口道流量 int32 L2 = 2; // 早高峰较小的进口道流量 repeated string inroadid_pair1 = 3; int32 L3 = 4; // 晚高峰较大的进口道流量 int32 L4 = 5; // 晚高峰较小的进口道流量 repeated string inroadid_pair2 = 6; float Fa = 7; // 早高峰的潮汐指数 float Fb = 8; // 晚高峰的潮汐指数 int32 pair_mode = 9; // 早晚高峰的对向进口道模式,0:不确定, 1:相同, 2:相反 }; // 路口潮汐结构体 message xl_cross_tide_t { string crossid = 1; // 路口ID int32 daynum = 2; // 统计日期,yyyymmdd float tide_index = 3; // 潮汐系数,0表示无意义 bool is_tide = 4; // 是否发生潮汐现象 xl_cross_tide_detail_t detail = 5; // 计算过程数据,便于核查结果 }; // 路口巡检的整体指标 message xl_cross_inspection_index_t { xl_delayinfo_t day_index = 1; // 日报指标,for day_report xl_delayinfo_t week_index = 2; // 全周时段的指标,for week_report xl_delayinfo_t workday_index = 3; // 工作日时段的指标,for week_report xl_delayinfo_t weekend_index = 4; // 周末时段的指标,for week_report }; // 城市路口巡检报告 message xl_cross_report_t { int32 area_id = 1; // 辖区ID int32 citycode = 2; // 城市编码 int32 daynum = 3; // 统计日期,yyyymmdd int32 type = 4; // 报告类型,0表示日报,1表示周报 xl_cross_inspection_index_t job_index = 5; // 整体指标 xl_cross_inspection_index_t job_index_prev = 6; // 前一个周期的整体指标 repeated xl_cross_delayinfo_t all_crosstp_indexes = 7; // 整体指标 repeated xl_cross_delayinfo_t all_crosstp_indexes_prev = 8; // 整体指标 // 前一个周期的整体指标 // 以下是各类问题的结构体 repeated xl_cross_problem_t multi_park_crosses = 9; // 多次停车的路口 repeated xl_cross_problem_t bad_park_crosses = 10; // 停车次数多的路口 repeated xl_cross_problem_t inroad_imbalance_crosses = 11; // 进口道失衡的路口 repeated xl_cross_problem_t turn_imbalance_crosses = 12; // 转向失衡的路口 repeated xl_cross_tide_t tide_crosses = 13; // 潮汐路口 }; ///////////////////////////////////////////////////////////////////////////////// // 一个link的一个hts数据项 message rtt_tlink_hts_item_t { uint64 xlink_id = 1; // xlink_id,需要经过转换才能得到四维linkid uint32 tp = 2; // 一周内10分钟时段序号,取值0~1007 int32 speed = 3; // 速度,km/h int32 status = 4; // 状态, 取值:0,1,2 float fringe = 5; // 速度靠近状态边界的相对程度 int32 next_change_tp_num = 6; // 下次状态改变的tp个数 int32 sd = 7; // 速度标准差 }; // hts数据项数组,用于在一个消息 message rtt_tlink_hts_bkt_t { repeated rtt_tlink_hts_item_t hts_bkt = 1; }; // 经过link的车流计数信息 message rtt_link_car_flow_t { uint64 xlink_id = 1; int32 flow = 2; // 车流量 int32 orig_flow = 3; // 原始车流量 uint64 out_xlink_id = 4; // 下游路段的tlinkid int32 speed = 5; // 车流速度 } // 车流计数信息集合 message rtt_link_car_flow_bkt_t { repeated rtt_link_car_flow_t flow_bkt = 1; // 车流计数信息集合 } // 速度突变点信息:sop message rtt_speed_odd_point_t { int32 pos = 1; // 在link上相对起点的距离 uint32 odd_time = 2; // 速度变化的时刻 uint64 link_id = 3; // linkid, 包含dir,不是tlinkid uint32 lon = 4; // 轨迹点原始经度*10的6次方 uint32 lat = 5; // 轨迹点原始纬度*10的6次方 int32 direction = 6; // 方位角,取值[0,360) uint64 car_id = 7; // 车ID,当该字段被赋值时,表示单车速度变化点 int32 car_num = 8; // 发现sop的车辆个数 uint32 update_time = 9; // 事件被检测或发布的时刻 uint32 end_time = 10; // 预计事件消失的时刻 int32 citycode = 11; // 所属的城市编码 string detail = 12; // 传递一些额外的信息 } // 单个红绿灯时间片段 message rtt_rg_single_slice_t { sint32 phase = 1; // 1,0分别表示红灯和绿灯 int32 offset_start = 2; // 相对于计算时刻,时间片段起点时刻的偏移秒数 int32 offset_end = 3; // 相对于计算时刻,时间片段终点时刻的偏移秒数 int32 dist_to_light = 4; // 停车位置到信号灯的距离,单位:米 }; // 红绿灯快照:时间片段序列 message rtt_rg_slices_t { uint64 car_id = 1; // 车ID uint64 xlink_id = 2; // 紧挨着信号灯的xlink_id uint32 timestamp = 3; // 检测输出这个红绿时间片段序列的时间戳 repeated rtt_rg_single_slice_t slices = 4; // 多个红绿时间片段 uint64 out_xlink_id = 5; // 下游的第一个普通link的tlinkid int32 turn_type = 6; // 转向类型,现有取值:0,1,2,3分别表示:直行,左转,右转,掉头 }; // 一批红绿灯快照 message rtt_rg_slices_bkt_t { repeated rtt_rg_slices_t bkt = 1; };