def carryMileageRate( roadmap, rategraph, length_attr='length', rate_attr='rate' ) :
    V = {}
    for road1, road2, data in rategraph.edges_iter( data=True ) :
        curr_rate = data.get( rate_attr )
        if curr_rate is None : continue
        curr_v = curr_rate * road_Ed.roadEd_conditional( roadmap, road1, road2, length_attr )
        V[ (road1,road2) ] = curr_v
        
    return sum( V.values() )
def demand_enroute_velocity( roadnet, rategraph, length='length', rate='rate' ) :
    """
    TODO: implement node <-> object checking
    """
    V = {}
    for road1, road2, data in rategraph.edges_iter( data=True ) :
        curr_rate = data.get( rate )
        if curr_rate is None : continue
        curr_v = curr_rate * road_Ed.roadEd_conditional( roadnet, road1, road2, length )
        V[ (road1,road2) ] = curr_v
        
    return sum( V.values() )