-
Notifications
You must be signed in to change notification settings - Fork 206
Add stops.stop_access field #515
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
Conversation
|
What about adding the following clarification for When its parent station does not contain any entrances/exits ( |
Do we have a good sense about how frequently producers include entrances for their parent stations? Even for us at the MBTA, we include them (and pathways) in full for our metro stations, but for the most part have not added them for our many regional rail parent stations. I'm not sure that the exclusion of station entrances, at this time, can imply one behavior or the other—after all, this ambiguity about the definition of a parent station is part of the rational for Of course, consumers will (and already do) have to make assumptions in those cases—from a survey in our market, it looks like OTP and the major commercial apps are mixed in whether they route involving entrance-less stations to the parent or the child. |
|
How do you deal with the situation where a platform can either be accessed directly from the street, and also through the station building? Your proposed changes to pathways will prohibit such usages from happening. |
@miklcct, could you provide (or otherwise illustrate) an example of such a platform? What I can picture is a platform that is outdoors and right adjacent to the station building/doors—without seeing more, I believe this would simply be a |
The PR says that
which implies that routers should not use the pathways at all, contradicting to what you have replied me. There are also situations where the best route to access a stop is by using the station building, even if the stop is otherwise directly accessible from the street level, for example, there is a heavy rail line with two side platforms connected through the station building, but each side platform is also accessible directly from the street. If you want to access the platform in the opposite direction, you are better off using the station building instead of negotiating the general pedestrian network to find a way to cross the railway. |
|
Also how can you model stations where there are multiple station buildings and not all platforms can be accessed by all station buildings / entrances? For example, I have a station which contains platforms 1, 2, 3, 4, A, B and 3 station buildings, X, Y and Z. If you need to transfer between platform 1 and platform B, you either need to transfer through the street level by exiting station building X and entering station building Y, or through another numbered platform. |
@miklcct Got it—my initial interpretation was that |
|
@miklcct for your examples:
I could maybe imagine specific handling for these mixed-access platforms via an additional
|
@leonardehrenfried can you confirm the behaviour of OpenTripPlanner in such case? From what I have read OpenTripPlanner will always use pathways if they are available, only OSM data otherwise. In such case a transfer between platforms 1 and B will be possible by multiple pathways (from platform 1 to the station building, then platform 2, another station building, then platform B). |
|
After further reading the proposal, I think that the proposal modelling is flawed. A better modelling is a nested stop_area. Using London Paddington as an example, it isn't possible to model what I want in the current model. The station complex consist of the following parts:
Therefore I would like the "station cluster" alternative to be presented instead. For the typical outdoor bus stops scenario, it is also applicable because a rider will recognise the bus stops to be a stop area, the train station to be another stop area, if the passenger information systems are set up to be such. For a large rail station like in the picture shown, the 3 stops on the south-west of the train station should be in one stop area, and the single stop on the south-east of the train station should be in another stop area, where a bus may call at both. |
|
It's worth noting that this PR isn't meant to solve all modeling issues with large station complexes, as noted by @tzujenchanmbd above in his three-phase plan. Station clusters are included in that plan. But jumping ahead to that discussion, it'd been argued by me and others that we don't want to introduce arbitrary levels of station-stop clustering without explicit guidance on how it should be used, lest different data providers make up their own perhaps arbitrary modeling that might be more of a reflection of their own internal operations as opposed to how riders think about stations and stops. I've specifically argued that clusters should only be introduced for groupings most riders would recognize, want to see rendered at high zoom levels, and possibly search for by name (see the Alternatives Considered section of the proposal doc for more discussion). Paddington is an interesting example that we've gone back and forth on how we model it on Google Maps but ultimately we agree that most riders would make a mental distinction between the overall Paddington Station complex and the individual Underground stations (with much arguing about the Elizabeth Line). But I don't think most riders would think of the Padding Station Bus Complex as a thing. My intuition is that they are just thinking of them as bus stops attached to Paddington Station. As such, I'm not sure they deserve their own sub-cluster within Paddington Station. Of course, Paddington is one of the most complex examples. I think there are plenty of simpler examples of an underground station with one or two bus stops at street level that are more obvious applications of Thoughts? |
|
Different transport networks have different modelling on what is a station, and present to passengers differently. Therefore I think that the GTFS should reflect that as well. For example, in Citybus, stops are labelled with numerical IDs with an alphabetical suffix. Stops with the same numerical code belongs to the same "station", while in KMB, stop IDs are just labelled sequentially from the beginning of a street and can continue for kilometres, similarly for public platform codes on Nathan Road as well. Adding complication to the matter, some stops are shared between the two networks as there are a number of jointly operated routes as well, and there are instances where two stops belong to the same station in one network but in different stations in the other. So the matter can become very complicated if different transport networks share the same stop or station, which already exists in cases such as Farringdon, Paddington, etc, and a multi-network GTFS is produced using some national standards for IDs (e.g. Naptan for the UK). Going back to National Rail, in terms of passenger information and ticketing, the terminus and the Elizabeth line stations of Paddington are the same station with public code PAD, but operationally the Elizabeth line station has a substation code PDX, similar for Liverpool Street as well. And from the passenger's perspective, all these substation codes are a distinct part, clearly separate from the main station (these substation codes were created for passenger assist purpose to guide staff to the appropriate part of the station). Paddington may not be the best example for bus stops having their own cluster, but Heathrow Central, Canada Water, Southgate, etc., are clear examples of that. I will only support the proposal if it is written in a mode-neutral way and doesn't imply anything about physical infrastructure (as I would like to keep the option open for routers to use pathways even for stops outside station buildings, or to use the street network for stops inside a station building where indoor mapping is of a high quality in OpenStreetMap), but only as an instruction to the router how to generate routes ( |
|
@miklcct no argument that is complicated. Are you still opposed to |
I support its use only as an instruction for the router. No other meanings should be attached to it. |
|
@miklcct I think we are aligned since that's the primary use case we want to support here as well (accurate walking directions between stops/platforms). But just to double check, what other meanings did you have in mind that you specifically wanted to avoid? |
Any implications if the stop belongs to certain physical structures. None of the values should carry any meanings if the stop is indoor / outdoor / part of a building / interchange / complex / etc. Which means the phrase in the PR like "is part of the station or enclosed area" has to be removed. Btw, what should be the behaviour is a stop is specified as Also, I think we should allow the use of a pathway to a stop with |
I hear what you are saying, but I think there is value in providing some guidance on when this is typically used. If we dropped from the "the stop/platform is part of the main station structure or enclosed area" language from the enum descriptions, is there room for some additional language like:
Regarding remaining points:
Per the spec proposal text:
Put another way, if there are pathways for a station, trying using those first. If a stop only has entrances but no pathways, route to a reasonable entrance. And if the station has no entrances or pathways, route to the station itself.
As I argued above, I think these would all be |
You can give them as examples, but these wording should not be part of the specification.
Thank you for your explanation. You need to spell it out: If
This is what I strongly oppose. If a 200 m long platform is directly accessible wholly from the street without a physical entrance, what you are saying will mislead the users to find a non-existent entrance when alighting the train. We can introduce another enum value that explicitly tells the router it can access either from street or from pathways. P.S. I now start to think that this proposal is just a way for producers to work around poor OpenStreetMap data instead of mapping their stations properly. With good OpenStreetMap data, we don't need this proposal at all for a router to generate correct instructions to the stop, regardless of it being in a station / on the street / underground. |
Seems fine but @tzujenchanmbd would need to update the PR.
Noted, but unless we have a data producer lined up for this specific case, I'd propose to hold off on that for now.
Recall that there are many consumers out there who can't work with OSM due to licensing restrictions and data producers who can't/won't integrate for other reasons. Thus why GTFS entrances + pathways + this proposal exist in the first place. |
I believe that it's only Apple and Google that don't want to use OSM. I think it's not a fair characterisation to call it "many". |
|
I fully agree with the standpoint that OSM Foundation over reached with the ODBL. Given that there many governmental agencies must provide CC-0 or like data, I would expect such data to appear in GTFS. |
|
+1 Aubin |
gtfs/spec/en/reference.md
Outdated
| | `level_id` | Foreign ID referencing `levels.level_id` | Optional | Level of the location. The same level may be used by multiple unlinked stations.| | ||
| | `platform_code` | Text | Optional | Platform identifier for a platform stop (a stop belonging to a station). This should be just the platform identifier (eg. "G" or "3"). Words like “platform” or "track" (or the feed’s language-specific equivalent) should not be included. This allows feed consumers to more easily internationalize and localize the platform identifier into other languages. | | ||
|
|
||
| | `stop_access` | Enum | **Conditionally Forbidden** | Indicates how the stop is accessed for a particular station. Valid options are: <br><br>`0` - The stop/platform cannot be directly accessed from the street network. It must be accessed from a station entrance if there is one defined for the station, otherwise the station itself. If there are pathways defined for the station, they must be used to access the stop/platform.<br>`1` - Directions for access should be generated directly to the stop, independent of any entrances or pathways of the parent station.<br><br>When `stop_access` is empty, the access for the specified stop or platform is considered undefined.<br><br>**Conditionally Forbidden**:<br>- **Forbidden** for locations which are stations (`location_type=1`), entrances (`location_type=2`), generic nodes (`location_type=3`) or boarding areas (`location_type=4`).<br>- **Forbidden** if `parent_station` is empty.<br> - Optional otherwise. | |
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.
It should not be conditionally forbidden for entrances. Entrances may not be near the streetnetwork, for example if an entrance of a trainstation is connecting a metro station. I think it would be good to be explicit about those entrances as well.
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 some station complexes that include both train and metro, perhaps this type of “entrance” could be covered within the scope of pathways such as “fare gates” or “exit gates”? That said, in certain use cases, modeling it as an “entrance” may indeed be the better approach (perhaps also related to whether the feed is the same or not?).
If an entrance of a particular station cannot be reached directly from the streetnetwork, it seems that this entrance would be accessed through another station’s entrance. Would this also imply the need for an additional level above “station”? At present, the introduction of stop_access limited only to location_type=0 may not adequately handle all complex use cases. Would it be more appropriate to leave the application of this field to entrances, and “station clusters”, for discussion together in the phase three?
(We’ve already had recent cases where a condition was initially forbidden and later relaxed, and this should not raise backward-compatibility concerns.)
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.
No, I think it is unwise to ignore this situation. I think the problem is even worse specially for underground structures that may hint that there is an entrance with "above the ground access" when it is not it will lead to crazy stop/entrance street linking.
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.
underground structures that may hint that there is an entrance with "above the ground access" when it is not it will lead to crazy stop/entrance street linking.
Sorry my previous comment may have caused some confusion...
Just quickly checked the current definition of entrance (location_type=2) in the spec — “A location where passengers can enter or exit a station from the street.” This seems to indicate that such a location should not be modeled as an entrance?
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'm relatively new to pathways and with an organization that doesn't use OTP, but I think this gets to the heart of the issue (or at least my lack of understanding), that the use of the current definition of entrance (location_type=2) should potentially be broader than how it's currently used. Is there any reason that entrances/exits can be placed both at the boundaries of an agency's property AND adjacent to any doors into a physical station area? I don't come from the trip planner side and don't know how the algorithms work, but it seems that would allow for either using agency path through their property or the trip planner's street network to get to any/all stops (location_type = 0) within the parent station via the shortest route. The inside/outside boundary becomes less important than geographic places to connect to the transit complex as a whole. This may create a path that includes multiple entrances (or exits) along a path, but is that an issue? To me, more entrances/exit points = better. Any reason a entry/exit (2) or stop (0) can't also act as a generic (3) stop/node?
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.
@ffisherBART here is my personal thought:
In North America, most transit structures are typically the property of a single agency. In Europe and Asia, situations could be more complex: for example, multiple transit operators may share a structure that includes multiple train and subway services, or a transit structure may be integrated within a large shopping mall structure. If entrances are immediately opened up for any door into the physical station area without considering these cases, it could result in many entrances that are “not reachable from the street network” (since a specific agency may not be able to produce data outside of its own property). While the current definition of entrances — serving clearly as the boundary between the street network and the station structure — does not perfectly capture all use cases, it can, when used properly, prevent trip planners from providing “incorrect navigation.”
There may be room to discuss expanding the definition of entrances, but I think it may be more appropriate to consider this together with topics such as “station clusters” and/or “cross-feed reference” in the future.
Returning to this PR, its intent is not to solve all station modeling issues, but rather to focus specifically on how a "stop" can be accessed. I see this as an incremental but important step toward improving station modeling.
|
+1 PVTA |
|
+1 LA Metro |
|
+1 from @interline-io This clarifies a confusion that we've also heard as trip planners/routing engines have consumed pathways data produced by Interline's tools and clients. We will add support. |
|
+1 from Google |
|
+1 from ODPT (Association for Open Data of Public Transportation, Japan) |
|
+1 from the french NAP transport.data.gouv.fr |
|
+1 from Japan Association for Bus Digitalization (日本バス情報協会) |
Co-authored-by: Weston Shippy <[email protected]>
|
+1 Trillium |
|
+1 from the MBTA |
|
+1 from Actionfigure. |
|
+1 from Aoimori Web Koubou(青い森ウェブ工房) |
|
+1 from Caltrans |
|
+1 from BART |
|
The vote passed on 2025-09-22 at 23:59:59 UTC. 14 votes in favour and no votes against. Votes came from: Thank you to everyone who participated! |
This PR adds a
stop_accessfield instops.txtto indicate how the stop is accessed for a particular station. Please refer to this proposal for details.We expect this field to clarify the following:
Adding this field is also the first phase of our three-phase plan to improve station modeling. For details on previous discussions, please refer to issue #438.