For stops contained within large stations, either above ground or underground as in a subway, there may be multiple entrances that are far apart from each other or from the actual location where the vehicle stops within the station.
For an example, please see the following screenshot:
http://img844.imageshack.us/img844/7852/stationentrances.jpg
This results in several problems:
1) Bad routing instructions and/or decisions, or inability to give specific instructions. Because the routing algorithm has only the stop coordinates, it may wrongly direct a person to a location above ground where there is no entrance. It will not be able to determine what side of the street the station is on, if crossing the street is necessary, etc. In the above example, it might take 4-5 minutes to walk from one entrance to the other. Ignoring this walking time might cause an algorithm to suggest a route that cannot be physically reached by the walker, or to ignore a good route when the walker is right next to the entrance (but far from the center of mass stop location).
2) Ambiguity in the assignment of lat/lon on behalf of the transit authority. Should the stop lat/lon be set at the approximate station center of mass, or where the vehicle is most likely to stop, or at one of the various entrances of the station? And if so, which one? Currently, this is unclear.
I propose to solve these problems in a backwards compatible way by adding two new optional files. First, I propose the optional entrances.txt file:
entrances.txt
entrance_id,stop_id,entrance_lat,entrance_lon,entrance_type,entrance_heading, entrance_street
The first four fields are required. entrance_id is database unique identifier for the entrance. stop_id associates this entrance with the stop. The optional entrance_type would allow to specify what type of entrance it is. ie, doorway, staircase, elevator, escalator. The optional entrance_heading parameter would specify the orientation (this might be useful for showing a streetview image that faces the front side of the entrance rather than the backside). The optional entrance_street field would list the name of the street that the entrance is on or most accessible from.
In some cases, it may be the case that a large station has multiple entrances, and certain trips are only accessible through certain entrances. It will be assumed by default that any entrance that is linked to a stop can be used to physically access that stop. However, the following optional exceptions file would allow transit authorities to specify exceptions:
entrance_exceptions.txt
entrance_id,route_id,trip_id
route_id and trip_id are both optional fields. However, one of the two must be specified. By specifying a entrance_id and route_id pair, it means that this route is NOT accessible by this entrance. This is the preferred method of specifying exceptions. However, in some cases it may be that exceptions have to be listed at the trip level, in which case exceptions can also be listed by entrance_id and trip_id, leaving route_id blank.
Lastly, I would like to point out that each "stop" in stops.txt is either a location where a transit vehicle stops, or it is a more abstract "station" that contains other stops. Going forward, it would be nice if stations could be described more clearly in their own table...specifying station name, whether or not the station is above or below ground, etc.
> --
> You received this message because you are subscribed to the Google
> Groups "General Transit Feed Spec Changes" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/gtfs-changes/-/YFAPOMRv7YMJ.
> To post to this group, send email to gtfs-c...@googlegroups.com.
> To unsubscribe from this group, send email to gtfs-changes
> +unsub...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/gtfs-changes?hl=en.
To unsubscribe from this group, send email to gtfs-changes...@googlegroups.com.
To unsubscribe from this group, send email to gtfs-changes+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "General Transit Feed Spec Changes" group.
To post to this group, send email to gtfs-c...@googlegroups.com.
To unsubscribe from this group, send email to gtfs-changes+unsubscribe@googlegroups.com.
1) The ability to generate basic routing instructions that are correct.
2) The ability to optimize those routes for special interest groups (such as the disabled).
3) Much much lower down on the list, the ability to calculate accurate walking times between stops inside a station, or perhaps to give specific walking instructions inside of stations.
Do people agree with that overall prioritization?
As it stands, first base isn't covered yet: it is not possible to generate correct routes when embarking or disembarking from a large station (ie, subway) because the internal subway stops do not correspond to streets above. This results in incorrect directions telling you to go down the wrong street in order to get on the subway, or to exit onto the wrong street when leaving the subway, which can be extremely confusing to consumers who are relying on routing instructions.
In order to fix this first priority, we need to know entrance locations. If we JUST had entrance locations, that would be an improvement. However, it wouldn't fully solve #1, because we also need to know whether or not these entrances can be used to get to the internal stops in question. It is not always the case that every entrance can be used to reach every internal stop. If we simply add entrances without giving any way to specify exceptions, then routing algorithms will specifically direct users into the wrong entrance (which may be on the wrong street), and this may be even more infuriating to a user than not being directed to an entrance at all.
If transit authorities all provided graphs for their internal walkways, then that would solve the problem. However, the spec for this is a long way off, and generating this information would be a lot of work...possibly causing a lot of transit authorities to not provide the information even after the spec is (someday) completed. Therefore, I find it preferable if we can specify the critical information now without being reliant on the pathway spec, in a way that also does not hinder the creation of a future pathway spec.
An exception table is extremely simple to specify (literally, juust 3 columns), its usually not even needed, and when it is, it would be a small amount of work that is easy to make without the need for detailed floor-plan information, so I think its much more likely that transit authorities would be willing to provide this.
In addition, it is unlikely that the additional complexity of internal pathways would be used for much. Routing algorithms are unlikely to be providing extremely detailed directions inside of a station, so the only tangible benefit is slightly improved estimation of walk times between stops, but this could already be approximated sufficiently based on the surface distance between stops. In the future, if we have both a pathway graph and an exception table, a transit agency could choose to implement one or the other -- if they have pathways, its going to supercede the exception table, but some agencies may prefer to go the simpler route of listing an exception table if they don't have all the necessary and complex pathway info.
Given stop locations (and exceptions), it would then be possible to generate correct routing paths -- but a routing protocol also needs to communicate that route to the user in an understandable way. If the entrance is a street elevator, but the user is expecting to see a staircase, simply saying "Enter the station" may be ambiguous and confusing. It would be much better if the directions could say "Take the elevator down to the station." For this reason, I feel that it is important to keep entrance type as a field that can be easily specified along with the entrances, rather than burying it into some future complex internal pathway specification that is going to be a long time coming, and which most agencies will probably not use anyway.
In a future pathway spec, I suspect that the most natural way to represent this information is with a graph structure, where edges correspond to walkways which can be given a type such as "walkay," "stairs", "escalator" etc that are all linked together. These edges would be linked to nodes, one of those nodes would be the entrance/exit node of the station, which means that if we store entrance type as part of the pathway structure, it would need to be looked up by the convoluted means of first searching for a pathway edge that connects to the specified entrance node, then getting the type of this edge...and that method might break down when there are multiple internal pathways leading to the same entrance that have different types. Yet another reason why I feel that entrance type should be specified on the entrances themselves, before the pathway spec is here.
Stuart J, as you point out, the GTFS structure does look and relate like database tables. Well, if it walks and talks like a Duck, maybe best to call it a Duck? Honestly, I find that the typical relational database model is the simplest and most famiiliar structure. When we start having multiple types of records stored in the same table, that's translated into additional complexity for both writing and reading the data.
You have noted that your organization already has put entrances in the stops table, and I understand your desire to have a convenient mapping to whatever the new format may be. However, whatever the new format comes out to be, it's not going to be exactly what you had before (at least not for everybody), and when it comes down to it, it's easier to map into a simple relational model than to map into an ad-hoc non-relational model, even if it bears some similarity to your present system.
I'll willing to admit that there are some potential advantages to
putting entrances in a separate file, but most of my reluctance boiled
down to the number of agencies already using the original proposal.
However, after some internal discussion, I'm willing to consider the
new proposal along with tackling the job of potentially helping to
convert existing feeds.
That said, I'm curious if anyone else is -1 on the proposed separate
entrances file. Stuart J? Anyone else?
Brian
> --
> You received this message because you are subscribed to the Google Groups
> "General Transit Feed Spec Changes" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/gtfs-changes/-/ju4hEAp9wnoJ.
>
> To post to this group, send email to gtfs-c...@googlegroups.com.
> To unsubscribe from this group, send email to
> gtfs-changes...@googlegroups.com.