-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Integrate external MKdown files (#505)
- Loading branch information
1 parent
462dfdb
commit 76da847
Showing
17 changed files
with
704 additions
and
79 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -75,7 +75,6 @@ For example, a `VehiclePosition` entity has `vehicle_id:A` and `trip_id:4`, then | |
| --- | --- | | ||
| `schedule_relationship` | The behavior of `ADDED` trips are unspecified and the use of this enumeration is not recommended. | | ||
|
||
|
||
### VehicleDescriptor | ||
|
||
If separate `VehiclePosition` and `TripUpdate` feeds are provided, [TripDescriptor](#TripDescriptor) and [VehicleDescriptor](#VehicleDescriptor) ID values pairing should match between the two feeds. | ||
|
@@ -129,6 +128,7 @@ General guidelines for alerts: | |
| --- | --- | | ||
| `description_text` | Use line breaks to make your service alert easier to read. | | ||
|
||
|
||
## Practice Recommendations Organized by Use Case | ||
|
||
### Frequency-based trips | ||
|
@@ -140,26 +140,24 @@ A frequency-based trip does not follow a fixed schedule but attempts to maintain | |
* As required by the spec, when describing `trip` in [TripUpdate](#TripUpdate) or [VehiclePosition](#VehiclePosition) by using [TripDescriptor](#TripDescriptor), all of `trip_id`, `start_time`, and `start_date` must be provided. Additionally, `schedule_relationship` should be `UNSCHEDULED`. | ||
(e.g., re-enforcement trips). | ||
|
||
|
||
## About This Document | ||
## About This Document | ||
|
||
### Objectives | ||
|
||
The objectives of maintaining GTFS Realtime Best Practices are to: | ||
The objectives of these GTFS Best Practices are: | ||
|
||
* Support greater interoperability of transit data | ||
* Improve end-user customer experience in public transportation apps | ||
* Make it easier for software developers to deploy and scale applications, products, and services | ||
* Facilitate the use of GTFS in various application categories (beyond its original focus on trip planning) | ||
|
||
### How to propose or amend published GTFS Realtime Best Practices | ||
|
||
The Best Practices are in the process of being merged into the official GTFS Realtime reference, and some GTFS Best Practices will be removed from this document as this is happening. | ||
|
||
If you'd like to suggest a new best practice, please go to the [GTFS Reference GitHub repository](https://github.com/google/transit/) to open an issue or create a PR, or contact [[email protected]](mailto:[email protected]). | ||
### Contributing | ||
New Best Practices are now being added directly into the [spec](https://gtfs.org/schedule/reference/) in order to gradually consolidate both documents. | ||
If you'd like to suggest a new best practice, please go to the [GTFS Reference GitHub repository](https://github.com/google/transit/), [open an issue](https://github.com/google/transit/issues/new/choose) or create a Pull Request, or contact [[email protected]](mailto:[email protected]). | ||
|
||
### Linking to This Document | ||
|
||
Please link here in order to provide feed producers with guidance for correct formation of GTFS Realtime data. Each individual recommendation has an anchor link. Click the recommendation to get the URL for the in-page anchor link. | ||
|
||
If a GTFS Realtime-consuming application makes requirements or recommendations for GTFS Realtime data practices that are not described here, it is recommended to publish a document with those requirements or recommendations to supplement these common best practices. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# Trip Modifications | ||
|
||
# Trip Modifications | ||
|
||
A `TripModifications` message identifies a list of similar `trip_ids` from the (CSV) GTFS which are all affected by particular modifications, such as a detour. | ||
|
||
<br><br>**Caution:** this entity is still **experimental**, and subject to change. It may be formally adopted in the future. | ||
|
||
## SLO: Service-level objective | ||
|
||
The frequency of data updates is expected to be approximately hourly (~24 times/day). Ingestion time may depend on the total number of affected trips. Consumers are expected to ingest a single TripModification within 5 minutes, and a feed with hundreds of detours within 20 minutes. | ||
|
||
## TripModifications | ||
|
||
The `TripModifications` is in effect on all of the listed service\_dates, until it is removed from the feed. On any given service date, a trip MUST NOT be assigned to more than one `TripModifications` object. | ||
|
||
There MAY be multiple `TripModifications` for a given stop pattern. It may be desirable to split the trips into multiple modifications e.g. if the `propagated_modification_delay` changes significantly, over the course of the detour. | ||
|
||
The trips created through GTFS-TripModifications modify and replace each specified `trip_id`, and don't create a copy or additional run. Modifications are applied on the schedule information, like if a static GTFS (CSV) was modified. | ||
|
||
The scheduled stop times of each replacement trip are created from those of the affected trip, by performing the changes listed in modifications. `stop_sequence` for all stop times are replaced by a new value of 1 to n, starting with 1 on the first stop_time and increasing by 1 for each stop in the trip. A `TripUpdate` message must be provided to publish real-time arrival/departure times for the replacement trip. | ||
|
||
|
||
## Linkage to TripUpdates | ||
|
||
* A TripUpdate SHOULD be provided using a `ModifiedTripSelector` inside the TripUpdate's `TripDescriptor`. | ||
* When the TripUpdate refers to the replacement trip, the consumer should behave as if the static GTFS would have been modified with the TripModifications (e.g. `arrival_time`, `departure_time`, `stop_sequence`, `stop_id` on replacement stops). | ||
* When providing a `ModifiedTripSelector`, the other fields of the `TripDescriptor` MUST be left empty, to avoid confusion by consumers that aren't looking for the `ModifiedTripSelector` value. | ||
* TripUpdate feeds providing updates with `ModifiedTripSelector` SHOULD also include a TripUpdate targeting clients that don't support TripModifications. In other words, there should be two TripUpdates: one for clients with modified trips (with `TripModifications`) and one for clients with the originial unmodified GTFS (without `TripModifications`). | ||
* Providing a TripUpdate with a `ModifiedTripSelector` is the only way to create predictions at replacement stops. | ||
* If no such TripUpdate is found, TripUpdates for the original `trip_id` will apply to the modified trip. | ||
* In this case, the static GTFS information used should be from the static GTFS before any TripModifications applied. | ||
* Real time information can be available to the common stops between the previous trip and the new modified trip; however, no ETA would be available at the replacement stops. | ||
|
||
## Modification | ||
|
||
A `Modification` message describes changes to each affected trip starting at `start_stop_selector`. There can be zero, one, or more than one stop time(s) replaced by a `Modification`. The spans of the modifications MUST not overlap. Spans may not be contiguous; in this case the two modifications MUST be merged into one. These stop times are replaced with a new stop time for each replacement stop described by `replacement_stops`. | ||
|
||
The sequence of `replacement_stops` may be of arbitrary length. For example, 3 stops could be replaced by 2, 4, or 0 stops as the situation may require. | ||
|
||
![](../../assets/trip_modification.png) | ||
|
||
_An example showing the effect of a modification on a particular trip. This modification may also be applied to several other trips._ | ||
|
||
![](../../assets/propagated_delay.png) | ||
|
||
_Propagated detour delays affect all stops following the end of a modification. If a trip has multiple modifications, the delays are accumulated._ | ||
|
||
## ReplacementStop | ||
|
||
Each `ReplacementStop` message defines a stop that will now be visited by the trip, and optionally specifies the estimated travel time to the stop. The `ReplacementStop` message is used to construct the scheduled `stop_time` for the stop. | ||
|
||
When `travel_time_to_stop` is specified, the `arrival_time` is calculated from a reference stop in the original trip, plus the offset in `travel_time_to_stop`. Otherwise, the `arrival_time` can be be interpolated based on the total duration of the modification in the original trip. | ||
|
||
The `departure_time` always equals the `arrival_time`. | ||
|
||
The optional fields of [`stop_times.txt`](../schedule/reference/#stop_timestxt) in the (CSV) GTFS specification are all set to their default values. | ||
|
||
![](../../assets/first_stop_reference.png) | ||
|
||
_If a modification affects the first stop of the trip, that stop also serves as the reference stop of the modification._ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.