This commit is contained in:
+3
-11
@@ -1,14 +1,4 @@
|
|||||||
pipeline:
|
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:
|
deploy:
|
||||||
image: appleboy/drone-ssh
|
image: appleboy/drone-ssh
|
||||||
host: sgeboers.nl
|
host: sgeboers.nl
|
||||||
@@ -16,7 +6,9 @@ pipeline:
|
|||||||
password:
|
password:
|
||||||
from_secret: password
|
from_secret: password
|
||||||
script:
|
script:
|
||||||
- cd /home/webapps/gtfs
|
- cd /home/webapps/gtfs/code
|
||||||
|
- git pull
|
||||||
|
- cd ..
|
||||||
- python3 -m venv env
|
- python3 -m venv env
|
||||||
- source env/bin/activate
|
- source env/bin/activate
|
||||||
- cd code
|
- cd code
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ def getPositions():
|
|||||||
feed = gtfs_realtime_pb2.FeedMessage()
|
feed = gtfs_realtime_pb2.FeedMessage()
|
||||||
response = requests.get('https://gtfs.ovapi.nl/nl/vehiclePositions.pb')
|
response = requests.get('https://gtfs.ovapi.nl/nl/vehiclePositions.pb')
|
||||||
feed.ParseFromString(response.content)
|
feed.ParseFromString(response.content)
|
||||||
print(feed)
|
|
||||||
vehicle_positions = []
|
vehicle_positions = []
|
||||||
|
|
||||||
for entity in feed.entity:
|
for entity in feed.entity:
|
||||||
@@ -40,9 +39,16 @@ def update():
|
|||||||
|
|
||||||
## Merge tables
|
## Merge tables
|
||||||
df = df_vehiclePositions.merge(df_routes, on="route_id", how="right")
|
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"]))
|
Source.stream(df, rollover=len(df["longitude"]))
|
||||||
labels = LabelSet(x='x',y='y',x_offset=5,y_offset=5,source=Source,render_mode='canvas')
|
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
|
## Get initial values
|
||||||
@@ -51,6 +57,9 @@ df_routes = pd.read_csv("gtfs-data/routes.txt")
|
|||||||
|
|
||||||
## Merge tables
|
## Merge tables
|
||||||
df = df_vehiclePositions.merge(df_routes, on="route_id", how="right")
|
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)
|
Source = ColumnDataSource(df)
|
||||||
|
|
||||||
## Plot
|
## 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 = 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)
|
p.add_tile(OSM)
|
||||||
my_hover=HoverTool()
|
my_hover=HoverTool()
|
||||||
my_hover.tooltips=[('route_id','@route_id'),('Type','@route_type'),('Route','@route_long_name')]
|
my_hover.tooltips=[('Type','@route_type_long'),('Route id','@route_short_name'),('Route','@route_long_name')]
|
||||||
p.add_tools(my_hover)
|
|
||||||
|
|
||||||
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_root(p)
|
||||||
curdoc().add_periodic_callback(update,5000)
|
curdoc().add_periodic_callback(update,5000)
|
||||||
p.legend.location = "top_left"
|
p.legend.location = "top_left"
|
||||||
|
|||||||
Reference in New Issue
Block a user