-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnokia_trips_stats.py
71 lines (59 loc) · 3.77 KB
/
nokia_trips_stats.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import sys
curr_trip_time_deltas = []
curr_trip_distance_deltas = []
curr_trip_speed_deltas = []
curr_trip_acceleration_deltas = []
curr_trip_bearing_deltas = []
prev_provider_id = None
prev_probe_id = None
prev_trip_id = None
for trip_sample in sys.stdin:
curr_provider_id, curr_probe_id, curr_trip_id, time_delta, distance_delta, speed_delta, acceleration_delta, bearing_delta = trip_sample.strip("\n").split(" ")
time_delta = int(time_delta)
distance_delta = float(distance_delta)
speed_delta = float(speed_delta)
acceleration_delta = float(acceleration_delta)
bearing_delta = float(bearing_delta)
if ((prev_provider_id != None) and (prev_probe_id != None) and (prev_trip_id != None) and
((curr_provider_id != prev_provider_id) or (curr_probe_id != prev_probe_id) or (curr_trip_id != prev_trip_id))):
curr_trip_time_deltas.sort()
curr_trip_distance_deltas.sort()
curr_trip_speed_deltas.sort()
curr_trip_acceleration_deltas.sort()
curr_trip_bearing_deltas.sort()
sys.stdout.write(str(prev_provider_id) + " " +
str(prev_probe_id) + " " +
str(prev_trip_id) + " " +
str(curr_trip_time_deltas[len(curr_trip_time_deltas) / 2]) + " " + str(sum(curr_trip_time_deltas) / len(curr_trip_time_deltas)) + " " +
str(curr_trip_distance_deltas[len(curr_trip_distance_deltas) / 2]) + " " + str(sum(curr_trip_distance_deltas) / len(curr_trip_distance_deltas)) + " " +
str(curr_trip_speed_deltas[len(curr_trip_speed_deltas) / 2]) + " " + str(sum(curr_trip_speed_deltas) / len(curr_trip_speed_deltas)) + " " +
str(curr_trip_acceleration_deltas[len(curr_trip_acceleration_deltas) / 2]) + " " + str(sum(curr_trip_acceleration_deltas) / len(curr_trip_acceleration_deltas)) + " " +
str(curr_trip_bearing_deltas[len(curr_trip_bearing_deltas) / 2]) + " " + str(sum(curr_trip_bearing_deltas) / len(curr_trip_bearing_deltas)) + "\n")
sys.stdout.flush()
curr_trip_time_deltas = []
curr_trip_distance_deltas = []
curr_trip_speed_deltas = []
curr_trip_acceleration_deltas = []
curr_trip_bearing_deltas = []
curr_trip_time_deltas.append(time_delta)
curr_trip_distance_deltas.append(distance_delta)
curr_trip_speed_deltas.append(speed_delta)
curr_trip_acceleration_deltas.append(acceleration_delta)
curr_trip_bearing_deltas.append(bearing_delta)
prev_provider_id = curr_provider_id
prev_probe_id = curr_probe_id
prev_trip_id = curr_trip_id
curr_trip_time_deltas.sort()
curr_trip_distance_deltas.sort()
curr_trip_speed_deltas.sort()
curr_trip_acceleration_deltas.sort()
curr_trip_bearing_deltas.sort()
sys.stdout.write(str(prev_provider_id) + " " +
str(prev_probe_id) + " " +
str(prev_trip_id) + " " +
str(curr_trip_time_deltas[len(curr_trip_time_deltas) / 2]) + " " + str(sum(curr_trip_time_deltas) / len(curr_trip_time_deltas)) + " " +
str(curr_trip_distance_deltas[len(curr_trip_distance_deltas) / 2]) + " " + str(sum(curr_trip_distance_deltas) / len(curr_trip_distance_deltas)) + " " +
str(curr_trip_speed_deltas[len(curr_trip_speed_deltas) / 2]) + " " + str(sum(curr_trip_speed_deltas) / len(curr_trip_speed_deltas)) + " " +
str(curr_trip_acceleration_deltas[len(curr_trip_acceleration_deltas) / 2]) + " " + str(sum(curr_trip_acceleration_deltas) / len(curr_trip_acceleration_deltas)) + " " +
str(curr_trip_bearing_deltas[len(curr_trip_bearing_deltas) / 2]) + " " + str(sum(curr_trip_bearing_deltas) / len(curr_trip_bearing_deltas)) + "\n")
sys.stdout.flush()