LIS590DV Final Project - Group Athena

Part1 - Shapes with Route Colors

Author: Hui Lyu


In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
import matplotlib.patches as mpatches
import csv
from collections import Counter

In [2]:
%matplotlib inline

In [3]:
trips_df = pd.read_csv("GTFS Dataset/trips.csv")
routes_df = pd.read_csv("GTFS Dataset/routes.csv")
shapes_df = pd.read_csv("GTFS Dataset/shapes.csv")

In [4]:
routes_df[routes_df.route_id=='BRONZE YANKEE RIDGE']


Out[4]:
route_id agency_id route_short_name route_long_name route_desc route_type route_url route_color route_text_color
28 BRONZE YANKEE RIDGE CUMTD 8 Bronze Yankee Ridge NaN 3 NaN 9e8966 000000

In [5]:
exist = []
for k in np.arange(100):
    exist.append(routes_df[routes_df.route_id==np.unique(trips_df["route_id"])[k]][["route_id"]])

# There is a route which does not have any trip.
not_exist_route_id = 'BRONZE YANKEE RIDGE'

routes_df = routes_df[routes_df.route_id!='BRONZE YANKEE RIDGE']

In [6]:
len(np.unique(routes_df["route_color"]))


Out[6]:
21

In [7]:
Counter(routes_df["route_color"])


Out[7]:
Counter({'000000': 1,
         '006991': 8,
         '008063': 18,
         '2b3088': 1,
         '355caa': 1,
         '5a1d5a': 9,
         '808285': 8,
         '823822': 2,
         '825622': 2,
         '9e8966': 2,
         'a78bc0': 5,
         'b2d235': 4,
         'c7994a': 4,
         'cccccc': 7,
         'd1d3d4': 4,
         'eb008b': 5,
         'ed1c23': 1,
         'ed1c24': 1,
         'f99f2a': 3,
         'fcee1f': 13,
         'ffbfff': 1})

In [8]:
len(np.unique(shapes_df["shape_id"]))


Out[8]:
677

In [9]:
len(np.unique(trips_df["shape_id"]))


Out[9]:
677

In [10]:
len(np.unique(trips_df["trip_id"]))


Out[10]:
5498

In [11]:
# route_id -> route_color
route_color_dict = {}
for route in routes_df["route_id"]:
    route_color_dict[route]=routes_df[routes_df.route_id==route][["route_color"]]

route_color_dict


Out[11]:
{'1 YELLOW ALT':    route_color
 55      fcee1f, '10W GOLD ALT':    route_color
 77      c7994a, '1N YELLOW ALT':    route_color
 88      fcee1f, '1N YELLOW ALT PM':    route_color
 51      fcee1f, '1S YELLOW ALT':    route_color
 89      fcee1f, '3S LAVENDER ALT':    route_color
 11      a78bc0, '5E GREEN EXPRESS 1 ALT':   route_color
 9      008063, '5E GREEN EXPRESS ALT':    route_color
 22      008063, '5W GREEN ALT 2':    route_color
 39      008063, '5W GREEN EXPRESS 2':    route_color
 86      008063, '7E GREY ALT':    route_color
 48      808285, '7W GREY ALT':    route_color
 92      808285, 'BLUE':    route_color
 61      355caa, 'BRONZE':    route_color
 85      9e8966, 'BRONZE ALT':    route_color
 70      9e8966, 'BROWN':    route_color
 50      825622, 'BROWN ALT':    route_color
 36      823822, 'BROWN ALT PM':   route_color
 3      823822, 'BROWN ALT1':    route_color
 87      825622, 'GOLD':    route_color
 34      c7994a, 'GOLD ALT':   route_color
 0      c7994a, 'GOLDHOPPER':    route_color
 83      c7994a, 'GREEN':    route_color
 25      008063, 'GREEN ALT':    route_color
 57      008063, 'GREEN EVENING':    route_color
 60      008063, 'GREEN EVENING SATURDAY':   route_color
 5      008063, 'GREEN EXPRESS':    route_color
 96      008063, 'GREEN EXPRESS ALT':    route_color
 32      008063, 'GREEN LATE NIGHT':    route_color
 74      008063, 'GREEN LATE NIGHT SATURDAY':   route_color
 8      008063, 'GREEN LATE NIGHT SUNDAY':    route_color
 69      008063, 'GREEN SATURDAY':    route_color
 10      008063, 'GREEN SUNDAY':    route_color
 82      008063, 'GREENHOPPER':    route_color
 24      008063, 'GREENHOPPER EVENING':    route_color
 33      008063, 'GREENHOPPER EVENING SATURDAY':    route_color
 16      008063, 'GREY':    route_color
 47      808285, 'GREY ALT':   route_color
 6      808285, 'GREY EVENING':    route_color
 38      808285, 'GREY EVENING SATURDAY':    route_color
 42      808285, 'GREY SATURDAY':    route_color
 31      808285, 'GREY SUNDAY':    route_color
 75      808285, 'ILLINI':    route_color
 45      5a1d5a, 'ILLINI EVENING':    route_color
 91      5a1d5a, 'ILLINI EVENING SATURDAY':    route_color
 67      5a1d5a, 'ILLINI EVENING SUNDAY':    route_color
 15      5a1d5a, 'ILLINI LIMITED':    route_color
 49      5a1d5a, 'ILLINI LIMITED EVENING':    route_color
 79      5a1d5a, 'ILLINI LIMITED EVENING SATURDAY':    route_color
 73      5a1d5a, 'ILLINI LIMITED SATURDAY':     route_color
 100      5a1d5a, 'ILLINI LIMITED SUNDAY':    route_color
 46      5a1d5a, 'LAVENDER':    route_color
 95      a78bc0, 'LAVENDER ALT':    route_color
 19      a78bc0, 'LAVENDER SATURDAY':    route_color
 29      a78bc0, 'LAVENDER SUNDAY':    route_color
 27      a78bc0, 'LIME EVENING':    route_color
 99      b2d235, 'LIME EVENING SATURDAY':    route_color
 14      b2d235, 'LIME SATURDAY':    route_color
 64      b2d235, 'LIME SUNDAY':    route_color
 72      b2d235, 'NAVY':    route_color
 71      2b3088, 'ORANGE':    route_color
 53      f99f2a, 'ORANGE ALT':    route_color
 94      f99f2a, 'ORANGEHOPPER':    route_color
 43      f99f2a, 'PINK':    route_color
 37      ffbfff, 'RAVEN':    route_color
 90      000000, 'RED':    route_color
 21      ed1c24, 'RED SATURDAY':    route_color
 56      ed1c23, 'RUBY':    route_color
 44      eb008b, 'RUBY EVENING':    route_color
 81      eb008b, 'RUBY EVENING SATURDAY':    route_color
 41      eb008b, 'RUBY SATURDAY':   route_color
 1      eb008b, 'RUBY SUNDAY':    route_color
 26      eb008b, 'SILVER':    route_color
 40      cccccc, 'SILVER EVENING':    route_color
 68      cccccc, 'SILVER EVENING SATURDAY':    route_color
 80      cccccc, 'SILVER EVENING SUNDAY':    route_color
 13      cccccc, 'SILVER LATE NIGHT':    route_color
 76      cccccc, 'SILVER LIMITED EVENING':    route_color
 98      d1d3d4, 'SILVER LIMITED EVENING SATURDAY':    route_color
 62      d1d3d4, 'SILVER LIMITED SATURDAY':   route_color
 2      d1d3d4, 'SILVER LIMITED SUNDAY':    route_color
 12      d1d3d4, 'SILVER SATURDAY':    route_color
 84      cccccc, 'SILVER SUNDAY':    route_color
 23      cccccc, 'TEAL':    route_color
 93      006991, 'TEAL EVENING':    route_color
 66      006991, 'TEAL EVENING SATURDAY':    route_color
 65      006991, 'TEAL LATE NIGHT':    route_color
 52      006991, 'TEAL LATE NIGHT SATURDAY':    route_color
 30      006991, 'TEAL LATE NIGHT SUNDAY':   route_color
 7      006991, 'TEAL SATURDAY':    route_color
 18      006991, 'TEAL SUNDAY':    route_color
 78      006991, 'YELLOW':    route_color
 20      fcee1f, 'YELLOW EVENING':    route_color
 54      fcee1f, 'YELLOW EVENING SATURDAY':    route_color
 35      fcee1f, 'YELLOW LATE NIGHT':    route_color
 59      fcee1f, 'YELLOW LATE NIGHT SATURDAY':    route_color
 58      fcee1f, 'YELLOW LATE NIGHT SUNDAY':   route_color
 4      fcee1f, 'YELLOW SATURDAY':    route_color
 63      fcee1f, 'YELLOW SUNDAY':    route_color
 17      fcee1f, 'YELLOWHOPPER':    route_color
 97      fcee1f}

