def LA_od_costs(factors, output, verbose=0):
    '''
    compute the OD costs for UE, SO, and UE-K
    where the cognitive cost is K=3000
    and with different demand: alpha * demand for demand in factors
    save OD costs into csv array with columns
    demand, X1_so, X1_ue_k, X1_ue, X2_so, X2_ue_k, X2_ue, ...
    '''
    net, demand, node, geom = load_LA_3()
    demand[:, 2] = demand[:, 2] / 4000.
    fs_so = np.loadtxt('data/LA/so_single_class.csv',
                       delimiter=',',
                       skiprows=1)
    fs_ue_k = np.loadtxt('data/LA/ue_k_single_class.csv',
                         delimiter=',',
                         skiprows=1)
    fs_ue = np.loadtxt('data/LA/ue_single_class.csv',
                       delimiter=',',
                       skiprows=1)
    costs = []
    for i in range(len(factors)):
        costs.append(cost(fs_so[:, i], net))
        costs.append(cost(fs_ue_k[:, i], net))
        costs.append(cost(fs_ue[:, i], net))
    free_flow_OD_costs(net, costs, demand, output, verbose)
def LA_OD_free_flow_costs(thres, cog_costs, output, verbose=0):
    '''
    computes OD costs (free-flow travel times) for non-routed users
    under different levels of cognitive costs for links with capacity under thres
    '''
    net, demand, node, geom = load_LA_3()
    costs = []
    for K in cog_costs:
        net2, small_capacity = multiply_cognitive_cost(net, geom, thres, K)
        costs.append(net2[:, 3])
    free_flow_OD_costs(net, costs, demand, output, verbose)
def LA_OD_free_flow_costs(thres, cog_costs, output, verbose=0):
    '''
    computes OD costs (free-flow travel times) for non-routed users
    under different levels of cognitive costs for links with capacity under thres
    '''
    net, demand, node, geom = load_LA_3()
    costs = []
    for K in cog_costs:
        net2, small_capacity = multiply_cognitive_cost(net, geom, thres, K)
        costs.append(net2[:,3])
    free_flow_OD_costs(net, costs, demand, output, verbose)
def LA_od_costs(factors, output, verbose=0):
    '''
    compute the OD costs for UE, SO, and UE-K 
    where the cognitive cost is K=3000
    and with different demand: alpha * demand for demand in factors
    save OD costs into csv array with columns
    demand, X1_so, X1_ue_k, X1_ue, X2_so, X2_ue_k, X2_ue, ...
    '''
    net, demand, node, geom = load_LA_3()
    demand[:,2] = demand[:,2] / 4000.
    fs_so = np.loadtxt('data/LA/so_single_class.csv', delimiter=',', skiprows=1)
    fs_ue_k = np.loadtxt('data/LA/ue_k_single_class.csv', delimiter=',', skiprows=1)
    fs_ue = np.loadtxt('data/LA/ue_single_class.csv', delimiter=',', skiprows=1)
    costs = []
    for i in range(len(factors)):
        costs.append(cost(fs_so[:,i],net))
        costs.append(cost(fs_ue_k[:,i],net))
        costs.append(cost(fs_ue[:,i],net))
    free_flow_OD_costs(net, costs, demand, output, verbose)