1 package org.opentrafficsim.kpi.sampling.indicator;
2
3 import java.util.List;
4
5 import org.djunits.value.vdouble.scalar.Speed;
6 import org.djunits.value.vdouble.scalar.Time;
7 import org.opentrafficsim.kpi.sampling.Query;
8 import org.opentrafficsim.kpi.sampling.TrajectoryGroup;
9
10
11
12
13
14
15
16
17
18
19
20
21 public class MeanSpeed extends AbstractIndicator<Speed>
22 {
23
24
25 private final TotalTravelDistance travelDistance;
26
27
28 private final TotalTravelTime travelTime;
29
30
31
32
33
34 public MeanSpeed(final TotalTravelDistance travelDistance, final TotalTravelTime travelTime)
35 {
36 this.travelDistance = travelDistance;
37 this.travelTime = travelTime;
38 }
39
40
41 @Override
42 public final Speed calculate(final Query query, final Time startTime, final Time endTime,
43 final List<TrajectoryGroup> trajectoryGroups)
44 {
45 return this.travelDistance.getValue(query, startTime, endTime, trajectoryGroups)
46 .divideBy(this.travelTime.getValue(query, startTime, endTime, trajectoryGroups));
47 }
48
49
50 @Override
51 @SuppressWarnings("checkstyle:designforextension")
52 public String toString()
53 {
54 return "MeanSpeed [travelDistance=" + this.travelDistance + ", travelTime=" + this.travelTime + "]";
55 }
56
57 }