diff --git a/.drone.yml b/.drone.yml index 2eda97f..a08784e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,14 +1,4 @@ pipeline: - copy: - image: appleboy/drone-scp - host: sgeboers.nl - target: /home/webapps/gtfs/code - source: . - user: webapps - strip_components: 1 - overwrite: true - password: - from_secret: password deploy: image: appleboy/drone-ssh host: sgeboers.nl @@ -16,7 +6,9 @@ pipeline: password: from_secret: password script: - - cd /home/webapps/gtfs + - cd /home/webapps/gtfs/code + - git pull + - cd .. - python3 -m venv env - source env/bin/activate - cd code diff --git a/main.py b/main.py index 802a486..023692c 100644 --- a/main.py +++ b/main.py @@ -23,7 +23,6 @@ def getPositions(): feed = gtfs_realtime_pb2.FeedMessage() response = requests.get('https://gtfs.ovapi.nl/nl/vehiclePositions.pb') feed.ParseFromString(response.content) - print(feed) vehicle_positions = [] for entity in feed.entity: @@ -40,9 +39,16 @@ def update(): ## Merge tables df = df_vehiclePositions.merge(df_routes, on="route_id", how="right") - df = df[(df["route_type"]==1) | (df["route_type"]==2) | (df["route_type"]==3)] + df = df[df["route_type"]!=2] + df = add_route_types(df, route_translation) Source.stream(df, rollover=len(df["longitude"])) labels = LabelSet(x='x',y='y',x_offset=5,y_offset=5,source=Source,render_mode='canvas') + +def add_route_types(df, route_translation): + df['route_type_long'] = [route_translation[key] for key in df['route_type']] + df['color'] = [brewer['Set1'][9][key] for key in df['route_type']] + return(df) + ## Get initial values @@ -51,6 +57,9 @@ df_routes = pd.read_csv("gtfs-data/routes.txt") ## Merge tables df = df_vehiclePositions.merge(df_routes, on="route_id", how="right") +df = df[df["route_type"]!=2] +route_translation = {0:"Tram", 1:"Metro", 2:"Rail", 3:"Bus", 4:"Ferry"} +df = add_route_types(df,route_translation) Source = ColumnDataSource(df) ## Plot @@ -60,10 +69,10 @@ OSM = get_provider('OSM') p = figure(title="A gtfs feed",x_range=x_range, y_range=y_range, x_axis_type='mercator',y_axis_type='mercator',sizing_mode='stretch_both',plot_width=1500,plot_height=1000) p.add_tile(OSM) my_hover=HoverTool() -my_hover.tooltips=[('route_id','@route_id'),('Type','@route_type'),('Route','@route_long_name')] -p.add_tools(my_hover) +my_hover.tooltips=[('Type','@route_type_long'),('Route id','@route_short_name'),('Route','@route_long_name')] -p.circle('x', 'y', source=Source) +p.add_tools(my_hover) +p.circle('x', 'y', source=Source, legend_field='route_type_long', color='color') curdoc().add_root(p) curdoc().add_periodic_callback(update,5000) p.legend.location = "top_left"