Example #1
0
def get_stops_data():
    """Return full stop times information."""
    stops = get_stops()
    trips = get_trips()
    routes_names = get_routes_names()

    stops_times_csv = load_csv(STATIC_STOP_TIMES_FILE)
    for stop_time in stops_times_csv:
        stop_id = stop_time["stop_id"]
        stop = stops[stop_id]
        if "arrivals" not in stop:
            stop["arrivals"] = []

        trip_id = stop_time["trip_id"]
        route_id = trips[trip_id]
        route_name = routes_names[route_id]
        arrival_time = stop_time["arrival_time"]

        stop["arrivals"].append({
            "route_name":
            route_name,
            "arrival_time":
            arrival_time,
            "arrival_time_integer":
            get_time_integer(arrival_time)
        })

    return stops
Example #2
0
def get_routes_trips():
    """Return list of trips for each route in Lviv."""
    trips_csv = load_csv(STATIC_TRIPS_FILE)

    routes_trips = collections.defaultdict(set)
    for trip in trips_csv:
        route_id = trip["route_id"]
        trip_id = trip["block_id"]
        routes_trips[route_id].add(trip_id)

    return routes_trips
Example #3
0
def get_trips():
    """Return trip_id and route_id mapping"""
    trips_csv = load_csv(STATIC_TRIPS_FILE)

    trips = {}
    for trip in trips_csv:
        trip_id = trip["trip_id"]
        route_id = trip["route_id"]

        trips[trip_id] = route_id

    return trips
Example #4
0
def get_routes():
    """Load csv file with static data for routes in Lviv."""
    agency_csv = load_csv(STATIC_AGENCY_FILE)
    routes_csv = load_csv(STATIC_ROUTES_FILE)

    agencies = {agency["agency_id"]: agency["agency_name"] for agency in agency_csv}
    routes = []
    for route in routes_csv:
        route_short_name = route["route_short_name"]
        route_type_short = re.sub(r"\d+", "", route_short_name)
        route_type = ROUTE_TYPE_MAP.get(route_type_short, "Інші")

        routes.append({
            "id": route["route_id"],
            "route_type": route_type,
            "short_name": route_short_name,
            "long_name": route["route_long_name"],
            "agency_id": route["agency_id"],
            "agency_name": agencies[route["agency_id"]],
            "trips": [],
        })

    return routes
Example #5
0
def get_stops():
    """Return stops information from static stops file."""
    stops_csv = load_csv(STATIC_STOPS_FILE)

    stops = {}
    for stop in stops_csv:
        stop_id = stop["stop_id"]
        stop_latitude = float(stop["stop_lat"])
        stop_longitude = float(stop["stop_lon"])
        stop_name = stop["stop_name"]
        stop_desc = stop["stop_desc"]

        stops[stop_id] = {
            "stop_name": stop_name,
            "stop_desc": stop_desc,
            "coordinates": [stop_latitude, stop_longitude]
        }

    return stops
Example #6
0
def get_stops_per_routes():
    """Return dict with data about count of stops per routes."""
    routes_trips = get_routes_trips()
    routes_names = get_routes_names()

    trips_map = {}
    for route, trips in routes_trips.items():
        trips_map.update({trip: route for trip in trips})

    stops = set()
    stop_times = load_csv(STATIC_STOP_TIMES_FILE)
    for stop_time in stop_times:
        trip_id = stop_time["trip_id"].split("_")[0]
        stop_id = stop_time["stop_id"]
        route_id = trips_map[trip_id]
        route_name = routes_names[route_id]
        stops.add((route_name, stop_id))

    routes = dict.fromkeys(routes_names.values(), 0)
    for route_name, stop_id in stops:
        routes[route_name] += 1

    stops_count = [{"id": k, "value": v} for k, v in routes.items()]
    return stops_count
Example #7
0
def get_routes_names():
    """Return short name for each route id."""
    routes_csv = load_csv(STATIC_ROUTES_FILE)

    return {route["route_id"]: route["route_short_name"] for route in routes_csv}