From dfdf9ea21f41d6de20fb09f785fa92d057bbeb67 Mon Sep 17 00:00:00 2001 From: LeoFR Date: Thu, 16 Feb 2017 08:37:24 -0500 Subject: [PATCH 1/6] Add readable fields --- gtfs/spec/en/reference.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gtfs/spec/en/reference.md b/gtfs/spec/en/reference.md index 6bfd0884b..67689d007 100644 --- a/gtfs/spec/en/reference.md +++ b/gtfs/spec/en/reference.md @@ -31,6 +31,7 @@ This section defines terms that are used throughout this document. * **Field required** - The field column must be included in your feed, and a value must be provided for each record. Some required fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. Please see the field definition for details. * **Field optional** - The field column may be omitted from your feed. If you choose to include an optional column, each record in your feed must have a value for that column. You may include an empty string as a value for records that do not have values for the column. Some optional fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. * **Dataset unique** - The field contains a value that maps to a single distinct entity within the column. For example, if a route is assigned the ID **1A**, then no other route may use that route ID. However, you may assign the ID **1A** to a location because locations are a different type of entity than routes. +* **Readable field** - The field should contain the same information that its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speach, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Dr" should be "Drive" or "Doctor") or kept to be read as it ("JFK Airport" is said abbreviated). ## Feed Files @@ -80,6 +81,7 @@ File: **Required** | ------ | ------ | ------ | | agency_id | Optional | The **agency_id** field is an ID that uniquely identifies a transit agency. A transit feed may represent data from more than one agency. The **agency_id** is dataset unique. This field is optional for transit feeds that only contain data for a single agency. | | agency_name | Required | The **agency_name** field contains the full name of the transit agency. Google Maps will display this name. | +| readable_agency_name | **Optional** | Readable version of the **agency_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | agency_url | Required | The **agency_url** field contains the URL of the transit agency. The value must be a fully qualified URL that includes **http**:// or **https**://, and any special characters in the URL must be correctly escaped. See http://www.w3.org/Addressing/URL/4_URI_Recommentations.html for a description of how to create fully qualified URL values. | | agency_timezone | Required | The **agency_timezone** field contains the timezone where the transit agency is located. Timezone names never contain the space character but may contain an underscore. Please refer to http://en.wikipedia.org/wiki/List_of_tz_zones for a list of valid values. If multiple agencies are specified in the feed, each must have the same agency_timezone. | | agency_lang | Optional | The **agency_lang field** contains a two-letter ISO 639-1 code for the primary language used by this transit agency. The language code is case-insensitive (both en and EN are accepted). This setting defines capitalization rules and other language-specific settings for all text contained in this transit agency's feed. Please refer to http://www.loc.gov/standards/iso639-2/php/code_list.php for a list of valid values. | @@ -96,6 +98,7 @@ File: **Required** | stop_id | **Required** | The **stop_id** field contains an ID that uniquely identifies a stop, station, or station entrance. Multiple routes may use the same stop. The **stop_id** is used by systems as an internal identifier of this record (e.g., primary key in database), and therefore the **stop_id** must be dataset unique. | | | | stop_code | Optional | The **stop_code** field contains short text or a number that uniquely identifies the stop for passengers. Stop codes are often used in phone-based transit information systems or printed on stop signage to make it easier for riders to get a stop schedule or real-time arrival information for a particular stop. The **stop_code** field contains short text or a number that uniquely identifies the stop for passengers. The **stop_code** can be the same as **stop_id** if it is passenger-facing. This field should be left blank for stops without a code presented to passengers. | | | | stop_name | **Required** | The **stop_name** field contains the name of a stop, station, or station entrance. Please use a name that people will understand in the local and tourist vernacular. | | | +| readable_stop_name | **Optional** | Readable version of the **stop_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | stop_desc | Optional | The **stop_desc** field contains a description of a stop. Please provide useful, quality information. Do not simply duplicate the name of the stop. | | | | stop_lat | **Required** | The **stop_lat** field contains the latitude of a stop, station, or station entrance. The field value must be a valid WGS 84 latitude. | | | | stop_lon | **Required** | The **stop_lon** field contains the longitude of a stop, station, or station entrance. The field value must be a valid WGS 84 longitude value from -180 to 180. | | | @@ -133,7 +136,9 @@ File: **Required** | route_id | **Required** | The **route_id** field contains an ID that uniquely identifies a route. The route_id is dataset unique. | | agency_id | Optional | The **agency_id** field defines an agency for the specified route. This value is referenced from the [agency.txt](#agencytxt) file. Use this field when you are providing data for routes from more than one agency. | | route_short_name | **Required** | The **route_short_name** contains the short name of a route. This will often be a short, abstract identifier like "32", "100X", or "Green" that riders use to identify a route, but which doesn't give any indication of what places the route serves. At least one of *route_short_name* or *route_long_name* must be specified, or potentially both if appropriate. If the route does not have a short name, please specify a *route_long_name* and use an empty string as the value for this field. | +| readable_route_short_name | **Optional** | Readable version of the **route_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | route_long_name | **Required** | The **route_long_name** contains the full name of a route. This name is generally more descriptive than the *route_short_name* and will often include the route's destination or stop. At least one of *route_short_name* or *route_long_name* must be specified, or potentially both if appropriate. If the route does not have a long name, please specify a *route_short_nam*e and use an empty string as the value for this field. | +| readable_route_long_name | **Optional** | Readable version of the **route_long_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | route_desc | Optional | The **route_desc** field contains a description of a route. Please provide useful, quality information. Do not simply duplicate the name of the route. For example, "**A** trains operate between Inwood-207 St, Manhattan and Far Rockaway-Mott Avenue, Queens at all times. Also from about 6AM until about midnight, additional **A** trains operate between Inwood-207 St and Lefferts Boulevard (trains typically alternate between Lefferts Blvd and Far Rockaway)." | | route_type | **Required** | The **route_type** field describes the type of transportation used on a route. Valid values for this field are: | | | | * **0** - Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area. | @@ -158,7 +163,9 @@ File: **Required** | service_id | **Required** | The **service_id** contains an ID that uniquely identifies a set of dates when service is available for one or more routes. This value is referenced from the [calendar.txt](#calendartxt) or [calendar_dates.txt](#calendar_datestxt) file. | | trip_id | **Required** | The **trip_id** field contains an ID that identifies a trip. The **trip_id** is dataset unique. | | trip_headsign | Optional | The **trip_headsign** field contains the text that appears on a sign that identifies the trip's destination to passengers. Use this field to distinguish between different patterns of service in the same route. If the headsign changes during a trip, you can override the **trip_headsign** by specifying values for the the **stop_headsign** field in [stop_times.txt](#stop_timestxt). | +| readable_trip_headsign | **Optional** | Readable version of the **trip_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | trip_short_name | Optional | The **trip_short_name** field contains the text that appears in schedules and sign boards to identify the trip to passengers, for example, to identify train numbers for commuter rail trips. If riders do not commonly rely on trip names, please leave this field blank. A **trip_short_name** value, if provided, should uniquely identify a trip within a service day; it should not be used for destination names or limited/express designations. | +| readable_trip_short_name | **Optional** | Readable version of the **trip_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | direction_id | Optional | The **direction_id** field contains a binary value that indicates the direction of travel for a trip. Use this field to distinguish between bi-directional trips with the same **route_id**. This field is not used in routing; it provides a way to separate trips by direction when publishing time tables. You can specify names for each direction with the **trip_headsign** field. | | | | * 0 - travel in one direction (e.g. outbound travel) | | | | * 1 - travel in the opposite direction (e.g. inbound travel) | @@ -215,6 +222,7 @@ File: **Required** | stop_id | **Required** | The **stop_id** field contains an ID that uniquely identifies a stop. Multiple routes may use the same stop. The **stop_id** is referenced from the [stops.txt](#stopstxt) file. If **location_type** is used in [stops.txt](#stopstxt), all stops referenced in [stop_times.txt](#stop_timestxt) must have **location_type** of 0. Where possible, **stop_id** values should remain consistent between feed updates. In other words, stop A with **stop_id 1** should have **stop_id 1** in all subsequent data updates. If a stop is not a time point, enter blank values for **arrival_time** and **departure_time**. | | | stop_sequence | **Required** | The **stop_sequence** field identifies the order of the stops for a particular trip. The values for **stop_sequence** must be non-negative integers, and they must increase along the trip. For example, the first stop on the trip could have a **stop_sequence** of 1, the second stop on the trip could have a **stop_sequence** of 23, the third stop could have a **stop_sequence** of 40, and so on. | | | stop_headsign | Optional | The **stop_headsign** field contains the text that appears on a sign that identifies the trip's destination to passengers. Use this field to override the default **trip_headsign** when the headsign changes between stops. If this headsign is associated with an entire trip, use **trip_headsign** instead. | | +| readable_stop_headsign | **Optional** | Readable version of the **stop_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | pickup_type | Optional | The **pickup_type** field indicates whether passengers are picked up at a stop as part of the normal schedule or whether a pickup at the stop is not available. This field also allows the transit agency to indicate that passengers must call the agency or notify the driver to arrange a pickup at a particular stop. Valid values for this field are: | | | | | * **0** - Regularly scheduled pickup | | | | | * **1** - No pickup available | | From 7bf7b471ac9d4def258949507b0a03b380fec09e Mon Sep 17 00:00:00 2001 From: LeoFR Date: Thu, 16 Feb 2017 08:38:55 -0500 Subject: [PATCH 2/6] Fix typo in speech --- gtfs/spec/en/reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtfs/spec/en/reference.md b/gtfs/spec/en/reference.md index 67689d007..42f47e4f7 100644 --- a/gtfs/spec/en/reference.md +++ b/gtfs/spec/en/reference.md @@ -31,7 +31,7 @@ This section defines terms that are used throughout this document. * **Field required** - The field column must be included in your feed, and a value must be provided for each record. Some required fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. Please see the field definition for details. * **Field optional** - The field column may be omitted from your feed. If you choose to include an optional column, each record in your feed must have a value for that column. You may include an empty string as a value for records that do not have values for the column. Some optional fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. * **Dataset unique** - The field contains a value that maps to a single distinct entity within the column. For example, if a route is assigned the ID **1A**, then no other route may use that route ID. However, you may assign the ID **1A** to a location because locations are a different type of entity than routes. -* **Readable field** - The field should contain the same information that its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speach, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Dr" should be "Drive" or "Doctor") or kept to be read as it ("JFK Airport" is said abbreviated). +* **Readable field** - The field should contain the same information that its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speech, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Dr" should be "Drive" or "Doctor") or kept to be read as it ("JFK Airport" is said abbreviated). ## Feed Files From ddad2da001a593464f7038b26092174ab2e7fd7d Mon Sep 17 00:00:00 2001 From: LeoFR Date: Thu, 16 Feb 2017 09:26:11 -0500 Subject: [PATCH 3/6] Add Roman Numeral example (Elizabeth the first) --- gtfs/spec/en/reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtfs/spec/en/reference.md b/gtfs/spec/en/reference.md index 42f47e4f7..88c72d872 100644 --- a/gtfs/spec/en/reference.md +++ b/gtfs/spec/en/reference.md @@ -31,7 +31,7 @@ This section defines terms that are used throughout this document. * **Field required** - The field column must be included in your feed, and a value must be provided for each record. Some required fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. Please see the field definition for details. * **Field optional** - The field column may be omitted from your feed. If you choose to include an optional column, each record in your feed must have a value for that column. You may include an empty string as a value for records that do not have values for the column. Some optional fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. * **Dataset unique** - The field contains a value that maps to a single distinct entity within the column. For example, if a route is assigned the ID **1A**, then no other route may use that route ID. However, you may assign the ID **1A** to a location because locations are a different type of entity than routes. -* **Readable field** - The field should contain the same information that its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speech, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Dr" should be "Drive" or "Doctor") or kept to be read as it ("JFK Airport" is said abbreviated). +* **Readable field** - The field should contain the same information that its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speech, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Elizabeth I" should be "Elizabeth the first") or kept to be read as it ("JFK Airport" is said abbreviated). ## Feed Files From fab5013477631524282bef04818d9c56289b4d0f Mon Sep 17 00:00:00 2001 From: LeoFR Date: Fri, 24 Feb 2017 15:32:31 -0500 Subject: [PATCH 4/6] Rename readable fields into tts fields --- gtfs/spec/en/reference.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gtfs/spec/en/reference.md b/gtfs/spec/en/reference.md index 88c72d872..06a3039cc 100644 --- a/gtfs/spec/en/reference.md +++ b/gtfs/spec/en/reference.md @@ -31,7 +31,7 @@ This section defines terms that are used throughout this document. * **Field required** - The field column must be included in your feed, and a value must be provided for each record. Some required fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. Please see the field definition for details. * **Field optional** - The field column may be omitted from your feed. If you choose to include an optional column, each record in your feed must have a value for that column. You may include an empty string as a value for records that do not have values for the column. Some optional fields permit an empty string as a value. To enter an empty string, just omit any text between the commas for that field. Note that 0 is interpreted as "a string of value 0", and is not an empty string. * **Dataset unique** - The field contains a value that maps to a single distinct entity within the column. For example, if a route is assigned the ID **1A**, then no other route may use that route ID. However, you may assign the ID **1A** to a location because locations are a different type of entity than routes. -* **Readable field** - The field should contain the same information that its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speech, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Elizabeth I" should be "Elizabeth the first") or kept to be read as it ("JFK Airport" is said abbreviated). +* **Text-to-speech field** - The field should contain the same information than its parent field (on which it falls back if it is empty). It is aimed to be read as text-to-speech, therefore, abbreviation should be either removed ("St" should be either read as "Street" or "Saint"; "Elizabeth I" should be "Elizabeth the first") or kept to be read as it ("JFK Airport" is said abbreviated). ## Feed Files @@ -81,7 +81,7 @@ File: **Required** | ------ | ------ | ------ | | agency_id | Optional | The **agency_id** field is an ID that uniquely identifies a transit agency. A transit feed may represent data from more than one agency. The **agency_id** is dataset unique. This field is optional for transit feeds that only contain data for a single agency. | | agency_name | Required | The **agency_name** field contains the full name of the transit agency. Google Maps will display this name. | -| readable_agency_name | **Optional** | Readable version of the **agency_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_agency_name | **Optional** | Readable version of the **agency_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | agency_url | Required | The **agency_url** field contains the URL of the transit agency. The value must be a fully qualified URL that includes **http**:// or **https**://, and any special characters in the URL must be correctly escaped. See http://www.w3.org/Addressing/URL/4_URI_Recommentations.html for a description of how to create fully qualified URL values. | | agency_timezone | Required | The **agency_timezone** field contains the timezone where the transit agency is located. Timezone names never contain the space character but may contain an underscore. Please refer to http://en.wikipedia.org/wiki/List_of_tz_zones for a list of valid values. If multiple agencies are specified in the feed, each must have the same agency_timezone. | | agency_lang | Optional | The **agency_lang field** contains a two-letter ISO 639-1 code for the primary language used by this transit agency. The language code is case-insensitive (both en and EN are accepted). This setting defines capitalization rules and other language-specific settings for all text contained in this transit agency's feed. Please refer to http://www.loc.gov/standards/iso639-2/php/code_list.php for a list of valid values. | @@ -98,7 +98,7 @@ File: **Required** | stop_id | **Required** | The **stop_id** field contains an ID that uniquely identifies a stop, station, or station entrance. Multiple routes may use the same stop. The **stop_id** is used by systems as an internal identifier of this record (e.g., primary key in database), and therefore the **stop_id** must be dataset unique. | | | | stop_code | Optional | The **stop_code** field contains short text or a number that uniquely identifies the stop for passengers. Stop codes are often used in phone-based transit information systems or printed on stop signage to make it easier for riders to get a stop schedule or real-time arrival information for a particular stop. The **stop_code** field contains short text or a number that uniquely identifies the stop for passengers. The **stop_code** can be the same as **stop_id** if it is passenger-facing. This field should be left blank for stops without a code presented to passengers. | | | | stop_name | **Required** | The **stop_name** field contains the name of a stop, station, or station entrance. Please use a name that people will understand in the local and tourist vernacular. | | | -| readable_stop_name | **Optional** | Readable version of the **stop_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_stop_name | **Optional** | Readable version of the **stop_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | stop_desc | Optional | The **stop_desc** field contains a description of a stop. Please provide useful, quality information. Do not simply duplicate the name of the stop. | | | | stop_lat | **Required** | The **stop_lat** field contains the latitude of a stop, station, or station entrance. The field value must be a valid WGS 84 latitude. | | | | stop_lon | **Required** | The **stop_lon** field contains the longitude of a stop, station, or station entrance. The field value must be a valid WGS 84 longitude value from -180 to 180. | | | @@ -136,9 +136,9 @@ File: **Required** | route_id | **Required** | The **route_id** field contains an ID that uniquely identifies a route. The route_id is dataset unique. | | agency_id | Optional | The **agency_id** field defines an agency for the specified route. This value is referenced from the [agency.txt](#agencytxt) file. Use this field when you are providing data for routes from more than one agency. | | route_short_name | **Required** | The **route_short_name** contains the short name of a route. This will often be a short, abstract identifier like "32", "100X", or "Green" that riders use to identify a route, but which doesn't give any indication of what places the route serves. At least one of *route_short_name* or *route_long_name* must be specified, or potentially both if appropriate. If the route does not have a short name, please specify a *route_long_name* and use an empty string as the value for this field. | -| readable_route_short_name | **Optional** | Readable version of the **route_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_route_short_name | **Optional** | Readable version of the **route_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | route_long_name | **Required** | The **route_long_name** contains the full name of a route. This name is generally more descriptive than the *route_short_name* and will often include the route's destination or stop. At least one of *route_short_name* or *route_long_name* must be specified, or potentially both if appropriate. If the route does not have a long name, please specify a *route_short_nam*e and use an empty string as the value for this field. | -| readable_route_long_name | **Optional** | Readable version of the **route_long_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_route_long_name | **Optional** | Readable version of the **route_long_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | route_desc | Optional | The **route_desc** field contains a description of a route. Please provide useful, quality information. Do not simply duplicate the name of the route. For example, "**A** trains operate between Inwood-207 St, Manhattan and Far Rockaway-Mott Avenue, Queens at all times. Also from about 6AM until about midnight, additional **A** trains operate between Inwood-207 St and Lefferts Boulevard (trains typically alternate between Lefferts Blvd and Far Rockaway)." | | route_type | **Required** | The **route_type** field describes the type of transportation used on a route. Valid values for this field are: | | | | * **0** - Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area. | @@ -163,9 +163,9 @@ File: **Required** | service_id | **Required** | The **service_id** contains an ID that uniquely identifies a set of dates when service is available for one or more routes. This value is referenced from the [calendar.txt](#calendartxt) or [calendar_dates.txt](#calendar_datestxt) file. | | trip_id | **Required** | The **trip_id** field contains an ID that identifies a trip. The **trip_id** is dataset unique. | | trip_headsign | Optional | The **trip_headsign** field contains the text that appears on a sign that identifies the trip's destination to passengers. Use this field to distinguish between different patterns of service in the same route. If the headsign changes during a trip, you can override the **trip_headsign** by specifying values for the the **stop_headsign** field in [stop_times.txt](#stop_timestxt). | -| readable_trip_headsign | **Optional** | Readable version of the **trip_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_trip_headsign | **Optional** | Readable version of the **trip_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | trip_short_name | Optional | The **trip_short_name** field contains the text that appears in schedules and sign boards to identify the trip to passengers, for example, to identify train numbers for commuter rail trips. If riders do not commonly rely on trip names, please leave this field blank. A **trip_short_name** value, if provided, should uniquely identify a trip within a service day; it should not be used for destination names or limited/express designations. | -| readable_trip_short_name | **Optional** | Readable version of the **trip_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_trip_short_name | **Optional** | Readable version of the **trip_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | direction_id | Optional | The **direction_id** field contains a binary value that indicates the direction of travel for a trip. Use this field to distinguish between bi-directional trips with the same **route_id**. This field is not used in routing; it provides a way to separate trips by direction when publishing time tables. You can specify names for each direction with the **trip_headsign** field. | | | | * 0 - travel in one direction (e.g. outbound travel) | | | | * 1 - travel in the opposite direction (e.g. inbound travel) | @@ -222,7 +222,7 @@ File: **Required** | stop_id | **Required** | The **stop_id** field contains an ID that uniquely identifies a stop. Multiple routes may use the same stop. The **stop_id** is referenced from the [stops.txt](#stopstxt) file. If **location_type** is used in [stops.txt](#stopstxt), all stops referenced in [stop_times.txt](#stop_timestxt) must have **location_type** of 0. Where possible, **stop_id** values should remain consistent between feed updates. In other words, stop A with **stop_id 1** should have **stop_id 1** in all subsequent data updates. If a stop is not a time point, enter blank values for **arrival_time** and **departure_time**. | | | stop_sequence | **Required** | The **stop_sequence** field identifies the order of the stops for a particular trip. The values for **stop_sequence** must be non-negative integers, and they must increase along the trip. For example, the first stop on the trip could have a **stop_sequence** of 1, the second stop on the trip could have a **stop_sequence** of 23, the third stop could have a **stop_sequence** of 40, and so on. | | | stop_headsign | Optional | The **stop_headsign** field contains the text that appears on a sign that identifies the trip's destination to passengers. Use this field to override the default **trip_headsign** when the headsign changes between stops. If this headsign is associated with an entire trip, use **trip_headsign** instead. | | -| readable_stop_headsign | **Optional** | Readable version of the **stop_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_stop_headsign | **Optional** | Readable version of the **stop_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | | pickup_type | Optional | The **pickup_type** field indicates whether passengers are picked up at a stop as part of the normal schedule or whether a pickup at the stop is not available. This field also allows the transit agency to indicate that passengers must call the agency or notify the driver to arrange a pickup at a particular stop. Valid values for this field are: | | | | | * **0** - Regularly scheduled pickup | | | | | * **1** - No pickup available | | @@ -434,4 +434,4 @@ The file contains information about the feed itself, rather than the services th | feed_lang | Required | The **feed_lang** field contains a IETF BCP 47 language code specifying the default language used for the text in this feed. This setting helps GTFS consumers choose capitalization rules and other language-specific settings for the feed. For an introduction to IETF BCP 47, please refer to http://www.rfc-editor.org/rfc/bcp/bcp47.txt and http://www.w3.org/International/articles/language-tags/. | | feed_start_date | Optional | The feed provides complete and reliable schedule information for service in the period from the beginning of the **feed_start_date** day to the end of the **feed_end_date** day. Both days are given as dates in YYYYMMDD format as for [calendar.txt](#calendartxt), or left empty if unavailable. The **feed_end_date** date must not precede the **feed_start_date** date if both are given. Feed providers are encouraged to give schedule data outside this period to advise of likely future service, but feed consumers should treat it mindful of its non-authoritative status. If **feed_start_date** or **feed_end_date** extend beyond the active calendar dates defined in [calendar.txt](#calendartxt) and [calendar_dates.txt](#calendar_datestxt), the feed is making an explicit assertion that there is no service for dates within the **feed_start_date** or **feed_end_date** range but not included in the active calendar dates. | | feed_end_date | Optional | (see above) | -| feed_version | Optional | The feed publisher can specify a string here that indicates the current version of their GTFS feed. GTFS-consuming applications can display this value to help feed publishers determine whether the latest version of their feed has been incorporated. | \ No newline at end of file +| feed_version | Optional | The feed publisher can specify a string here that indicates the current version of their GTFS feed. GTFS-consuming applications can display this value to help feed publishers determine whether the latest version of their feed has been incorporated. | From f5a840f546a55c30d1a593c22f007bcebdd135ac Mon Sep 17 00:00:00 2001 From: Tim Millet Date: Mon, 25 Nov 2019 17:39:47 -0500 Subject: [PATCH 5/6] Rename readable fields into tts fields (fix) --- gtfs/spec/en/reference.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gtfs/spec/en/reference.md b/gtfs/spec/en/reference.md index 06a3039cc..3e14fce7d 100644 --- a/gtfs/spec/en/reference.md +++ b/gtfs/spec/en/reference.md @@ -81,7 +81,7 @@ File: **Required** | ------ | ------ | ------ | | agency_id | Optional | The **agency_id** field is an ID that uniquely identifies a transit agency. A transit feed may represent data from more than one agency. The **agency_id** is dataset unique. This field is optional for transit feeds that only contain data for a single agency. | | agency_name | Required | The **agency_name** field contains the full name of the transit agency. Google Maps will display this name. | -| tts_agency_name | **Optional** | Readable version of the **agency_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_agency_name | **Optional** | Readable version of the **agency_name**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | agency_url | Required | The **agency_url** field contains the URL of the transit agency. The value must be a fully qualified URL that includes **http**:// or **https**://, and any special characters in the URL must be correctly escaped. See http://www.w3.org/Addressing/URL/4_URI_Recommentations.html for a description of how to create fully qualified URL values. | | agency_timezone | Required | The **agency_timezone** field contains the timezone where the transit agency is located. Timezone names never contain the space character but may contain an underscore. Please refer to http://en.wikipedia.org/wiki/List_of_tz_zones for a list of valid values. If multiple agencies are specified in the feed, each must have the same agency_timezone. | | agency_lang | Optional | The **agency_lang field** contains a two-letter ISO 639-1 code for the primary language used by this transit agency. The language code is case-insensitive (both en and EN are accepted). This setting defines capitalization rules and other language-specific settings for all text contained in this transit agency's feed. Please refer to http://www.loc.gov/standards/iso639-2/php/code_list.php for a list of valid values. | @@ -98,7 +98,7 @@ File: **Required** | stop_id | **Required** | The **stop_id** field contains an ID that uniquely identifies a stop, station, or station entrance. Multiple routes may use the same stop. The **stop_id** is used by systems as an internal identifier of this record (e.g., primary key in database), and therefore the **stop_id** must be dataset unique. | | | | stop_code | Optional | The **stop_code** field contains short text or a number that uniquely identifies the stop for passengers. Stop codes are often used in phone-based transit information systems or printed on stop signage to make it easier for riders to get a stop schedule or real-time arrival information for a particular stop. The **stop_code** field contains short text or a number that uniquely identifies the stop for passengers. The **stop_code** can be the same as **stop_id** if it is passenger-facing. This field should be left blank for stops without a code presented to passengers. | | | | stop_name | **Required** | The **stop_name** field contains the name of a stop, station, or station entrance. Please use a name that people will understand in the local and tourist vernacular. | | | -| tts_stop_name | **Optional** | Readable version of the **stop_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_stop_name | **Optional** | Readable version of the **stop_name**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | stop_desc | Optional | The **stop_desc** field contains a description of a stop. Please provide useful, quality information. Do not simply duplicate the name of the stop. | | | | stop_lat | **Required** | The **stop_lat** field contains the latitude of a stop, station, or station entrance. The field value must be a valid WGS 84 latitude. | | | | stop_lon | **Required** | The **stop_lon** field contains the longitude of a stop, station, or station entrance. The field value must be a valid WGS 84 longitude value from -180 to 180. | | | @@ -136,9 +136,9 @@ File: **Required** | route_id | **Required** | The **route_id** field contains an ID that uniquely identifies a route. The route_id is dataset unique. | | agency_id | Optional | The **agency_id** field defines an agency for the specified route. This value is referenced from the [agency.txt](#agencytxt) file. Use this field when you are providing data for routes from more than one agency. | | route_short_name | **Required** | The **route_short_name** contains the short name of a route. This will often be a short, abstract identifier like "32", "100X", or "Green" that riders use to identify a route, but which doesn't give any indication of what places the route serves. At least one of *route_short_name* or *route_long_name* must be specified, or potentially both if appropriate. If the route does not have a short name, please specify a *route_long_name* and use an empty string as the value for this field. | -| tts_route_short_name | **Optional** | Readable version of the **route_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_route_short_name | **Optional** | Readable version of the **route_short_name**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | route_long_name | **Required** | The **route_long_name** contains the full name of a route. This name is generally more descriptive than the *route_short_name* and will often include the route's destination or stop. At least one of *route_short_name* or *route_long_name* must be specified, or potentially both if appropriate. If the route does not have a long name, please specify a *route_short_nam*e and use an empty string as the value for this field. | -| tts_route_long_name | **Optional** | Readable version of the **route_long_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_route_long_name | **Optional** | Readable version of the **route_long_name**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | route_desc | Optional | The **route_desc** field contains a description of a route. Please provide useful, quality information. Do not simply duplicate the name of the route. For example, "**A** trains operate between Inwood-207 St, Manhattan and Far Rockaway-Mott Avenue, Queens at all times. Also from about 6AM until about midnight, additional **A** trains operate between Inwood-207 St and Lefferts Boulevard (trains typically alternate between Lefferts Blvd and Far Rockaway)." | | route_type | **Required** | The **route_type** field describes the type of transportation used on a route. Valid values for this field are: | | | | * **0** - Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area. | @@ -163,9 +163,9 @@ File: **Required** | service_id | **Required** | The **service_id** contains an ID that uniquely identifies a set of dates when service is available for one or more routes. This value is referenced from the [calendar.txt](#calendartxt) or [calendar_dates.txt](#calendar_datestxt) file. | | trip_id | **Required** | The **trip_id** field contains an ID that identifies a trip. The **trip_id** is dataset unique. | | trip_headsign | Optional | The **trip_headsign** field contains the text that appears on a sign that identifies the trip's destination to passengers. Use this field to distinguish between different patterns of service in the same route. If the headsign changes during a trip, you can override the **trip_headsign** by specifying values for the the **stop_headsign** field in [stop_times.txt](#stop_timestxt). | -| tts_trip_headsign | **Optional** | Readable version of the **trip_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_trip_headsign | **Optional** | Readable version of the **trip_headsign**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | trip_short_name | Optional | The **trip_short_name** field contains the text that appears in schedules and sign boards to identify the trip to passengers, for example, to identify train numbers for commuter rail trips. If riders do not commonly rely on trip names, please leave this field blank. A **trip_short_name** value, if provided, should uniquely identify a trip within a service day; it should not be used for destination names or limited/express designations. | -| tts_trip_short_name | **Optional** | Readable version of the **trip_short_name**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_trip_short_name | **Optional** | Readable version of the **trip_short_name**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | direction_id | Optional | The **direction_id** field contains a binary value that indicates the direction of travel for a trip. Use this field to distinguish between bi-directional trips with the same **route_id**. This field is not used in routing; it provides a way to separate trips by direction when publishing time tables. You can specify names for each direction with the **trip_headsign** field. | | | | * 0 - travel in one direction (e.g. outbound travel) | | | | * 1 - travel in the opposite direction (e.g. inbound travel) | @@ -222,7 +222,7 @@ File: **Required** | stop_id | **Required** | The **stop_id** field contains an ID that uniquely identifies a stop. Multiple routes may use the same stop. The **stop_id** is referenced from the [stops.txt](#stopstxt) file. If **location_type** is used in [stops.txt](#stopstxt), all stops referenced in [stop_times.txt](#stop_timestxt) must have **location_type** of 0. Where possible, **stop_id** values should remain consistent between feed updates. In other words, stop A with **stop_id 1** should have **stop_id 1** in all subsequent data updates. If a stop is not a time point, enter blank values for **arrival_time** and **departure_time**. | | | stop_sequence | **Required** | The **stop_sequence** field identifies the order of the stops for a particular trip. The values for **stop_sequence** must be non-negative integers, and they must increase along the trip. For example, the first stop on the trip could have a **stop_sequence** of 1, the second stop on the trip could have a **stop_sequence** of 23, the third stop could have a **stop_sequence** of 40, and so on. | | | stop_headsign | Optional | The **stop_headsign** field contains the text that appears on a sign that identifies the trip's destination to passengers. Use this field to override the default **trip_headsign** when the headsign changes between stops. If this headsign is associated with an entire trip, use **trip_headsign** instead. | | -| tts_stop_headsign | **Optional** | Readable version of the **stop_headsign**. See "Readable field" in the [Term Definitions](#term-definitions) for more. | | | +| tts_stop_headsign | **Optional** | Readable version of the **stop_headsign**. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | | | pickup_type | Optional | The **pickup_type** field indicates whether passengers are picked up at a stop as part of the normal schedule or whether a pickup at the stop is not available. This field also allows the transit agency to indicate that passengers must call the agency or notify the driver to arrange a pickup at a particular stop. Valid values for this field are: | | | | | * **0** - Regularly scheduled pickup | | | | | * **1** - No pickup available | | From 55a6f5a4338b03f93fa58e466f7890ba511f45fb Mon Sep 17 00:00:00 2001 From: Tim Millet Date: Tue, 24 Mar 2020 17:27:19 -0400 Subject: [PATCH 6/6] Keep only tts_stop_name --- gtfs/spec/en/reference.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gtfs/spec/en/reference.md b/gtfs/spec/en/reference.md index 69cc42eb3..2b1b8a26a 100644 --- a/gtfs/spec/en/reference.md +++ b/gtfs/spec/en/reference.md @@ -110,7 +110,6 @@ File: **Required** | ------ | ------ | ------ | ------ | | `agency_id` | ID | **Conditionally Required** | Identifies a transit brand which is often synonymous with a transit agency. Note that in some cases, such as when a single agency operates multiple separate services, agencies and brands are distinct. This document uses the term "agency" in place of "brand". A dataset may contain data from multiple agencies. This field is required when the dataset contains data for multiple transit agencies, otherwise it is optional. | | `agency_name` | Text | **Required** | Full name of the transit agency. | -| `tts_agency_name` | Text | Optional | Readable version of the `agency_name`. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | `agency_url` | URL | **Required** | URL of the transit agency. | | `agency_timezone` | Timezone | **Required** | Timezone where the transit agency is located. If multiple agencies are specified in the dataset, each must have the same `agency_timezone`. | | `agency_lang` | Language code | Optional | Primary language used by this transit agency. This field helps GTFS consumers choose capitalization rules and other language-specific settings for the dataset. | @@ -149,9 +148,7 @@ File: **Required** | `route_id` | ID | **Required** | Identifies a route. | | `agency_id` | ID referencing `agency.agency_id` | **Conditionally required** | Agency for the specified route. This field is required when the dataset provides data for routes from more than one agency in [agency.txt](#agency), otherwise it is optional. | | `route_short_name` | Text | **Conditionally required** | Short name of a route. This will often be a short, abstract identifier like "32", "100X", or "Green" that riders use to identify a route, but which doesn't give any indication of what places the route serves. Either `route_short_name` or `route_long_name` must be specified, or potentially both if appropriate. | -| `tts_route_short_name` | Text | Optional | Readable version of the `route_short_name`. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | `route_long_name` | Text | **Conditionally required** | Full name of a route. This name is generally more descriptive than the `route_short_name` and often includes the route's destination or stop. Either `route_short_name` or `route_long_name` must be specified, or potentially both if appropriate. | -| `tts_route_long_name` | Text | Optional | Readable version of the `route_long_name`. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | `route_desc` | Text | Optional | Description of a route that provides useful, quality information. Do not simply duplicate the name of the route.
_Example: "A" trains operate between Inwood-207 St, Manhattan and Far Rockaway-Mott Avenue, Queens at all times. Also from about 6AM until about midnight, additional "A" trains operate between Inwood-207 St and Lefferts Boulevard (trains typically alternate between Lefferts Blvd and Far Rockaway)._ | | `route_type` | Enum | **Required** | Indicates the type of transportation used on a route. Valid options are:

`0` - Tram, Streetcar, Light rail. Any light rail or street level system within a metropolitan area.
`1` - Subway, Metro. Any underground rail system within a metropolitan area.
`2` - Rail. Used for intercity or long-distance travel.
`3` - Bus. Used for short- and long-distance bus routes.
`4` - Ferry. Used for short- and long-distance boat service.
`5` - Cable car. Used for street-level cable cars where the cable runs beneath the car.
`6` - Gondola, Suspended cable car. Typically used for aerial cable cars where the car is suspended from the cable.
`7` - Funicular. Any rail system designed for steep inclines. | | `route_url` | URL | Optional | URL of a web page about the particular route. Should be different from the `agency.agency_url` value. | @@ -169,9 +166,7 @@ File: **Required** | `service_id` | ID referencing `calendar.service_id` or `calendar_dates.service_id` | **Required** | Identifies a set of dates when service is available for one or more routes. | | `trip_id` | ID | **Required** | Identifies a trip. | | `trip_headsign` | Text | Optional | Text that appears on signage identifying the trip's destination to riders. Use this field to distinguish between different patterns of service on the same route. If the headsign changes during a trip, `trip_headsign` can be overridden by specifying values for the `stop_times.stop_headsign`. | -| `tts_trip_headsign` | Text | Optional | Readable version of the `trip_headsign`. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | `trip_short_name` | Text | Optional | Public facing text used to identify the trip to riders, for instance, to identify train numbers for commuter rail trips. If riders do not commonly rely on trip names, leave this field empty. A `trip_short_name` value, if provided, should uniquely identify a trip within a service day; it should not be used for destination names or limited/express designations. | -| `tts_trip_short_name`| Text | Optional | Readable version of the `trip_short_name`. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | `direction_id` | Enum | Optional | Indicates the direction of travel for a trip. This field is not used in routing; it provides a way to separate trips by direction when publishing time tables. Valid options are:

`0` - Travel in one direction (e.g. outbound travel).
`1` - Travel in the opposite direction (e.g. inbound travel).
*Example: The `trip_headsign` and `direction_id` fields could be used together to assign a name to travel in each direction for a set of trips. A [trips.txt](#tripstxt) file could contain these records for use in time tables:*
`trip_id,...,trip_headsign,direction_id`
`1234,...,Airport,0`
`1505,...,Downtown,1` | | `block_id` | ID | Optional | Identifies the block to which the trip belongs. A block consists of a single trip or many sequential trips made using the same vehicle, defined by shared service days and `block_id`. A `block_id` can have trips with different service days, making distinct blocks. See the [example below](#example-blocks-and-service-day) | | `shape_id` | ID referencing `shapes.shape_id` | Optional | Identifies a geospatial shape describing the vehicle travel path for a trip. | @@ -207,7 +202,6 @@ File: **Required** | `stop_id` | ID referencing `stops.stop_id` | **Required** | Identifies the serviced stop. All stops serviced during a trip must have a record in [stop_times.txt](#stop_timestxt). Referenced locations must be stops, not stations or station entrances. A stop may be serviced multiple times in the same trip, and multiple trips and routes may service the same stop. | | `stop_sequence` | Non-negative integer | **Required** | Order of stops for a particular trip. The values must increase along the trip but do not need to be consecutive.
*Example: The first location on the trip could have a `stop_sequence`=`1`, the second location on the trip could have a `stop_sequence`=`23`, the third location could have a `stop_sequence`=`40`, and so on.* | | `stop_headsign` | Text | Optional | Text that appears on signage identifying the trip's destination to riders. This field overrides the default `trips.trip_headsign` when the headsign changes between stops. If the headsign is displayed for an entire trip, use `trips.trip_headsign` instead.

A `stop_headsign` value specified for one `stop_time` does not apply to subsequent `stop_time`s in the same trip. If you want to override the `trip_headsign` for multiple `stop_time`s in the same trip, the `stop_headsign` value must be repeated in each `stop_time` row. | -| `tts_stop_headsign` | Text | Optional | Readable version of the `stop_headsign`. See "Text-to-speech field" in the [Term Definitions](#term-definitions) for more. | | `pickup_type` | Enum | Optional | Indicates pickup method. Valid options are:

`0` or empty - Regularly scheduled pickup.
`1` - No pickup available.
`2` - Must phone agency to arrange pickup.
`3` - Must coordinate with driver to arrange pickup. | | `drop_off_type` | Enum | Optional | Indicates drop off method. Valid options are:

`0` or empty - Regularly scheduled drop off.
`1` - No drop off available.
`2` - Must phone agency to arrange drop off.
`3` - Must coordinate with driver to arrange drop off. | | `shape_dist_traveled` | Non-negative float | Optional | Actual distance traveled along the associated shape, from the first stop to the stop specified in this record. This field specifies how much of the shape to draw between any two stops during a trip. Must be in the same units used in [shapes.txt](#shapestxt). Values used for `shape_dist_traveled` must increase along with `stop_sequence`; they cannot be used to show reverse travel along a route.
*Example: If a bus travels a distance of 5.25 kilometers from the start of the shape to the stop,`shape_dist_traveled`=`5.25`.*|