Commit de142ba3 authored by duanruiming's avatar duanruiming

[update] 交通大脑-统计数据优化交通指数优化,60自由流计算交通指数

parent ea2b3832
......@@ -52,7 +52,6 @@ public class LaneStatisticsReceive2CrossDataCoFlatMap implements CoFlatMapFuncti
po.setCrossId(crossId);
po.setStatus(1);
po.setType(1);
po.setTrafficIndex(1.0);
po.setStartTime(dateTime);
po.setDuration(5);
po.setIsUnbalance(0);
......@@ -69,6 +68,11 @@ public class LaneStatisticsReceive2CrossDataCoFlatMap implements CoFlatMapFuncti
if (speedAverage.isPresent()) {
po.setSpeed(speedAverage.getAsDouble());
}
if (po.getSpeed() > 0) {
po.setTrafficIndex(Math.round(60 / po.getSpeed() / dataList.size() * 100.0) / 100.0);
} else {
po.setTrafficIndex(1.0);
}
OptionalDouble queueLength = dataList.stream().map(LaneStatisticsDetail::getByQueueLen).mapToDouble(Double::parseDouble).max();
po.setQueueLength(0.0);
if (queueLength.isPresent()) {
......
......@@ -50,7 +50,6 @@ public class LaneStatisticsReceive2DirDataMap implements MapFunction<String, Str
po.setCrossId(crossId);
po.setLength(0.0);
po.setStatus(1);
po.setTrafficIndex(1.0);
po.setStartTime(dateTime);
int flowSum = dataList.stream().filter(po1 -> StringUtils.isNotBlank(po1.getWArrivalFlow())).map(LaneStatisticsDetail::getWArrivalFlow).mapToInt(Integer::parseInt).sum();
po.setFlow(flowSum);
......@@ -61,6 +60,11 @@ public class LaneStatisticsReceive2DirDataMap implements MapFunction<String, Str
if (speedAverage.isPresent()) {
po.setSpeed(speedAverage.getAsDouble());
}
if (po.getSpeed() > 0) {
po.setTrafficIndex(Math.round(60 / po.getSpeed() / dataList.size() * 100.0) / 100.0);
} else {
po.setTrafficIndex(1.0);
}
OptionalDouble queueLength = dataList.stream().map(LaneStatisticsDetail::getByQueueLen).mapToDouble(Double::parseDouble).max();
po.setQueueLength(0.0);
if (queueLength.isPresent()) {
......
......@@ -139,7 +139,12 @@ public class LaneStatisticsReceive2TurnDataMap implements MapFunction<String, St
realtimePO.setStartTime(startTime);
realtimePO.setFlow(dwLeftVehNum + dwRightVehNum + dwStraightVehNum);
realtimePO.setStatus(1);
realtimePO.setTrafficIndex(1.0);
// 默认自由流速度60km/h
if (speedAvg > 0) {
realtimePO.setTrafficIndex(Math.round(60 / speedAvg / dataList.size() * 100.0) / 100.0);
} else {
realtimePO.setTrafficIndex(1.0);
}
realtimePO.setSpeed(Math.round(speedAvg / dataList.size() * 100.0) / 100.0);
realtimePO.setQueueLength(byQueueLen);
realtimePO.setStopTimes(Math.round(byStoppingTimes / dataList.size() * 100.0) / 100.0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment