Пример #1
0
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
Пример #2
0
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