Skip to content

Commit 1540c87

Browse files
Add stops.stop_access field (#515)
* Add stops.stop_access field * Add optional desc * Add restriction on pathways.from/to_stop_id * stop_access=0 clarification * Remove "The stop/platform is not part of the main station structure" * Modify pathways semantics * Remove "outside station structure..." * Clarify subject for stop_access=1 Co-authored-by: Weston Shippy <[email protected]> * Add comma to avoid potential confusion --------- Co-authored-by: Weston Shippy <[email protected]>
1 parent 4f01666 commit 1540c87

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

gtfs/spec/en/reference.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ Primary key (`stop_id`)
221221
| `wheelchair_boarding` | Enum | Optional | Indicates whether wheelchair boardings are possible from the location. Valid options are: <br><br>For parentless stops:<br>`0` or empty - No accessibility information for the stop.<br>`1` - Some vehicles at this stop can be boarded by a rider in a wheelchair.<br>`2` - Wheelchair boarding is not possible at this stop. <br><br>For child stops: <br>`0` or empty - Stop will inherit its `wheelchair_boarding` behavior from the parent station, if specified in the parent.<br>`1` - There exists some accessible path from outside the station to the specific stop/platform.<br>`2` - There exists no accessible path from outside the station to the specific stop/platform.<br><br> For station entrances/exits: <br>`0` or empty - Station entrance will inherit its `wheelchair_boarding` behavior from the parent station, if specified for the parent.<br>`1` - Station entrance is wheelchair accessible.<br>`2` - No accessible path from station entrance to stops/platforms. |
222222
| `level_id` | Foreign ID referencing `levels.level_id` | Optional | Level of the location. The same level may be used by multiple unlinked stations.|
223223
| `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. |
224-
224+
| `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` - Consuming applications should generate directions for access 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. |
225225

226226
### routes.txt
227227

@@ -719,17 +719,20 @@ Files [pathways.txt](#pathwaystxt) and [levels.txt](levelstxt) use a graph repre
719719

720720
To navigate from the station entrance/exit (a node represented as a location with `location_type=2`) to a platform (a node represented as a location with `location_type=0` or empty), the rider will move through walkways, fare gates, stairs, and other edges represented as pathways. Generic nodes (nodes represented with `location_type=3`) can be used to connect pathways throughout a station.
721721

722-
Pathways must be defined exhaustively in a station. If any pathways are defined, it is assumed that all pathways throughout the station are represented. Therefore, the following guidelines apply:
722+
Pathways are intended to exhaustively define the internal access graph of a station. If any pathways are defined within a station, data consumers should assume that all relevant connections within that station are described. However, the optional `stop_access` field in `stops.txt` may be used to explicitly define whether a stop is accessible directly from the street network or through the station's defined pathways. Therefore, the following guidelines apply:
723723

724-
- No dangling locations: If any location within a station has a pathway, then all locations within that station should have pathways, except for platforms that have boarding areas (`location_type=4`, see guideline below).
724+
- No dangling locations: If any location within a station has a pathway, then all locations within that station should have pathways, except
725+
- Platforms that have boarding areas (`location_type=4`, see guideline below)
726+
- Stops (`location_type=0` or empty) with `stops.stop_access=1`
725727
- No pathways for a platform with boarding areas: A platform (`location_type=0` or empty) that has boarding areas (`location_type=4`) is treated as a parent object, not a point. In such cases, the platform must not have pathways assigned. All pathways should be assigned for each of the platform's boarding areas.
726-
- No locked platforms: Each platform (`location_type=0` or empty) or boarding area (`location_type=4`) must be connected to at least one entrance/exit (`location_type=2`) via some chain of pathways. Stations not allowing a pathway to the outside of the station from a given platform are rare.
728+
- No locked platforms: If any location within a station has a pathway, each platform (`location_type=0` or empty) or boarding area (`location_type=4`) must be connected to at least one entrance/exit (`location_type=2`) via some chain of pathways — unless:
729+
- The stop (`location_type=0` or empty) is explicitly marked with `stops.stop_access=1`, in which case it is assumed to be directly accessible from the street network.
727730

728731
| Field Name | Type | Presence | Description |
729732
| ------ | ------ | ------ | ------ |
730733
| `pathway_id` | Unique ID | **Required** | Identifies a pathway. Used by systems as an internal identifier for the record. Must be unique in the dataset. <br><br> Different pathways may have the same values for `from_stop_id` and `to_stop_id`.<hr>_Example: When two escalators are side-by-side in opposite directions, or when a stair set and elevator go from the same place to the same place, different `pathway_id` may have the same `from_stop_id` and `to_stop_id` values._|
731-
| `from_stop_id` | Foreign ID referencing `stops.stop_id` | **Required** | Location at which the pathway begins.<br><br>Must contain a `stop_id` that identifies a platform (`location_type=0` or empty), entrance/exit (`location_type=2`), generic node (`location_type=3`) or boarding area (`location_type=4`).<br><br> Values for `stop_id` that identify stations (`location_type=1`) are forbidden.|
732-
| `to_stop_id` | Foreign ID referencing `stops.stop_id` | **Required** | Location at which the pathway ends.<br><br>Must contain a `stop_id` that identifies a platform (`location_type=0` or empty), entrance/exit (`location_type=2`), generic node (`location_type=3`) or boarding area (`location_type=4`).<br><br> Values for `stop_id` that identify stations (`location_type=1`) are forbidden.|
734+
| `from_stop_id` | Foreign ID referencing `stops.stop_id` | **Required** | Location at which the pathway begins.<br><br>Must contain a `stop_id` that identifies a platform (`location_type=0` or empty), entrance/exit (`location_type=2`), generic node (`location_type=3`) or boarding area (`location_type=4`).<br><br> Values for `stop_id` that identify stations (`location_type=1`), or stops (`location_type=0` or empty) with `stop_access=1`, are forbidden.|
735+
| `to_stop_id` | Foreign ID referencing `stops.stop_id` | **Required** | Location at which the pathway ends.<br><br>Must contain a `stop_id` that identifies a platform (`location_type=0` or empty), entrance/exit (`location_type=2`), generic node (`location_type=3`) or boarding area (`location_type=4`).<br><br> Values for `stop_id` that identify stations (`location_type=1`), or stops (`location_type=0` or empty) with `stop_access=1`, are forbidden.|
733736
| `pathway_mode` | Enum | **Required** | Type of pathway between the specified (`from_stop_id`, `to_stop_id`) pair. Valid options are: <br><br>`1` - Walkway. <br>`2` - Stairs. <br>`3` - Moving sidewalk/travelator. <br>`4` - Escalator. <br>`5` - Elevator. <br>`6` - Fare gate (or payment gate): A pathway that crosses into an area of the station where proof of payment is required to cross. Fare gates may separate paid areas of the station from unpaid ones, or separate different payment areas within the same station from each other. This information can be used to avoid routing passengers through stations using shortcuts that would require passengers to make unnecessary payments, like directing a passenger to walk through a subway platform to reach a busway. <br>`7`- Exit gate: A pathway exiting a paid area into an unpaid area where proof of payment is not required to cross.|
734737
| `is_bidirectional` | Enum | **Required** | Indicates the direction that the pathway can be taken:<br><br>`0` - Unidirectional pathway that can only be used from `from_stop_id` to `to_stop_id`.<br>`1` - Bidirectional pathway that can be used in both directions.<br><br>Exit gates (`pathway_mode=7`) must not be bidirectional.|
735738
| `length` | Non-negative float | Optional | Horizontal length in meters of the pathway from the origin location (defined in `from_stop_id`) to the destination location (defined in `to_stop_id`).<br><br>This field is recommended for walkways (`pathway_mode=1`), fare gates (`pathway_mode=6`) and exit gates (`pathway_mode=7`).|

0 commit comments

Comments
 (0)