-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Addis Ababa and Add Partial GTFSFlex Implementation (#156) #159
base: master
Are you sure you want to change the base?
Conversation
amenk
commented
Feb 2, 2020
- Mostly adding Addis Ababa Scripts
- Also add transitfeedflex Module to support Minibus System in Addis Ababa
* no schedule * trips copied from gh_accra class
* stop IDs of the format OSM_TYPE/ID are used now * Stations are no longer grouper together (stop hierachies are only to be used for big bus terminals and trams, see https://support.google.com/transitpartners/answer/6377423?hl=en)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work @amenk
@@ -0,0 +1,35 @@ | |||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All config should come with some regression tests, so we can make sure our future changes in osm2gtfs do not break your own implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will probably not be able to add those from my current limited python skills. Help is appreciated.
elif 'route_master' in line.tags and line.tags['route_master'] == "share_taxi": | ||
route_type = "Bus" | ||
route_suffix = " (Minibus)" | ||
flex_flag = 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if flex_flag
is a flag, can we use a Boolean ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably yes :-)
elif 'route_master' in line.tags and line.tags['route_master'] == "share_taxi": | ||
route_type = "Bus" | ||
route_suffix = " (Minibus)" | ||
flex_flag = 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't like the idea of it being hard-coded. Can we rather have that information as an attribute on the route / route_master in OSM ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible, need to discuss with the OSM community how it is mapped best on OSM side.
|
||
flex_flag = None | ||
if 'route_master' in line.tags and line.tags['route_master'] == "light_rail": | ||
route_type = "Tram" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand why you need to override the route_type here 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In OSM we tagged it as light_rail, and I was thinking it needs to be mapped to Tram in GTFS; but I am not sure
@@ -0,0 +1 @@ | |||
Adds Flexible Pick Off / Drop Off (Part of the GTFSFlex specification) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 That's really cool to add this feature!
Can you please add a link to the documentation of the format ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
long time no feedback, sorry :-)
I think it is described here: https://github.com/MobilityData/gtfs-flex/blob/master/spec/reference.md
trip_gtfs.AddFrequency( | ||
"05:00:00", "22:00:00", ROUTE_FREQUENCY * 60) | ||
|
||
if 'duration' in a_route.tags: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the ci_abidjan
creator also use duration
and interval
tags for the same purpose 🤔 I wonder if / how we can mutualize the implementations to avoid code duplication.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting, how could we do this?
Long time no see - sorry, I was kind of pushed back by the requirements for regression tests and also we did not work for some while on the project. We want to bring this pull request forward :-) Unfortunately I have to confess that I only limited Python skills, so might need some support. But we will try our best to get this ready for merge. |
Actually I am nowadays no longer sure if OpenTripplanner v2 (which we use for routing) supports those continuous_pickup + continuous_drop_off fields. It's also not really documented any more in the spec. Ref: MobilityData/gtfs-flex#70 |
For better discoverability, this is Leonard's reply on the OTP mailing list:
(Sorry if this is irrelevant, I'm a random lurker on this Issue.) |
It is part of the main GTFS specification https://github.com/google/transit/blob/master/gtfs/spec/en/reference.md#stop_timestxt |