diff options
author | isabelle-dr | 2022-03-22 19:33:40 -0400 |
---|---|---|
committer | isabelle-dr | 2022-03-22 19:33:40 -0400 |
commit | 24e89c97cbbdd89348b1f02497a129ac8ac0a14f (patch) | |
tree | ac8432b0731525e889b6dfefa1401ce277af6893 /.idea/gtfs-book/ch-05-trips.md | |
parent | ab1b75da67be3e101e40e0ae3052d73c714b8ea3 (diff) |
re arrange repo
Diffstat (limited to '.idea/gtfs-book/ch-05-trips.md')
-rw-r--r-- | .idea/gtfs-book/ch-05-trips.md | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/.idea/gtfs-book/ch-05-trips.md b/.idea/gtfs-book/ch-05-trips.md deleted file mode 100644 index ee2b814..0000000 --- a/.idea/gtfs-book/ch-05-trips.md +++ /dev/null @@ -1,222 +0,0 @@ -## 5. Trips (trips.txt) - -*This file is ***required*** to be included in GTFS feeds.* - -The `trips.txt` file contains trips for each route. The specific stop -times are specified in `stop_times.txt`, and the days each trip runs -on are specified in `calendar.txt` and `calendar_dates.txt`. - -| Field | Required? | Description | -| :----- | :-------- | :---------- | -| `route_id` | Required | The ID of the route a trip belongs to as it appears in `routes.txt`. | -| `service_id` | Required | The ID of the service as it appears in `calendar.txt` or `calendar_dates.txt`, which identifies the dates on which a trip runs. | -| `trip_id` | Required | A unique identifier for a trip in this file. This value is referenced in `stop_times.txt` when specifying individual stop times. | -| `trip_headsign` | Optional | The text that appears to passengers as the destination or description of the trip. Mid-trip changes to the headsign can be specified in `stop_times.txt`. | -| `trip_short_name` | Optional | A short name or code to identify the particular trip, different to the route's short name. This may identify a particular train number or a route variation. | -| `direction_id` | Optional | Indicates the direction of travel for a trip, such as to differentiate between an inbound and an outbound trip. | -| `block_id` | Optional | A block is a series of trips conducted by the same vehicle. This ID is used to group 2 or more trips together. | -| `shape_id` | Optional | This value references a value from `shapes.txt` to define a shape for a trip. | -| `wheelchair_accessible` | Optional | `0` or blank indicates unknown, while `1` indicates the vehicle can accommodate at least one wheelchair passenger. A value of `2` indicates no wheelchairs can be accommodated. | - -### Sample Data - -Consider the following extract, taken from the `trips.txt` file of the -TriMet GTFS feed (<https://openmobilitydata.org/p/trimet>). - -| `route_id` | `service_id` | `trip_id` | `direction_id` | `block_id` | `shape_id` | -| ---------- | ------------ | ----------- | -------------- | ---------- | ---------- | -| 1 | W.378 | 4282257 | 0 | 103 | 185327 | -| 1 | W.378 | 4282256 | 0 | 101 | 185327 | -| 1 | W.378 | 4282255 | 0 | 102 | 185327 | -| 1 | W.378 | 4282254 | 0 | 103 | 185327 | - -This data describes four individual trips for the "Vermont" bus route -(this was determined by looking up the `route_id` value in -`routes.txt`). While the values for `trip_id`, `block_id` and -`shape_id` are all integers in this particular instance, this is not a -requirement. Just like `service_id`, there may be non-numeric -characters. - -As each of these trips is for the same route and runs in the same -direction (based on `direction_id`) they can all be represented by the -same shape. Note however that this is not always be the case as some -agencies may start or finish trips for a single route at different -locations depending on the time of the day. If this were the case, then -the trip's shape would differ slightly (and therefore have a different -shape to represent it in `shapes.txt`). - -Although this example does not include `trip_headsign`, many feeds do -include this value. This is useful for indicating to a passenger where -the trip is headed. When the trip headsign is not provided in the feed, -you can determine the destination by using the final stop in a trip. - -**Tip:** If you are determining the destination based on the final stop, -you can either present the stop name to the user, or you can -reverse-geocode the stop's coordinates to determine the its locality. - -### Blocks - -In the preceding example, each trip has a value for `block_id`. The -first and the last trips here both have a `block_id` value of `103`. -This indicates that the same physical vehicle completes both of these -trips. As each of these trips go in the same direction, it is likely -that they start at the same location. - -This means there is probably another trip in the feed for the same block -that exists between the trips listed here. It would likely travel from -the finishing point of the first trip (`4282257`) to the starting -point of the other trip (`4282254`). If you dig a little deeper in the -feed you will find the trip shown in the following table. - -| `route_id` | `service_id` | `trip_id` | `direction_id` | `block_id` | `shape_id` | -| :--------- | :----------- | :-------- | :------------- | :--------- | :--------- | -| 1 | W.378 | 4282270 | 1 | 103 | 185330 | - -This is a trip traveling in the opposite direction for the same block. -It has a different shape ID because it is traveling in the opposite -direction; a shape's points must advance in the same direction a trip's -stop times do. - -***Note:** You should perform some validation when grouping trips -together using block IDs. For instance, if trips share a block_id value -then they should also have the same service_id value. You should also -check that the times do not overlap; otherwise the same vehicle would be -unable to service both trips.* - -If you dig even further in this feed, there are actually seven different -trips all using block `103` for the **W.378** service period. This -roughly represents a full day's work for a single vehicle. - -For more discussion on blocks and how to utilize them effectively, refer -to *Working With Trip Blocks*. - -### Wheelchair Accessibility - -Similar to `stops.txt`, you can specify the wheelchair accessibility -of a specific trip using the `wheelchair_accessible` field. While many -feeds do not provide this information (often because vehicles in a fleet -can be changed at the last minute, so agencies do not want to guarantee -this information), your wheelchair-bound users will love you if you can -provide this information. - -As mentioned in the section on `stops.txt`, it is equally important to -tell a user that a specific vehicle cannot accommodate wheelchairs as to -when it can. Additionally, if the stops in a feed also have wheelchair -information, then both the stop and trip must be wheelchair accessible -for a passenger to be able to access a trip at the given stop. - -### Trip Direction - -One of the optional fields in `trips.txt` is `direction_id`, which -is used to indicate the general direction a vehicle is traveling. At -present the only possible values are `0` to represent "inbound" and -`1` to represent "outbound". There are no specific guidelines as to -what each value means, but the intention is that an inbound trip on a -particular route should be traveling in the opposite direction to an -outbound trip. - -Many GTFS feeds do not provide this information. In fact, there are a -handful of feeds that include two entries in `routes.txt` for each -route (one for each direction). - -One of the drawbacks of `direction_id` is that there are many routes -for which "inbound" or "outbound" do not actually mean anything. Many -cities have loop services that start and finish each trip at the same -location. Some cities have one or more loops that travel in both -directions (generally indicated by "clockwise loop" and -"counter-clockwise loop", or words to that effect). In these instances, -the `direction_id` can be used to determine which direction the route -is traveling. - -### Trip Short Name - -The `trip_short_name` field that appears in `trips.txt` is used to -provide a vehicle-specific code to a particular trip on a route. Based -on GTFS feeds that are currently in publication, it appears there are -two primary use-cases for this field: - -* Specifying a particular train number for all trains on a route -* Specifying a route "sub-code" for a route variant. - -### Specifying a Train Number - -For certain commuter rail systems, such as SEPTA in Philadelphia or MBTA -in Boston, each train has a specific number associated with it. This -number is particularly meaningful to passengers as trains on the same -route may have different stopping patterns or even different features -(for instance, only a certain train may have air-conditioning or -wheelchair access). - -Consider the following extract from SEPTA's rail feed -(<https://openmobilitydata.org/p/septa>). - -| `route_id` | `service_id` | `trip_id` | `trip_headsign` | `block_id` | `trip_short_name` | -| ---------- | ------------ | ------------ | ------------------------ | ---------- | ----------------- | -| AIR | S5 | AIR_1404_V25 | Center City Philadelphia | 1404 | 1404 | -| AIR | S1 | AIR_402_V5 | Center City Philadelphia | 402 | 402 | -| AIR | S1 | AIR_404_V5 | Center City Philadelphia | 404 | 404 | -| AIR | S5 | AIR_406_V25 | Center City Philadelphia | 406 | 406 | - -In this data, there are four different trains all heading to the same -destination. The `trip_short_name` is a value that can safely be -presented to users as it has meaning to them. In this case, you could -present the first trip to passengers as: - -**"Train 1404 on the Airport line heading to Center City -Philadelphia."** - -In this particular feed, SEPTA use the same value for -`trip_short_name` and for `block_id`, because the train number -belongs to a specific train. This means after it completes the trip to -Center City Philadelphia it continues on. In this particular feed, the -following trip also exists: - -**"Train 1404 on the Warminster line heading to Glenside."** - -You can therefore think of the `trip_short_name` value as a -"user-facing" version of `block_id`. - -### Specifying a Route Sub-Code - -The other use-case for `trip_short_name` is for specifying a route -sub-code. For instance, consider an agency that has a route with short -name `100` that travels from stop `S1` to stop `S2`. At night the -agency only has a limited number of routes running, so they extend this -route to also visit stop `S3` (so it travels from `S1` to `S2` -then to `S3`). As it is a minor variation of the main path, the agency -calls this trip `100A`. - -The agency could either create a completely separate entry in -`routes.txt` (so they would have `100` and `100A`), or they can -override the handful of trips in the evening by setting the -`trip_short_name` to `100A`. The following table shows how this -example might be represented. - -| `route_id` | `trip_id` | `service_id` | `trip_short_name` | -| ---------- | --------- | ------------ | ----------------- | -| 100 | T1 | C1 | | -| 100 | T2 | C1 | | -| 100 | T3 | C1 | | -| 100 | T4 | C1 | 100A | - -In this example the `trip_short_name` does not need to be set for the -first three trips as they use the `route_short_name` value from -`routes.txt`. - -### Specifying Bicycle Permissions - -A common field that appears in many GTFS fields is -`trip_bikes_allowed`, which is used to indicate whether or not -passengers are allowed to take bicycles on board. This is useful for -automated trip planning when bicycle options can be included in the -results. - -The way this field works is similar to the wheelchair information; `0` -or empty means no information provided; `1` means no bikes allowed; -while `2` means at least one bike can be accommodated. - -**Note:** Unfortunately, this value is backwards when you compare it to -wheelchair accessibility fields. For more discussion on this matter, -refer to the topic on the Google Group for GTFS Changes -(<https://groups.google.com/d/topic/gtfs-changes/rEiSeKNc4cs/discussion>). - |