In [12]:
# shape_id -> route_id
shape_route_dict = {}
for shape in trips_df["shape_id"]:
    shape_route_dict[shape]=np.unique(trips_df[trips_df.shape_id==shape][["route_id"]])

In [13]:
shape_route_dict


Out[13]:
{'1 YELLOW ALT 25': array(['1 YELLOW ALT'], dtype=object),
 '100 LATE 3': array(['YELLOW LATE NIGHT'], dtype=object),
 '100 LATE 5': array(['YELLOW LATE NIGHT'], dtype=object),
 '100N': array(['YELLOW EVENING'], dtype=object),
 '100N->IT': array(['YELLOW EVENING'], dtype=object),
 '100N-LATE': array(['YELLOW LATE NIGHT'], dtype=object),
 '100NIT->': array(['YELLOW EVENING'], dtype=object),
 '100NLTNT->': array(['YELLOW LATE NIGHT'], dtype=object),
 '100S': array(['YELLOW EVENING'], dtype=object),
 '100S->PLAZA': array(['YELLOW EVENING'], dtype=object),
 '100SLTNT->': array(['YELLOW LATE NIGHT'], dtype=object),
 '10E': array(['GOLD'], dtype=object),
 '10W AMBP->LSG': array(['GOLD'], dtype=object),
 '10W GOLD ALT 1': array(['10W GOLD ALT'], dtype=object),
 '10WLSG->': array(['GOLD'], dtype=object),
 '10WSV1': array(['GOLD'], dtype=object),
 '120W TEAL LATE 12': array(['TEAL LATE NIGHT'], dtype=object),
 '12E TEAL 13': array(['TEAL'], dtype=object),
 '12E TEAL WEEKEND 13': array(['TEAL SATURDAY'], dtype=object),
 '12W TEAL 12': array(['TEAL'], dtype=object),
 '12W TEAL WEEKEND 12': array(['TEAL SATURDAY'], dtype=object),
 '130N SILVER EVENING 1': array(['SILVER EVENING'], dtype=object),
 '130N SILVER EVENING 2': array(['SILVER EVENING'], dtype=object),
 '130N SILVER LATE 1': array(['SILVER LATE NIGHT'], dtype=object),
 '130N SILVER WEEKEND 1': array(['SILVER SATURDAY'], dtype=object),
 '130N SILVER WEEKEND 2': array(['SILVER SATURDAY'], dtype=object),
 '130N SILVERLATE 2': array(['SILVER LATE NIGHT'], dtype=object),
 '130S SILVER EVENING 3': array(['SILVER EVENING'], dtype=object),
 '130S SILVER LATE 3': array(['SILVER LATE NIGHT'], dtype=object),
 '130S SILVER WEEKEND 3': array(['SILVER SATURDAY'], dtype=object),
 '1415': array(['5W GREEN EXPRESS 2'], dtype=object),
 '1420': array(['GREEN EXPRESS'], dtype=object),
 '1425': array(['5W GREEN EXPRESS 2'], dtype=object),
 '1505': array(['5W GREEN EXPRESS 2'], dtype=object),
 '1525': array(['5W GREEN EXPRESS 2'], dtype=object),
 '1N YELLOW 5': array(['YELLOW'], dtype=object),
 '1N YELLOW 9': array(['YELLOW'], dtype=object),
 '1S YELLOW 19': array(['YELLOW'], dtype=object),
 '20C GW->MP': array(['RED SATURDAY'], dtype=object),
 '20C PS->GW': array(['RED SATURDAY'], dtype=object),
 '20C->MP': array(['RED SATURDAY'], dtype=object),
 '20U ->IU': array(['RED SATURDAY'], dtype=object),
 '20U IT->PS': array(['RED SATURDAY'], dtype=object),
 '20U IU->PS': array(['RED SATURDAY'], dtype=object),
 '20U->PS': array(['RED SATURDAY'], dtype=object),
 '220N ILLINI 10': array(['ILLINI EVENING'], dtype=object),
 '220S ILLINI 20': array(['ILLINI EVENING'], dtype=object),
 '22N': array(['ILLINI LIMITED'], dtype=object),
 '22N 316': array(['ILLINI LIMITED EVENING'], dtype=object),
 '22N ILLINI 10': array(['ILLINI'], dtype=object),
 '22N ILLINI LIMITED WEEKEND': array(['ILLINI LIMITED SATURDAY'], dtype=object),
 '22S ILLINI 20': array(['ILLINI'], dtype=object),
 '22S ILLINI 21': array(['ILLINI'], dtype=object),
 '30NCMBLQ->BB': array(['LAVENDER SATURDAY'], dtype=object),
 '30NIT->BB': array(['LAVENDER SATURDAY'], dtype=object),
 '30NIT->CMBLQN': array(['LAVENDER SATURDAY'], dtype=object),
 '30SBB->IT': array(['LAVENDER SATURDAY'], dtype=object),
 '3N': array(['LAVENDER'], dtype=object),
 '3S ALT 1': array(['3S LAVENDER ALT'], dtype=object),
 '3S->IT': array(['LAVENDER'], dtype=object),
 '4E->GRNWRT:5': array(['BLUE'], dtype=object),
 '4W': array(['BLUE'], dtype=object),
 '4W BLUE ALT 1': array(['1S YELLOW ALT'], dtype=object),
 '4W BLUE ALT PM 1440': array(['1N YELLOW ALT PM'], dtype=object),
 '4W BLUE ALT PM 310': array(['1N YELLOW ALT PM'], dtype=object),
 '4W BLUE ALT ]2': array(['1S YELLOW ALT'], dtype=object),
 '50E GREEN 53': array(['GREEN EVENING'], dtype=object),
 '50E HOPPER 102': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 '50E HOPPER 103': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 '50E->50WLNIGHT': array(['GREEN LATE NIGHT'], dtype=object),
 '50E->MNBDY': array(['GREEN SATURDAY'], dtype=object),
 '50E->PC': array(['GREEN SATURDAY'], dtype=object),
 '50E-WKND-HP->CF': array(['GREEN SATURDAY'], dtype=object),
 '50ELTNT->': array(['GREEN LATE NIGHT'], dtype=object),
 '50W GREEN 55': array(['GREEN EVENING'], dtype=object),
 '50W GREEN 57': array(['GREEN EVENING'], dtype=object),
 '50W GREEN 59': array(['GREEN EVENING'], dtype=object),
 '50W HOPPER 104': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 '50W HOPPER 105': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 '50W-LATE': array(['GREEN LATE NIGHT'], dtype=object),
 '50WLTNT->': array(['GREEN LATE NIGHT'], dtype=object),
 '5E': array(['GREEN'], dtype=object),
 '5E EXP 1 ALT': array(['5E GREEN EXPRESS 1 ALT'], dtype=object),
 '5E EXP->IU': array(['GREEN EXPRESS'], dtype=object),
 '5E GREEN EXP 1': array(['5E GREEN EXPRESS ALT'], dtype=object),
 '5E GREEN EXP 2': array(['5E GREEN EXPRESS ALT'], dtype=object),
 '5E HOPPER 79': array(['GREENHOPPER'], dtype=object),
 '5E NO CSQ': array(['GREEN'], dtype=object),
 '5E->IU': array(['GREEN'], dtype=object),
 '5EIU->LS': array(['GREEN'], dtype=object),
 '5ETOCF': array(['GREEN'], dtype=object),
 '5ETOCF->': array(['GREEN'], dtype=object),
 '5EX->VET': array(['GREEN EXPRESS'], dtype=object),
 '5W CCSJ SG': array(['GREEN'], dtype=object),
 '5W HOPPER 80': array(['GREENHOPPER'], dtype=object),
 '5W HOPPER 81': array(['GREENHOPPER'], dtype=object),
 '5W HOPPER 83': array(['GREENHOPPER'], dtype=object),
 '5W HOPPER 84': array(['GREENHOPPER'], dtype=object),
 '5W HOPPER 85': array(['GREENHOPPER'], dtype=object),
 '5W->740': array(['GREEN'], dtype=object),
 '5W->IUE': array(['GREEN'], dtype=object),
 '5W-AM': array(['GREEN'], dtype=object),
 '5W-AM640': array(['GREEN'], dtype=object),
 '5W-AMIUE->': array(['GREEN'], dtype=object),
 '5W-AMMNLRMN': array(['GREEN'], dtype=object),
 '5W-PM': array(['GREEN'], dtype=object),
 '5W-PMFLPHILO->': array(['GREEN'], dtype=object),
 '5W-PMLSE->': array(['GREEN'], dtype=object),
 '5W740->': array(['GREEN'], dtype=object),
 '5WCF': array(['GREEN'], dtype=object),
 '5WIUE->': array(['GREEN'], dtype=object),
 '5WLSE->': array(['GREEN'], dtype=object),
 '5WPM->LSE': array(['GREEN'], dtype=object),
 '5WPM->LSE ONLY': array(['GREEN'], dtype=object),
 '5WPMIT->': array(['GREEN'], dtype=object),
 '5WPMLSE->IT': array(['GREEN'], dtype=object),
 '5WX->CF': array(['GREEN EXPRESS'], dtype=object),
 '5WXCF->': array(['GREEN EXPRESS'], dtype=object),
 '5WXIUE->DNST': array(['GREEN EXPRESS'], dtype=object),
 '5WXPM': array(['GREEN EXPRESS'], dtype=object),
 '6WIT->CF HOPPER': array(['ORANGEHOPPER'], dtype=object),
 '70E': array(['GREY EVENING'], dtype=object),
 '70E->50WLATE': array(['GREY EVENING'], dtype=object),
 '70E->LSG': array(['GREY EVENING'], dtype=object),
 '70E-WKND': array(['GREY SUNDAY'], dtype=object),
 '70W': array(['GREY EVENING'], dtype=object),
 '70W-WKND': array(['GREY SUNDAY'], dtype=object),
 '70WIT->CF': array(['GREY SUNDAY'], dtype=object),
 '7E': array(['GREY'], dtype=object),
 '7E ALT 2': array(['5W GREEN ALT 2'], dtype=object),
 '7E GREY ALT 1': array(['7E GREY ALT'], dtype=object),
 '7E GREY ALT 5': array(['7E GREY ALT'], dtype=object),
 '7E->740': array(['GREY'], dtype=object),
 '7E->LSG': array(['GREY'], dtype=object),
 '7E5THBRAD->': array(['GREY'], dtype=object),
 '7E740->': array(['GREY'], dtype=object),
 '7EIT->': array(['GREY'], dtype=object),
 '7W': array(['GREY'], dtype=object),
 '7W GREY ALT 1': array(['7W GREY ALT'], dtype=object),
 '7W->LSE': array(['GREY'], dtype=object),
 '7WLSE->': array(['GREY'], dtype=object),
 '8E': array(['BRONZE'], dtype=object),
 '8W': array(['BRONZE'], dtype=object),
 '8W BRONZE 5': array(['BRONZE'], dtype=object),
 'BLUE 3': array(['BLUE'], dtype=object),
 'BLUE 51': array(['BLUE'], dtype=object),
 'BRONZE 6': array(['BRONZE'], dtype=object),
 'GN1PO': array(['GREEN'], dtype=object),
 'GN1SATPO': array(['GREEN SATURDAY'], dtype=object),
 'GN1SUNPO': array(['GREEN SATURDAY'], dtype=object),
 'GN2PO': array(['GREEN'], dtype=object),
 'GN3SUNPO': array(['GREY SUNDAY'], dtype=object),
 'GN4 SU PO': array(['GREY SUNDAY'], dtype=object),
 'GN7PO-': array(['GREEN'], dtype=object),
 'GNX2PO': array(['LAVENDER'], dtype=object),
 'GOLD 11': array(['GOLD'], dtype=object),
 'GOLD 14': array(['GOLD'], dtype=object),
 'GOLD 16': array(['GOLD'], dtype=object),
 'GOLD 161': array(['GOLD'], dtype=object),
 'GOLD 19': array(['GOLD'], dtype=object),
 'GOLD 21': array(['GOLD'], dtype=object),
 'GOLD 25': array(['GOLD'], dtype=object),
 'GOLD 26': array(['GOLD'], dtype=object),
 'GOLD 27': array(['GOLD'], dtype=object),
 'GOLD 421': array(['GOLD'], dtype=object),
 'GOLD 422': array(['GOLD'], dtype=object),
 'GOLD 423': array(['GOLD'], dtype=object),
 'GOLD 424': array(['GOLD'], dtype=object),
 'GOLD 425': array(['GOLD'], dtype=object),
 'GOLD 45': array(['GOLD'], dtype=object),
 'GOLD 46': array(['GOLD'], dtype=object),
 'GOLD 553': array(['GOLD'], dtype=object),
 'GOLD 673': array(['GOLD'], dtype=object),
 'GOLD 72': array(['GOLD'], dtype=object),
 'GOLD 89': array(['GOLD'], dtype=object),
 'GOLD 90': array(['GOLD'], dtype=object),
 'GOLDHOPPER 1': array(['GOLDHOPPER'], dtype=object),
 'GOLDHOPPER 2': array(['GOLDHOPPER'], dtype=object),
 'GOLDHOPPER 9': array(['GOLDHOPPER'], dtype=object),
 'GR2PO': array(['ILLINI LIMITED SATURDAY'], dtype=object),
 'GR4PO': array(['GREY'], dtype=object),
 'GREEN 30': array(['GREEN'], dtype=object),
 'GREEN 37': array(['GREEN'], dtype=object),
 'GREEN 525': array(['GREEN'], dtype=object),
 'GREEN 893': array(['GREEN'], dtype=object),
 'GREEN 894': array(['GREEN'], dtype=object),
 'GREEN 905': array(['GREEN'], dtype=object),
 'GREEN 907': array(['GREEN'], dtype=object),
 'GREEN EV 72': array(['GREEN EVENING'], dtype=object),
 'GREEN EVENING 39': array(['GREEN EVENING'], dtype=object),
 'GREEN EVENING 52': array(['GREEN EVENING'], dtype=object),
 'GREEN EX 1': array(['GREEN EXPRESS'], dtype=object),
 'GREEN EX 27': array(['GREEN EXPRESS'], dtype=object),
 'GREEN EX 49': array(['GREEN EXPRESS'], dtype=object),
 'GREEN WEEKEND 23': array(['GREEN SATURDAY'], dtype=object),
 'GREEN WEEKEND 44': array(['GREEN SATURDAY'], dtype=object),
 'GREENHOPPER 89': array(['GREENHOPPER'], dtype=object),
 'GREENHOPPER WEEKEND 07': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 'GREENHOPPER WEEKEND 106': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 'GREY 580': array(['GREY'], dtype=object),
 'GREY 582': array(['GREY'], dtype=object),
 'HOPPER EV 107': array(['GREENHOPPER EVENING'], dtype=object),
 'HOPPER EV 108': array(['GREENHOPPER EVENING'], dtype=object),
 'HOPPER EV 62': array(['GREENHOPPER EVENING'], dtype=object),
 'HOPPER EV 63': array(['GREENHOPPER EVENING'], dtype=object),
 'ILLINI 34': array(['ILLINI'], dtype=object),
 'ILLINI 46': array(['ILLINI'], dtype=object),
 'ILLINI 47': array(['ILLINI'], dtype=object),
 'ILLINI 845': array(['ILLINI LIMITED'], dtype=object),
 'ILLINI 845 315': array(['ILLINI LIMITED EVENING'], dtype=object),
 'ILLINI EV 25': array(['ILLINI EVENING'], dtype=object),
 'ILLINI LIMITED WEEKEND 845': array(['ILLINI LIMITED SATURDAY'], dtype=object),
 'L1SATPO': array(['LAVENDER SATURDAY'], dtype=object),
 'L2SATPO': array(['LAVENDER SATURDAY'], dtype=object),
 'LAVENDER 2': array(['LAVENDER'], dtype=object),
 'NAVY 1': array(['NAVY'], dtype=object),
 'NAVY 2': array(['NAVY'], dtype=object),
 'NAVY 48': array(['NAVY'], dtype=object),
 'NAVY 49': array(['NAVY'], dtype=object),
 'NAVY 5': array(['NAVY'], dtype=object),
 'NAVY 50': array(['NAVY'], dtype=object),
 'OD1PO': array(['LAVENDER'], dtype=object),
 'ORANGEHOPPER 11': array(['ORANGEHOPPER'], dtype=object),
 'ORB4PO': array(['LAVENDER'], dtype=object),
 'R1SATPO': array(['RED SATURDAY'], dtype=object),
 'R2SATPO': array(['RED SATURDAY'], dtype=object),
 'R3SATPO': array(['RED SATURDAY'], dtype=object),
 'RED 1': array(['RED'], dtype=object),
 'RED 13': array(['RED'], dtype=object),
 'RED 17': array(['RED'], dtype=object),
 'RED 2': array(['RED'], dtype=object),
 'RED 3': array(['RED'], dtype=object),
 'RED 4': array(['RED'], dtype=object),
 'RED 6': array(['RED'], dtype=object),
 'RED 7': array(['RED'], dtype=object),
 'RED 8': array(['RED'], dtype=object),
 'RED 9': array(['RED'], dtype=object),
 'S2PO': array(['GREY'], dtype=object),
 'SILVER 120': array(['SILVER'], dtype=object),
 'SILVER 121': array(['SILVER EVENING'], dtype=object),
 'SILVER 2': array(['SILVER'], dtype=object),
 'SILVER 42': array(['SILVER'], dtype=object),
 'SILVER 43': array(['SILVER'], dtype=object),
 'SILVER LATE 30': array(['SILVER LATE NIGHT'], dtype=object),
 'SILVER WEEKEND 31': array(['SILVER SATURDAY'], dtype=object),
 'SILVER WEEKEND 42': array(['SILVER SATURDAY'], dtype=object),
 'TEAL 23': array(['TEAL'], dtype=object),
 'TEAL 24': array(['TEAL'], dtype=object),
 'TEAL 25': array(['TEAL'], dtype=object),
 'TEAL 26': array(['TEAL'], dtype=object),
 'TEAL 27': array(['TEAL'], dtype=object),
 'TEAL 34': array(['TEAL'], dtype=object),
 'TEAL 35': array(['TEAL'], dtype=object),
 'TEAL 45': array(['TEAL'], dtype=object),
 'TEAL 98': array(['TEAL'], dtype=object),
 'TEAL 99': array(['TEAL'], dtype=object),
 'TEAL EVENING 12': array(['TEAL EVENING'], dtype=object),
 'TEAL EVENING 13': array(['TEAL EVENING'], dtype=object),
 'TEAL EVENING 14': array(['TEAL EVENING'], dtype=object),
 'TEAL LATE 14': array(['TEAL LATE NIGHT'], dtype=object),
 'TEAL WEEKEND 16': array(['TEAL SATURDAY'], dtype=object),
 'TEAL WEEKEND 45': array(['TEAL SATURDAY'], dtype=object),
 'YELLOW 10': array(['YELLOW'], dtype=object),
 'YELLOW 11': array(['YELLOW'], dtype=object),
 'YELLOW 13': array(['YELLOW'], dtype=object),
 'YELLOW 14': array(['YELLOW'], dtype=object),
 'YELLOW 15': array(['YELLOW'], dtype=object),
 'YELLOW 29': array(['YELLOW'], dtype=object),
 'YELLOW 4': array(['YELLOW'], dtype=object),
 'YELLOW 50': array(['YELLOW'], dtype=object),
 'YELLOW 51': array(['YELLOW'], dtype=object),
 'YELLOW 52': array(['YELLOW'], dtype=object),
 'YELLOW 6': array(['YELLOW'], dtype=object),
 'YELLOW 62': array(['YELLOW'], dtype=object),
 'YELLOW 7': array(['YELLOW'], dtype=object),
 'YELLOWHOPPER 17': array(['YELLOWHOPPER'], dtype=object),
 'YELLOWHOPPER 23': array(['YELLOWHOPPER'], dtype=object),
 'YELLOWHOPPER 25': array(['YELLOWHOPPER'], dtype=object),
 'YELLOWHOPPER 26': array(['YELLOWHOPPER'], dtype=object),
 '[@124.0.92229742@]12E TEAL WEEKEND 13': array(['TEAL SUNDAY'], dtype=object),
 '[@124.0.92229742@]12W TEAL WEEKEND 12': array(['TEAL SUNDAY'], dtype=object),
 '[@124.0.92229742@]TEAL WEEKEND 16': array(['TEAL SUNDAY'], dtype=object),
 '[@124.0.92229742@]TEAL WEEKEND 45': array(['TEAL SUNDAY'], dtype=object),
 '[@124.0.92234822@]1': array(['RUBY SUNDAY'], dtype=object),
 '[@124.0.92234822@]19': array(['RUBY SUNDAY'], dtype=object),
 '[@124.0.92234822@]2': array(['RUBY SUNDAY'], dtype=object),
 '[@124.0.92234822@]3': array(['RUBY SUNDAY'], dtype=object),
 '[@124.0.92236898@]100N': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]100N->IT': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]100NGRNWRT->': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]100S': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]100S->1STGRG': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]100SPLAZA->': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]483': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]485': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]Y1SATPO': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92236898@]Y2SUNPO': array(['YELLOW SUNDAY'], dtype=object),
 '[@124.0.92241454@]4': array(['SILVER LIMITED SUNDAY'], dtype=object),
 '[@124.0.92241454@]5': array(['SILVER LIMITED SUNDAY'], dtype=object),
 '[@124.0.92241454@]7': array(['SILVER LIMITED SUNDAY'], dtype=object),
 '[@124.0.92244155@]22N ILLINI LIMITED WEEKEND': array(['ILLINI LIMITED SUNDAY'], dtype=object),
 '[@124.0.92244155@]5': array(['ILLINI LIMITED SUNDAY'], dtype=object),
 '[@124.0.92244155@]ILLINI LIMITED WEEKEND 845': array(['ILLINI LIMITED SUNDAY'], dtype=object),
 '[@124.0.92246230@]1': array(['RUBY EVENING SATURDAY'], dtype=object),
 '[@124.0.92246230@]2': array(['RUBY EVENING SATURDAY'], dtype=object),
 '[@124.0.92246230@]4': array(['RUBY EVENING SATURDAY'], dtype=object),
 '[@124.0.92247832@]100N': array(['YELLOW EVENING SATURDAY'], dtype=object),
 '[@124.0.92247832@]100N->IT': array(['YELLOW EVENING SATURDAY'], dtype=object),
 '[@124.0.92247832@]100S': array(['YELLOW EVENING SATURDAY'], dtype=object),
 '[@124.0.92247832@]100S->1STGRG': array(['YELLOW EVENING SATURDAY'], dtype=object),
 '[@124.0.92247832@]100S->PLAZA': array(['YELLOW EVENING SATURDAY'], dtype=object),
 '[@124.0.92247832@]9': array(['YELLOW EVENING SATURDAY'], dtype=object),
 '[@124.0.92254999@]43': array(['LIME EVENING SATURDAY'], dtype=object),
 '[@124.0.92254999@]45': array(['LIME EVENING SATURDAY'], dtype=object),
 '[@124.0.92254999@]46': array(['LIME EVENING SATURDAY'], dtype=object),
 '[@124.0.92254999@]51': array(['LIME EVENING SATURDAY'], dtype=object),
 '[@124.0.92260187@]220N ILLINI 10': array(['ILLINI EVENING SATURDAY'], dtype=object),
 '[@124.0.92260187@]220S ILLINI 20': array(['ILLINI EVENING SATURDAY'], dtype=object),
 '[@124.0.92260187@]24': array(['ILLINI EVENING SATURDAY'], dtype=object),
 '[@124.0.92260187@]ILLINI EV 25': array(['ILLINI EVENING SATURDAY'], dtype=object),
 '[@124.0.92263401@]220N ILLINI 10': array(['ILLINI EVENING SUNDAY'], dtype=object),
 '[@124.0.92263401@]220S ILLINI 20': array(['ILLINI EVENING SUNDAY'], dtype=object),
 '[@124.0.92263401@]24': array(['ILLINI EVENING SUNDAY'], dtype=object),
 '[@124.0.92263401@]ILLINI EV 25': array(['ILLINI EVENING SUNDAY'], dtype=object),
 '[@124.0.92275054@]120E TEAL LATE 13': array(['TEAL LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92275054@]120W TEAL LATE 12': array(['TEAL LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92275054@]TEAL LATE 14': array(['TEAL LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92276155@]120E TEAL LATE 13': array(['TEAL LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92276155@]120W TEAL LATE 12': array(['TEAL LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92276155@]TEAL LATE 14': array(['TEAL LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92279199@]TEAL EVENING 12': array(['TEAL EVENING SATURDAY'], dtype=object),
 '[@124.0.92279199@]TEAL EVENING 13': array(['TEAL EVENING SATURDAY'], dtype=object),
 '[@124.0.92279199@]TEAL EVENING 14': array(['TEAL EVENING SATURDAY'], dtype=object),
 '[@124.0.92281033@]130N SILVER WEEKEND 1': array(['SILVER SUNDAY'], dtype=object),
 '[@124.0.92281033@]130N SILVER WEEKEND 2': array(['SILVER SUNDAY'], dtype=object),
 '[@124.0.92281033@]130S SILVER WEEKEND 3': array(['SILVER SUNDAY'], dtype=object),
 '[@124.0.92281033@]SILVER WEEKEND 31': array(['SILVER SUNDAY'], dtype=object),
 '[@124.0.92281033@]SILVER WEEKEND 42': array(['SILVER SUNDAY'], dtype=object),
 '[@124.0.92281033@]SILVER WEEKEND 43': array(['SILVER SUNDAY'], dtype=object),
 '[@124.0.92284627@]130N SILVER EVENING 1': array(['SILVER EVENING SATURDAY'], dtype=object),
 '[@124.0.92284627@]130N SILVER EVENING 2': array(['SILVER EVENING SATURDAY'], dtype=object),
 '[@124.0.92284627@]130S SILVER EVENING 3': array(['SILVER EVENING SATURDAY'], dtype=object),
 '[@124.0.92284627@]SILVER 121': array(['SILVER EVENING SATURDAY'], dtype=object),
 '[@124.0.92286725@]130N SILVER EVENING 1': array(['SILVER EVENING SUNDAY'], dtype=object),
 '[@124.0.92286725@]130N SILVER EVENING 2': array(['SILVER EVENING SUNDAY'], dtype=object),
 '[@124.0.92286725@]130S SILVER EVENING 3': array(['SILVER EVENING SUNDAY'], dtype=object),
 '[@124.0.92286725@]SILVER 121': array(['SILVER EVENING SUNDAY'], dtype=object),
 '[@124.0.92311676@]32': array(['GREEN EVENING SATURDAY'], dtype=object),
 '[@124.0.92311676@]50E GREEN 53': array(['GREEN EVENING SATURDAY'], dtype=object),
 '[@124.0.92311676@]50W GREEN 59': array(['GREEN EVENING SATURDAY'], dtype=object),
 '[@124.0.92311676@]71': array(['GREEN EVENING SATURDAY'], dtype=object),
 '[@124.0.92311676@]GREEN EV 61': array(['GREEN EVENING SATURDAY'], dtype=object),
 '[@124.0.92311676@]GREEN EVENING 39': array(['GREEN EVENING SATURDAY'], dtype=object),
 '[@124.0.92319406@]1': array(['GREY EVENING SATURDAY'], dtype=object),
 '[@124.0.92319406@]20': array(['GREY EVENING SATURDAY'], dtype=object),
 '[@124.0.92319406@]4': array(['GREY EVENING SATURDAY'], dtype=object),
 '[@124.0.92319406@]7': array(['GREY EVENING SATURDAY'], dtype=object),
 '[@124.0.92319406@]9': array(['GREY EVENING SATURDAY'], dtype=object),
 '[@124.0.92327957@]100 LATE 3': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92327957@]100 LATE 4': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92327957@]100 LATE 5': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92327957@]100N-LATE': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92327957@]100NLTNT->': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92327957@]100SLTNT->': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92327957@]32': array(['YELLOW LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92330667@]100 LATE 3': array(['YELLOW LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92330667@]100 LATE 4': array(['YELLOW LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92330667@]100 LATE 5': array(['YELLOW LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92330667@]100NLTNT->': array(['YELLOW LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92330667@]100SLTNT->': array(['YELLOW LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92334988@]1': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]219': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]395': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]397': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]50E->LS': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]50E->PC': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]50W-WKND': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]50W-WKND->IT': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]GN1SUNPO': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]GN4SUNPO': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]GN5SUNPO': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92334988@]GREEN WEEKEND 32': array(['GREEN SUNDAY'], dtype=object),
 '[@124.0.92344750@]50E->50WLNIGHT': array(['GREEN LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92344750@]50E-LATE': array(['GREEN LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92344750@]50W-LATE': array(['GREEN LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92344750@]50WLTNT->': array(['GREEN LATE NIGHT SATURDAY'], dtype=object),
 '[@124.0.92345918@]50E-LATE': array(['GREEN LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92345918@]50W-LATE': array(['GREEN LATE NIGHT SUNDAY'], dtype=object),
 '[@124.0.92348983@]22N 316': array(['ILLINI LIMITED EVENING SATURDAY'], dtype=object),
 '[@124.0.92348983@]ILLINI 845 315': array(['ILLINI LIMITED EVENING SATURDAY'], dtype=object),
 '[@124.0.92350475@]2': array(['SILVER LIMITED EVENING SATURDAY'], dtype=object),
 '[@124.0.92350475@]3': array(['SILVER LIMITED EVENING SATURDAY'], dtype=object),
 '[@14.0.51708617@]32': array(['YELLOW'], dtype=object),
 '[@14.0.56288268@]341': array(['BLUE'], dtype=object),
 '[@14.0.56288340@]23': array(['YELLOW EVENING'], dtype=object),
 '[@14.0.56288404@]14': array(['RED'], dtype=object),
 '[@14.0.56288404@]21': array(['RED'], dtype=object),
 '[@14.0.56288404@]24': array(['RED'], dtype=object),
 '[@14.0.56288404@]31': array(['RED'], dtype=object),
 '[@14.0.56288404@]32': array(['RED'], dtype=object),
 '[@14.0.56288404@]33': array(['RED'], dtype=object),
 '[@14.0.56288404@]40': array(['RED'], dtype=object),
 '[@14.0.56288404@]42': array(['RED'], dtype=object),
 '[@14.0.56288404@]45': array(['RED'], dtype=object),
 '[@14.0.56288404@]5': array(['RED'], dtype=object),
 '[@14.0.56288498@]24': array(['ILLINI EVENING'], dtype=object),
 '[@14.0.56288722@]18': array(['YELLOW'], dtype=object),
 '[@14.0.56288722@]34': array(['YELLOW'], dtype=object),
 '[@14.0.56288722@]35': array(['YELLOW'], dtype=object),
 '[@14.0.56288722@]36': array(['YELLOW'], dtype=object),
 '[@14.0.56288722@]64': array(['YELLOW'], dtype=object),
 '[@14.0.56288947@]26': array(['5E GREEN EXPRESS 1 ALT'], dtype=object),
 '[@14.0.56289002@]26': array(['1 YELLOW ALT'], dtype=object),
 '[@14.0.56289035@]63': array(['GREEN EXPRESS'], dtype=object),
 '[@14.0.57586460@]38': array(['LIME SATURDAY'], dtype=object),
 '[@14.0.57766396@]100N': array(['YELLOW SATURDAY'], dtype=object),
 '[@14.0.57766396@]100NGRNWRT->': array(['YELLOW SATURDAY'], dtype=object),
 '[@14.0.57766396@]100NY1': array(['YELLOW SATURDAY'], dtype=object),
 '[@14.0.57766396@]100S': array(['YELLOW SATURDAY'], dtype=object),
 '[@14.0.57766396@]100S->BRWSWDFLD': array(['YELLOW SATURDAY'], dtype=object),
 '[@14.0.57766396@]Y1SATPO': array(['YELLOW SATURDAY'], dtype=object),
 '[@14.0.57766396@]Y3SATPO': array(['YELLOW SATURDAY'], dtype=object),
 '[@15.0.59410957@]1': array(['BROWN ALT'], dtype=object),
 '[@15.0.59410957@]2': array(['BROWN ALT'], dtype=object),
 '[@15.0.60390798@]11': array(['BROWN ALT'], dtype=object),
 '[@15.0.60391334@]37': array(['LIME EVENING'], dtype=object),
 '[@15.0.60391486@]2': array(['7E GREY ALT'], dtype=object),
 '[@15.0.61662606@]1': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]11': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]114': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]133': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]136': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]137': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]138': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]140': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]364': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]366': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]574': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]590': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]591': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]593': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]690': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]694': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]706': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]714': array(['BROWN'], dtype=object),
 '[@15.0.61662606@]754': array(['BROWN'], dtype=object),
 '[@15.0.61734120@]1': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.61734120@]2': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.61734120@]215': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.61734120@]225': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.61734120@]240': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.61734120@]316': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.61734120@]335': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.63188916@]15': array(['GREEN SATURDAY'], dtype=object),
 '[@15.0.63189004@]23': array(['YELLOW'], dtype=object),
 '[@15.0.63189004@]25': array(['YELLOW'], dtype=object),
 '[@15.0.63189099@]29': array(['YELLOWHOPPER'], dtype=object),
 '[@15.0.63189138@]10': array(['YELLOW EVENING'], dtype=object),
 '[@15.0.63189138@]25': array(['YELLOW EVENING'], dtype=object),
 '[@15.0.63189138@]8': array(['YELLOW EVENING'], dtype=object),
 '[@15.0.63189138@]9': array(['YELLOW EVENING'], dtype=object),
 '[@15.0.63189208@]3': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 '[@15.0.63191692@]369': array(['GOLD'], dtype=object),
 '[@15.0.63191692@]370': array(['GOLD'], dtype=object),
 '[@15.0.63191692@]43': array(['GOLD'], dtype=object),
 '[@15.0.63191892@]26': array(['3S LAVENDER ALT'], dtype=object),
 '[@15.0.63192037@]1': array(['BRONZE'], dtype=object),
 '[@15.0.63192037@]3': array(['BRONZE'], dtype=object),
 '[@15.0.63192037@]4': array(['BRONZE'], dtype=object),
 '[@15.0.63192099@]7': array(['YELLOW LATE NIGHT'], dtype=object),
 '[@15.0.63192124@]23': array(['YELLOW SATURDAY'], dtype=object),
 '[@15.0.63192185@]43': array(['ILLINI LIMITED'], dtype=object),
 '[@15.0.63192321@]21': array(['GREEN'], dtype=object),
 '[@15.0.63192321@]25': array(['GREEN'], dtype=object),
 '[@15.0.63192528@]43': array(['ILLINI'], dtype=object),
 '[@15.0.63192662@]3': array(['LAVENDER'], dtype=object),
 '[@15.0.63192662@]36': array(['LAVENDER'], dtype=object),
 '[@15.0.63192662@]4': array(['LAVENDER'], dtype=object),
 '[@15.0.63192662@]5': array(['LAVENDER'], dtype=object),
 '[@15.0.63192662@]604': array(['LAVENDER'], dtype=object),
 '[@15.0.63192993@]31': array(['BROWN ALT PM'], dtype=object),
 '[@15.0.64600293@]1': array(['RUBY'], dtype=object),
 '[@15.0.64600293@]17': array(['RUBY'], dtype=object),
 '[@15.0.64600293@]2': array(['RUBY'], dtype=object),
 '[@15.0.64613606@]1': array(['RUBY EVENING'], dtype=object),
 '[@15.0.64613606@]2': array(['RUBY EVENING'], dtype=object),
 '[@15.0.64613606@]3': array(['RUBY EVENING'], dtype=object),
 '[@15.0.64613606@]4': array(['RUBY EVENING'], dtype=object),
 '[@15.0.64657075@]1': array(['RUBY SATURDAY'], dtype=object),
 '[@15.0.64657075@]19': array(['RUBY SATURDAY'], dtype=object),
 '[@15.0.64657075@]2': array(['RUBY SATURDAY'], dtype=object),
 '[@15.0.66063517@]6': array(['RUBY EVENING'], dtype=object),
 '[@15.0.66063553@]12': array(['ILLINI'], dtype=object),
 '[@15.0.66064083@]23': array(['GREEN EVENING'], dtype=object),
 '[@15.0.66064083@]71': array(['GREEN EVENING'], dtype=object),
 '[@15.0.66064083@]76': array(['GREEN EVENING'], dtype=object),
 '[@15.0.66064923@]3': array(['RUBY SATURDAY'], dtype=object),
 '[@15.0.66066034@]15': array(['RED'], dtype=object),
 '[@15.0.66066034@]53': array(['RED'], dtype=object),
 '[@15.0.67916770@]1': array(['SILVER LIMITED SATURDAY'], dtype=object),
 '[@15.0.67916770@]2': array(['SILVER LIMITED SATURDAY'], dtype=object),
 '[@15.0.67916770@]3': array(['SILVER LIMITED SATURDAY'], dtype=object),
 '[@15.0.67924657@]4': array(['SILVER LIMITED EVENING'], dtype=object),
 '[@15.0.67924657@]7': array(['SILVER LIMITED EVENING'], dtype=object),
 '[@15.0.68508734@]48': array(['GREEN'], dtype=object),
 '[@15.0.68508734@]57': array(['GREEN'], dtype=object),
 '[@15.0.68508734@]58': array(['GREEN'], dtype=object),
 '[@15.0.68508734@]65': array(['GREEN'], dtype=object),
 '[@15.0.68508734@]66': array(['GREEN'], dtype=object),
 '[@15.0.68508995@]2': array(['GREY EVENING'], dtype=object),
 '[@15.0.68508995@]404': array(['GREY EVENING'], dtype=object),
 '[@15.0.68508995@]405': array(['GREY EVENING'], dtype=object),
 '[@15.0.68511845@]30': array(['YELLOW'], dtype=object),
 '[@15.0.68511981@]39': array(['GREENHOPPER'], dtype=object),
 '[@15.0.68511981@]91': array(['GREENHOPPER'], dtype=object),
 '[@15.0.68511981@]92': array(['GREENHOPPER'], dtype=object),
 '[@15.0.68511981@]93': array(['GREENHOPPER'], dtype=object),
 '[@15.0.68511981@]95': array(['GREENHOPPER'], dtype=object),
 '[@15.0.68511981@]99': array(['GREENHOPPER'], dtype=object),
 '[@15.0.68512008@]101': array(['GREENHOPPER EVENING SATURDAY'], dtype=object),
 '[@15.0.68512037@]696': array(['BROWN'], dtype=object),
 '[@15.0.68512361@]3': array(['GREY SUNDAY'], dtype=object),
 '[@15.0.68512430@]37': array(['GREY'], dtype=object),
 '[@15.0.68512430@]585': array(['GREY'], dtype=object),
 '[@15.0.68512636@]18': array(['RED'], dtype=object),
 '[@15.0.68512636@]19': array(['RED'], dtype=object),
 '[@15.0.68512808@]3': array(['ILLINI LIMITED'], dtype=object),
 '[@15.0.68512960@]110': array(['GREENHOPPER EVENING'], dtype=object),
 '[@15.0.68512960@]111': array(['GREENHOPPER EVENING'], dtype=object),
 '[@15.0.68512960@]112': array(['GREENHOPPER EVENING'], dtype=object),
 '[@15.0.68512960@]65': array(['GREENHOPPER EVENING'], dtype=object),
 '[@15.0.68513015@]219': array(['GREEN SATURDAY'], dtype=object),
 '[@15.0.68513015@]220': array(['GREEN SATURDAY'], dtype=object),
 '[@15.0.68513188@]4': array(['ILLINI'], dtype=object),
 '[@15.0.68513410@]21': array(['ORANGEHOPPER'], dtype=object),
 '[@15.0.68513410@]63': array(['ORANGEHOPPER'], dtype=object),
 '[@15.0.69155236@]1': array(['ORANGE ALT'], dtype=object),
 '[@15.0.69155236@]36': array(['ORANGE ALT'], dtype=object),
 '[@15.0.69155236@]37': array(['ORANGE ALT'], dtype=object),
 '[@15.0.69155236@]530': array(['ORANGE ALT'], dtype=object),
 '[@15.0.69155236@]540': array(['ORANGE ALT'], dtype=object),
 '[@15.0.69155236@]57': array(['ORANGE ALT'], dtype=object),
 '[@15.0.69172548@]1': array(['GREY SATURDAY'], dtype=object),
 '[@15.0.69172548@]2': array(['GREY SATURDAY'], dtype=object),
 '[@15.0.69172548@]7': array(['GREY SATURDAY'], dtype=object),
 '[@15.0.70780160@]363': array(['BRONZE'], dtype=object),
 '[@15.0.70780451@]31': array(['5E GREEN EXPRESS ALT'], dtype=object),
 '[@15.0.70780822@]4': array(['3S LAVENDER ALT'], dtype=object),
 '[@15.0.70781343@]3': array(['1S YELLOW ALT'], dtype=object),
 '[@15.0.70781976@]15': array(['BROWN ALT'], dtype=object),
 '[@15.0.71205318@]1': array(['LAVENDER SUNDAY'], dtype=object),
 '[@15.0.71205318@]2': array(['LAVENDER SUNDAY'], dtype=object),
 '[@15.0.71205318@]30NIT->BB': array(['LAVENDER SUNDAY'], dtype=object),
 '[@15.0.71205318@]30SBB->IT': array(['LAVENDER SUNDAY'], dtype=object),
 '[@15.0.73006437@]18': array(['GREEN SATURDAY'], dtype=object),
 '[@15.0.73006437@]37': array(['GREEN SATURDAY'], dtype=object),
 '[@15.0.73006437@]38': array(['GREEN SATURDAY'], dtype=object),
 '[@15.0.73007178@]121': array(['SILVER'], dtype=object),
 '[@15.0.73007320@]111': array(['GREEN'], dtype=object),
 '[@15.0.73007320@]13': array(['GREEN'], dtype=object),
 '[@15.0.73007320@]506': array(['GREEN'], dtype=object),
 '[@15.0.73007815@]73': array(['GREY EVENING'], dtype=object),
 '[@15.0.73007921@]22': array(['RED'], dtype=object),
 '[@15.0.73008535@]13': array(['GREY SATURDAY'], dtype=object),
 '[@15.0.73008754@]31': array(['LIME EVENING'], dtype=object),
 '[@15.0.73008754@]33': array(['LIME EVENING'], dtype=object),
 '[@15.0.73008754@]35': array(['LIME EVENING'], dtype=object),
 '[@15.0.73008754@]38': array(['LIME EVENING'], dtype=object),
 '[@15.0.73008754@]39': array(['LIME EVENING'], dtype=object),
 '[@15.0.73009433@]41': array(['LIME SATURDAY'], dtype=object),
 '[@15.0.73009433@]43': array(['LIME SATURDAY'], dtype=object),
 '[@15.0.73009433@]44': array(['LIME SATURDAY'], dtype=object),
 '[@15.0.73009433@]45': array(['LIME SATURDAY'], dtype=object),
 '[@15.0.73009433@]51': array(['LIME SATURDAY'], dtype=object),
 '[@15.0.73009483@]22': array(['ORANGEHOPPER'], dtype=object),
 '[@15.0.74000704@]37': array(['LIME SUNDAY'], dtype=object),
 '[@15.0.74000704@]38': array(['LIME SUNDAY'], dtype=object),
 '[@15.0.74000704@]41': array(['LIME SUNDAY'], dtype=object),
 '[@15.0.74000704@]51': array(['LIME SUNDAY'], dtype=object),
 '[@15.0.79613563@]47': array(['TEAL'], dtype=object),
 '[@2.0.80546279@]243': array(['BRONZE'], dtype=object),
 '[@2.0.80546903@]58': array(['RED'], dtype=object),
 '[@2.0.80546903@]59': array(['RED'], dtype=object),
 '[@2.0.80547772@]12': array(['GREEN'], dtype=object),
 '[@2.0.80548152@]2': array(['BROWN'], dtype=object),
 '[@2.0.81457398@]15': array(['RAVEN'], dtype=object),
 '[@2.0.81457398@]16': array(['RAVEN'], dtype=object),
 '[@2.0.81838518@]100': array(['PINK'], dtype=object),
 '[@2.0.81838518@]101': array(['PINK'], dtype=object),
 '[@2.0.81838518@]102': array(['PINK'], dtype=object),
 '[@2.0.81838518@]103': array(['PINK'], dtype=object),
 '[@2.0.81838518@]104': array(['PINK'], dtype=object),
 '[@2.0.81838518@]12': array(['PINK'], dtype=object),
 '[@2.0.82999720@]3': array(['1 YELLOW ALT'], dtype=object),
 '[@2.0.83502711@]3': array(['1N YELLOW ALT'], dtype=object),
 '[@2.0.84876422@]22': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]62': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]885': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LAVENDER 1': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LAVENDER 1415': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LAVENDER 1425': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LAVENDER 1440': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LAVENDER 1505': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LAVENDER 43': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84876422@]LP1SCHOOLPO': array(['LAVENDER ALT'], dtype=object),
 '[@2.0.84887452@]67': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]7': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]GREEN 1': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]GREEN 2': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]GREEN 3': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]GREEN 336': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]S6 ALT': array(['GREEN ALT'], dtype=object),
 '[@2.0.84887452@]SCWD UMS': array(['GREEN ALT'], dtype=object),
 '[@2.0.84907145@]1435': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]21': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]25': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]326': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]331': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]336': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]34': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]36': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]7W SHOW 226': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]7W SHOW 97': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]7W UHS 216': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]88': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]BA3-3 58': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]GREY 1415': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]GREY 1425': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]GREY 1525': array(['GREY ALT'], dtype=object),
 '[@2.0.84907145@]GREY 1535': array(['GREY ALT'], dtype=object),
 '[@2.0.84916234@]65': array(['BROWN ALT1'], dtype=object),
 '[@2.0.84927215@]2': array(['GOLD ALT'], dtype=object),
 '[@2.0.84927215@]GOLD 1': array(['GOLD ALT'], dtype=object),
 '[@2.0.84927215@]GOLD 1505': array(['GOLD ALT'], dtype=object),
 '[@2.0.84927215@]GOLD 1535': array(['GOLD ALT'], dtype=object),
 '[@2.0.84927215@]GOLD 336': array(['GOLD ALT'], dtype=object),
 '[@2.0.84927215@]ORB2 UMS': array(['GOLD ALT'], dtype=object),
 '[@2.0.84948307@]11': array(['BRONZE ALT'], dtype=object),
 '[@2.0.84948307@]133': array(['BRONZE ALT'], dtype=object),
 '[@2.0.84948307@]2': array(['BRONZE ALT'], dtype=object),
 '[@2.0.84948307@]22': array(['BRONZE ALT'], dtype=object),
 '[@2.0.84948307@]7': array(['BRONZE ALT'], dtype=object),
 '[@2.0.84953216@]33': array(['GREEN EXPRESS ALT'], dtype=object),
 '[@2.0.84953216@]43': array(['GREEN EXPRESS ALT'], dtype=object),
 '[@2.0.84953216@]GREEN EX 1425': array(['GREEN EXPRESS ALT'], dtype=object),
 '[@2.0.85633009@]76': array(['GOLD'], dtype=object),
 '[@2.0.85633009@]78': array(['GOLD'], dtype=object),
 '[@2.0.85633622@]8': array(['ILLINI LIMITED'], dtype=object),
 '[@2.0.85634618@]21': array(['LAVENDER'], dtype=object),
 '[@2.0.85634827@]37': array(['ILLINI EVENING'], dtype=object),
 '[@2.0.85635071@]58': array(['ILLINI LIMITED EVENING'], dtype=object),
 '[@2.0.86175868@]18': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]19': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]25': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]27': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]34': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]42': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]53': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]56': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]6WIT->CF': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]7': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]70': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]75': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 12': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 13': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 14': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 16': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 17': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 23': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 24': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 31': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 32': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 33': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 610': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 63': array(['ORANGE'], dtype=object),
 '[@2.0.86175868@]ORANGE 64': array(['ORANGE'], dtype=object),
 '[@2.0.86232218@]426': array(['GOLD'], dtype=object)}

In [14]:
# shape_id -> route_color
shape_color_dict = {}

for shape, route in shape_route_dict.items():
    for route_id in route:
        shape_color_dict[shape]=route_color_dict[route_id]

"#"+str(shape_color_dict['20U ->IU'])[-6:]


Out[14]:
'#ed1c23'

In [15]:
df_shapes_group = pd.DataFrame()
df_shapes_group = shapes_df.groupby("shape_id")

In [16]:
str(shape_route_dict['20U ->IU'])[2:-2]


Out[16]:
'RED SATURDAY'

In [17]:
for name, group in df_shapes_group:
    shape_color_dict[name]

In [18]:
# route_color -> route_id
color_map_test = {}
for color,count in Counter(routes_df["route_color"]).items():
    color_map_test[color]=[]
    color_map_test[color].append(routes_df[routes_df.route_color==color][["route_id"]])

color_map_test


Out[18]:
{'000000': [   route_id
  90    RAVEN], '006991': [                    route_id
  7     TEAL LATE NIGHT SUNDAY
  18             TEAL SATURDAY
  30  TEAL LATE NIGHT SATURDAY
  52           TEAL LATE NIGHT
  65     TEAL EVENING SATURDAY
  66              TEAL EVENING
  78               TEAL SUNDAY
  93                      TEAL], '008063': [                        route_id
  5         GREEN EVENING SATURDAY
  8      GREEN LATE NIGHT SATURDAY
  9         5E GREEN EXPRESS 1 ALT
  10                GREEN SATURDAY
  16  GREENHOPPER EVENING SATURDAY
  22          5E GREEN EXPRESS ALT
  24                   GREENHOPPER
  25                         GREEN
  32             GREEN EXPRESS ALT
  33           GREENHOPPER EVENING
  39                5W GREEN ALT 2
  57                     GREEN ALT
  60                 GREEN EVENING
  69       GREEN LATE NIGHT SUNDAY
  74              GREEN LATE NIGHT
  82                  GREEN SUNDAY
  86            5W GREEN EXPRESS 2
  96                 GREEN EXPRESS], '2b3088': [   route_id
  71     NAVY], '355caa': [   route_id
  61     BLUE], '5a1d5a': [                            route_id
  15             ILLINI EVENING SUNDAY
  45                            ILLINI
  46             ILLINI LIMITED SUNDAY
  49                    ILLINI LIMITED
  67           ILLINI EVENING SATURDAY
  73   ILLINI LIMITED EVENING SATURDAY
  79            ILLINI LIMITED EVENING
  91                    ILLINI EVENING
  100          ILLINI LIMITED SATURDAY], '808285': [                 route_id
  6                GREY ALT
  31          GREY SATURDAY
  38           GREY EVENING
  42  GREY EVENING SATURDAY
  47                   GREY
  48            7E GREY ALT
  75            GREY SUNDAY
  92            7W GREY ALT], '823822': [        route_id
  3   BROWN ALT PM
  36     BROWN ALT], '825622': [      route_id
  50       BROWN
  87  BROWN ALT1], '9e8966': [      route_id
  70  BRONZE ALT
  85      BRONZE], 'a78bc0': [             route_id
  11    3S LAVENDER ALT
  19       LAVENDER ALT
  27    LAVENDER SUNDAY
  29  LAVENDER SATURDAY
  95           LAVENDER], 'b2d235': [                 route_id
  14  LIME EVENING SATURDAY
  64          LIME SATURDAY
  72            LIME SUNDAY
  99           LIME EVENING], 'c7994a': [        route_id
  0       GOLD ALT
  34          GOLD
  77  10W GOLD ALT
  83    GOLDHOPPER], 'cccccc': [                   route_id
  13    SILVER EVENING SUNDAY
  23            SILVER SUNDAY
  40                   SILVER
  68           SILVER EVENING
  76        SILVER LATE NIGHT
  80  SILVER EVENING SATURDAY
  84          SILVER SATURDAY], 'd1d3d4': [                           route_id
  2           SILVER LIMITED SATURDAY
  12            SILVER LIMITED SUNDAY
  62  SILVER LIMITED EVENING SATURDAY
  98           SILVER LIMITED EVENING], 'eb008b': [                 route_id
  1           RUBY SATURDAY
  26            RUBY SUNDAY
  41  RUBY EVENING SATURDAY
  44                   RUBY
  81           RUBY EVENING], 'ed1c23': [        route_id
  56  RED SATURDAY], 'ed1c24': [   route_id
  21      RED], 'f99f2a': [        route_id
  43  ORANGEHOPPER
  53        ORANGE
  94    ORANGE ALT], 'fcee1f': [                      route_id
  4     YELLOW LATE NIGHT SUNDAY
  17               YELLOW SUNDAY
  20                      YELLOW
  35     YELLOW EVENING SATURDAY
  51            1N YELLOW ALT PM
  54              YELLOW EVENING
  55                1 YELLOW ALT
  58  YELLOW LATE NIGHT SATURDAY
  59           YELLOW LATE NIGHT
  63             YELLOW SATURDAY
  88               1N YELLOW ALT
  89               1S YELLOW ALT
  97                YELLOWHOPPER], 'ffbfff': [   route_id
  37     PINK]}

