def load_pace_vectors(dates, consistent_link_set): # Map (begin_node,connecting_node) --> ID in the pace vector link_id_map = defaultdict(lambda : -1) # -1 indicates an invalid ID number for i in xrange(len(consistent_link_set)): key = consistent_link_set[i] link_id_map[key] = i db_main.connect('db_functions/database.conf') vects = [] weights = [] for date in dates: # Initialize to zero vect = matrix(zeros((len(consistent_link_set), 1))) weight = matrix(zeros((len(consistent_link_set), 1))) # Get the travel times for this datetime curs = db_travel_times.get_travel_times_cursor(date) # Assign travel times into the vector, if this link is in the consistant link set for (begin_node_id, end_node_id, date_time, travel_time, num_trips) in curs: i = link_id_map[begin_node_id, end_node_id] # i will be -1 if the link is not in the consistant link set if(i>=0): vect[i] = travel_time weight[i] = num_trips vects.append(vect) weights.append(weight) db_main.close() return vects, weights
def compute_link_counts(dates): num_obs = defaultdict(float) num_appearances = defaultdict(float) db_main.connect('db_functions/database.conf') for date in dates: curs = db_travel_times.get_travel_times_cursor(date) for [begin_node_id, end_node_id, date_time, travel_time, num_trips] in curs: num_obs[begin_node_id, end_node_id] += num_trips num_appearances[begin_node_id, end_node_id] += 1 db_main.close() return num_obs, num_appearances