-
Notifications
You must be signed in to change notification settings - Fork 206
Introduce boarding permissions to specify the carriage of vehicles at per-stop granularity #533
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
base: master
Are you sure you want to change the base?
Conversation
…f the boarding permission mentions that vehicle
paulswartz
left a comment
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.
Love this idea! It would definitely help with an issue we see with the data @mbta.
| | Field Name | Type | Presence | Description | | ||
| |---------------------------|------------|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| | `boarding_permission_id` | Unique ID | Required | Identifies a boarding_permission. | | ||
| | `vehicle` | Enum | Required | Identifies a vehicle. `0` - Wheelchair. `1` - Bike. `2` - Motorcycle. `3` - Car. | |
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.
question: should this have a different name? at the moment, everything in GTFS/GTFS-RT which uses vehicle is a transit vehicle (bus/train/&c).
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.
Can you make a suggestion of a name to use?
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.
cargo_vehicle perhaps?
| | Field Name | Type | Presence | Description | | ||
| |---------------------------|------------|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| | `boarding_permission_id` | Unique ID | Required | Identifies a boarding_permission. | | ||
| | `vehicle` | Enum | Required | Identifies a vehicle. `0` - Wheelchair. `1` - Bike. `2` - Motorcycle. `3` - Car. | |
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.
question: is it worth distinguishing between "Bike" and "Folding Bike"? For @mbta, general bikes are restricted, but folding bikes (when folded) are always allowed: https://www.mbta.com/bikes
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.
Yes, I will add a clarification for this such that the value only applies to full sized bikes. I don't want to define folded bikes for now as they are commonly considered luggage.
|
How does it compare to feature earlier described here? #117 |
|
I now think that this proposal can be extended to other kinds of special luggage, such as pets and surfboards, therefore the term |
|
I don't have an opinion about the proposal as it is. Just factually, this is wrong:
It is possible to split a trip into two trips where one part has bikes allowed an the other part does not have bikes allowed. Then after that just rejoin the trip using a stay seated transfer or MOTIS for example supports this information for the search option to travel with your bike in public transport. For boarding assistance times: this usually depends not just on the time+station but also the trip. But the trip only has
For example for the option lift is provided or not, I translated this PDF to this CSV using OpenStreetMap opening hours format. This is now supported in MOTIS in order to find the best journeys considering that long distance trains in Germany require that the wheelchair user is lifted. The OSM opening hours format is convenient for users and developers alike (at least OTP and MOTIS can both parse this format as far as I know). I'm not opposing this PR (I don't have an opinion). Just wanted to add some information that might be relevant. |
Your modelling is distorting the reality when it is factually one trip on the ground. The trip information will be totally wrong if you do so. There is a very obvious distinction if the vehicle is making one trip, or is making two trips where passengers can stay aboard. In the latter, the stop list shown on the bus will not contain the second trip while the bus is running on the first trip, and the timetable will have special indication that they are two different trips where the passenger can stay on board, rather than one single trip.
This proposal can represent all of the above, except the real-time update of places (this will require another proposal w.r.t. to reservation availability in general for all trips which require rebooking). |
I guess this is your interpretation of the GTFS standard? As far as I know, the standard itself does not state anything of this. Can you point me to a quote from the standard that supports your view? I have seen trips being split into several trips for several (valid IMO) reasons, none of them would affect what's shown on the stop list in the vehicle:
The customer will not notice any of those and can just "stay seated". |
In this case, your GTFS-consuming app will show the customer to the fact that they are travelling on two trips, rather than one single trip. The customer will get confused when the apps tell you to have a stay-seated transfer when the vehicle is still operating on the same trip. If you then query the back end of the trip information, the information returned will not match what the customer sees on the vehicle, so this is, again, a distortion of the reality.
In such case, it is most likely that they are two different trips just happen to run through, as when the agencies are different, the passenger experience is different.
Using standard GTFS route types, an RE train and an IC train are both trains, although they can be separated using Google's extended route types. In this case, the train trip is known as a both IC and an RE train, so both should be shown on the route number.
I have some examples of circular trips where the passenger can remain on board for another circle, but on those trips
In such case, it is appropriate that the information is shown to the passenger that they are travelling on two different trips of the circle with a stay-seated transfer, such that they won't get surprised that the vehicle enters the terminus. This needs to be clearly distinct from a service which goes round and round and round without a terminus, which the stop list should be listed all over and over and over until the vehicle is taken out of the service.
In China, there are many trains where the train number change en-route. However, on all passenger information systems, all the applicable train numbers are used simultaneously with the stop list shown from the actual origin to the actual destination regardless of how many train numbers it uses, so it is effectively one trip.
I have listed some examples above where a customer can just stay seated but clearly travelling on two different trips, which is the literal meaning of stay seated transfers. Stay seated on the same trip through an intermediate stop, and stay seated on two different trips through a terminus, are very different things. |
|
As the original author of #466, something that raised a lot of discussion in that issue was whether to use a Although the addition in this PR has a broader scope, would a The comment in this PR by @felixguendling caught my eye:
If there is interest, I could continue with the original issue to add such an addition to GTFS. |
Your initial proposal of having a simple
Since this proposal (boarding permissions) found a way to deal with the "old" columns by making them "Conditionally Forbidden", I would guess there's no problem to deal with |
|
This pull request has been automatically marked as stale because of lack of recent activity. It may be closed manually after one month of inactivity. Thank you for your contributions. |
|
This pull request has been automatically marked as stale because of lack of recent activity. It may be closed manually after one month of inactivity. Thank you for your contributions. |
|
keep open |
|
We will soon submit a bid for funding with this proposal so we can deliver it in a real-world setting. |
Previous discussion: #466
The current GTFS specification cannot express if a bike can only be carried on part of the trip, or if it cannot be boarded or alighted at certain stops even if it can be carried on the trip.
This proposal provides a generic solution to specify if any kinds of vehicles can be carried, boarded or alighted on any public transport service at a per-stop granularity, by introducing a new file
boarding_permissions.txt, which is referenced fromstop_times.txt. The introduction of this new feature does not break any existing compatibility.Use case: Bikes allowed only on certain part of trip at certain times
London Underground allows the carriage of bikes, but only outside peak hours and outside the deep tube sections. With this proposal, it is possible to assign stop times to either accept bikes outside peak hours (for stops outside the deep tube sections), or to not accept bikes at all (for stops inside the deep tube sections).
Use case: Mandatory bike reservation
On some long distance trains, a bike space must be reserved by the passenger in order for a bike to be carried. By assigning the stop times for the whole trip to a boarding permission which requires bike reservation, the journey planner can tell the passenger that a bike space must be reserved.
Use case: Staff assistance required for wheelchair boarding
On some National Rail journeys, wheelchair can board trains unassisted at some stations, but assistance is required at other stations. By assigning the stop times to appropriate boarding permissions, accurate instructions can be given to the user if assistance needs to be arranged.
Use case: Service which requires the carriage of vehicle
The Silvertown tunnel bike shuttle requires passengers to carry a bike to use the service. By setting
pickup_typeanddrop_off_type= 1 instop_times.txtand assigning positive bike boarding permission for the stop times, consumers which understand this proposal can route bike passengers onto the shuttle, while the service won't be suggested by legacy consumers which don't understand bikes.