-
Notifications
You must be signed in to change notification settings - Fork 3
/
transform_travel_res.py
77 lines (55 loc) · 2.49 KB
/
transform_travel_res.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
72
73
74
75
76
import math
from datetime import datetime,timedelta
import numpy as np
travel_times = {}
def load_result(in_file):
in_file_name = in_file
fr = open(in_file_name, 'r')
fr.readline() # skip the header
traj_data = fr.readlines()
fr.close()
for i in xrange(len(traj_data)):
each_traj = traj_data[i].replace('"', '').split(',')
intersection_id = each_traj[0]
tollgate_id = each_traj[1]
interval_left = each_traj[2][1:]
start_time = datetime.strptime(interval_left, "%Y-%m-%d %H:%M:%S")
start_time_window = datetime(start_time.year, start_time.month, start_time.day, start_time.hour, start_time.minute, 0)
t_time = float(each_traj[-1])
route_id = intersection_id + '-' + tollgate_id
if route_id not in travel_times.keys():
travel_times[route_id] = {}
if start_time_window not in travel_times[route_id].keys():
travel_times[route_id][start_time_window] = [t_time]
else:
travel_times[route_id][start_time_window].append(t_time)
def create(example_file,out_file_name):
in_file_name = example_file
fr = open(in_file_name, 'r')
fr.readline() # skip the header
traj_data = fr.readlines()
fr.close()
fw = open(out_file_name, 'w')
fw.writelines(','.join(['intersection_id', 'tollgate_id', 'time_window', 'avg_travel_time']) + '\n')
for i in xrange(len(traj_data)):
each_traj = traj_data[i].replace('"', '').split(',')
intersection_id = each_traj[0]
tollgate_id = each_traj[1]
interval_left = each_traj[2][1:]
start_time = datetime.strptime(interval_left, "%Y-%m-%d %H:%M:%S")
start_time_window = datetime(start_time.year, start_time.month, start_time.day, start_time.hour, start_time.minute, 0)
start_time_window = start_time_window + timedelta(days=7)
end_time_window = start_time_window + timedelta(minutes=20)
route_id = intersection_id + '-' + tollgate_id
t_time = travel_times[route_id][start_time_window]
out_line = ','.join([intersection_id, tollgate_id, '"[' + str(start_time_window) + ',' + str(end_time_window) + ')"', str(t_time[0])]) + '\n'
fw.writelines(out_line)
fw.close()
def main():
in_file = 'my_travel_result.csv'
example_file = 'dataset/submission_sample_travelTime.csv'
out_file_name = 'submit_travel_result.csv'
load_result(in_file)
create(example_file,out_file_name)
if __name__ == '__main__':
main()