In [19]:
color_map = {}
color_map['#000000']="RAVEN"
color_map['#006991']="TEAL Series"
color_map['#008063']="GREEN Series"
color_map['#2b3088']="NAVY"
color_map['#355caa']="BLUE"
color_map['#5a1d5a']="ILLINI Series"
color_map['#808285']="GREY Series"
color_map['#823822']="BROWN ALT (PM)"
color_map['#825622']="BROWN & BROWN ALT1"
color_map['#9e8966']="BRONZE Series"
color_map['#a78bc0']="LAVENDER Series"
color_map['#b2d235']="LIME Series"
color_map['#c7994a']="GOLD Series"
color_map['#cccccc']="SILVER Series"
color_map['#d1d3d4']="SILVER LIMITED Series"
color_map['#eb008b']="RUBY Series"
color_map['#ed1c23']="RED SATURDAY"
color_map['#ed1c24']="RED"
color_map['#f99f2a']="ORANGE Series"
color_map['#fcee1f']="YELLOW Series"
color_map['#ffbfff']="PINK"

color_map


Out[19]:
{'#000000': 'RAVEN',
 '#006991': 'TEAL Series',
 '#008063': 'GREEN Series',
 '#2b3088': 'NAVY',
 '#355caa': 'BLUE',
 '#5a1d5a': 'ILLINI Series',
 '#808285': 'GREY Series',
 '#823822': 'BROWN ALT (PM)',
 '#825622': 'BROWN & BROWN ALT1',
 '#9e8966': 'BRONZE Series',
 '#a78bc0': 'LAVENDER Series',
 '#b2d235': 'LIME Series',
 '#c7994a': 'GOLD Series',
 '#cccccc': 'SILVER Series',
 '#d1d3d4': 'SILVER LIMITED Series',
 '#eb008b': 'RUBY Series',
 '#ed1c23': 'RED SATURDAY',
 '#ed1c24': 'RED',
 '#f99f2a': 'ORANGE Series',
 '#fcee1f': 'YELLOW Series',
 '#ffbfff': 'PINK'}

In [20]:
handles = []
for key, value in sorted(color_map.items()):
    handles.append(mpatches.Patch(color=key,label=value))

In [21]:
plt.rcParams["figure.figsize"] = (14, 14)

for name, group in df_shapes_group:
    plt.plot(group['shape_pt_lon'],group['shape_pt_lat'],color="#"+str(shape_color_dict[name])[-6:],linestyle="solid",linewidth=1.5,alpha=0.9)

plt.xlabel("Longitude",fontsize=20)
plt.ylabel("Latitude",fontsize=20)
plt.title("Shapes in their Routes' Colors\n(677 Shapes in Total)",fontweight="bold",fontsize=22)
plt.grid(color='gray', linestyle='dotted')

ax=plt.gca()
ax.set_yticks(np.arange(40.05,40.16,0.01))
ax.set_xticks(np.arange(-88.32,-88.15,0.01))
ax.legend(title="Colors of Routes",handles=handles,prop={'size':12},loc='center left', bbox_to_anchor=(1,0.5))

plt.savefig('Shapes in Routes Colors.svg', bbox_inches='tight')
plt.savefig('Shapes in Routes Colors.png', bbox_inches='tight')



In [ ]: