Summary:
Add the ability to specify which timezone a stop/station is in, in
order to facilitate the specification of intercity service.
Motivation:
For intercity services which cross timezone boundaries, it's necessary
to determine which timezone the start and end stops are in so that a
client can display the appropriate local time at each point. While
it's theoretically possible to determine a timezone from a
latitude/longitude geocode, it's non-trivial. Attaching a timezone to
stops and stations makes it easier for a GTFS-consuming application to
determine the correct offset while allowing stop times to still be
specified relative to a single time zone.
Proposal:
The following field would be added to the stops.txt file:
stop_timezone (optional):
The stop_timezone field contains the timezone in which this stop or
station is located. Please refer to
http://en.wikipedia.org/wiki/List_of_tz_zones for a list of valid
values. If omitted, the stop should be assumed to be located in the
timezone specified by agency_timezone in agency.txt.
When a stop has a parent station, the stop is considered to be in the
time zone specified by the parent station's stop_timezone value. If
the parent has no stop_timezone value, the stops that belong to that
station are assumed to be the time zone specified by agency_timezone,
even if the stops have their own stop_timezone values. In other
words, if a given stop has a parent_station value, any stop_timezone
value specified for that stop must be ignored.
Even if stop_timezone values are provided in stops.txt, the times in
stop_times.txt should continue to be specified as time since midnight
in the time zone specified by agency_timezone in agency.txt. This
ensures that the time values in a trip always increase over the course
of a trip, regardless of which time zones the trip crosses.
Adoption and Testing:
A number of agencies are using this feature. An example of an agency using this feature with a public feed is the chemultthruway-or-us feed hosted at oregon-gtfs.com: