Types of GTFS stops
The word "stop" in a public transport network is commonly used to describe a wide range of things, including stations, platforms, shelters, poles, and more.
The GTFS definition of a stop is just as broad, but it can be more precise when the gtfs.txt
file contains two optional columns: location_type
and parent_station
.
Location type
There are five valid location types defined by the keys 0
, 1
, 2
, 3
and 4
.
-
0
(or blank) is aSTOP
orPLATFORM
. Both represent a location where travellers can (un)board a vehicle, such as a tram shelter or a train platform. The difference between the two is whether they have a parent stop or not. ASTOP
does not: it's a single, independent location (like an isolated pole on the street). APLATFORM
does, it belongs to aSTATION
. -
1
is aSTATION
. It represents a structure that contains one or morePLATFORMS
, such as a train or subway station. -
2
is anENTRANCE/EXIT
of aSTATION
, i.e. a place where travellers can access a station from the street. -
3
is aGENERIC
location inside aSTATION
that doesn't match any other type. -
4
is aBOARDING AREA
, which is a section of aPLATFORM
with some special boarding feature, such as a ramp for wheelchair accessibility.
So GTFS stops basically fall into one or two of two categories:
-
locations where vehicles physically stop to pick up and/or drop off travellers (=
STOPS
,PLATFORMS
andBOARDING AREAS
) -
locations that represent a (part of a)
STATION
(= all types exceptSTOP
).
Parent station
The parent_station
property is required when a stop represents anything other than an independent STOP
or an encompassing STATION
.
It must contain a valid stop_id
matching:
-
a
STATION
for stops representing aPLATFORM
,ENTRANCE/EXIT
, orGENERIC
location. -
a
PLATFORM
for stops representing aBOARDING AREA
.
Example
There is a major square in the city of Brussels named Place De Brouckère, which is considered by many locals to be the central point of Brussels. Many stops located in and around this square are listed in STIB/MIVB's (i.e. the city's public transport operator) stops.txt
GTFS file, from which this sample was taken:
stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station
1820,"DE BROUCKERE",50.850478,4.351300,0,
2070,"DE BROUCKERE",50.853120,4.353578,0,
2594,"DE BROUCKERE",50.850734,4.352937,0,
2595,"DE BROUCKERE",50.850504,4.353890,0,
2596,"DE BROUCKERE",50.849654,4.352651,0,
3465,"DE BROUCKERE",50.852420,4.351157,0,
0010106,"4 - Boulevard Anspach",50.850262,4.351740,2,6
0010206,"2 - Place De Brouckère",50.851997,4.353216,2,6
0010306,"3 - Place De Brouckère",50.851161,4.352890,2,6
0010406,"1 - Place De Brouckère",50.851404,4.352492,2,6
6,"DE BROUCKERE",50.849821,4.352486,1,
0501,"DE BROUCKERE",50.851494,4.352876,0,6
0506,"DE BROUCKERE",50.851746,4.353415,0,6
8011,"DE BROUCKERE",50.850095,4.352165,0,6
8012,"DE BROUCKERE",50.849821,4.352486,0,6
This sample illustrates 4 of the 6 stop types:
The first 6 rows represent individual bus poles at street level, i.e. the STOP
type given by location_type:0 + parent_station:(blank)
.
The next 4 rows represent a metro station's access points, as specified by location_type:2 + parent_station:6
("6" being the station's stop_id
). One entrance/exit is located on the boulevard that crosses the square, the other three on the Place De Brouckère.
The 7th row is the metro STATION
as a whole, as described by location_type:1 + parent_station:(blank)
.
This station is served by two lines, both running in two directions, so the station has four PLATFORMS
described in the final 4 rows with location_type:0 + parent_station:6
.