aboutsummaryrefslogtreecommitdiff
path: root/.idea/gtfs-realtime-book/ch-01-introduction.md
diff options
context:
space:
mode:
Diffstat (limited to '.idea/gtfs-realtime-book/ch-01-introduction.md')
-rw-r--r--.idea/gtfs-realtime-book/ch-01-introduction.md81
1 files changed, 0 insertions, 81 deletions
diff --git a/.idea/gtfs-realtime-book/ch-01-introduction.md b/.idea/gtfs-realtime-book/ch-01-introduction.md
deleted file mode 100644
index eff0ddf..0000000
--- a/.idea/gtfs-realtime-book/ch-01-introduction.md
+++ /dev/null
@@ -1,81 +0,0 @@
-## 1. Introduction to GTFS-realtime
-
-GTFS-realtime is a standard developed by Google in order to allow
-transit agencies to provide real-time information about their service.
-
-There are three types of data a GTFS-realtime feed provides:
-
-1. Vehicle positions
-2. Trip updates
-3. Service alerts
-
-Vehicle positions contain data about events that have already occurred
-(e.g. "the vehicle was at this location one minute ago"), whereas trip
-updates contain data about events that are yet to occur (e.g. "the bus
-will arrive in three minutes").
-
-Typically, a single GTFS-realtime feed contains only one of these three
-types of data. Many agencies therefore have multiple GTFS-realtime feeds
-(that is, one for vehicle positions, one for trip updates and one for
-service alerts).
-
-![GTFS-realtime structure](images/GTFS-realtime-structure.png)
-
-The above diagram shows how a GTFS-realtime feed is designed to
-complement a GTFS (General Transit Feed Specification) feed. It does
-this in two ways:
-
-1. All identifiers for routes, trips and stops match those that appear
- in the corresponding GTFS feed.
-2. A GTFS feed shows the projected schedule for a given period (such as
- the next six months), while the GTFS-realtime is used to make
- last-minute adjustments based on real-world conditions (such as
- traffic, roadworks, or weather).
-
-### Consuming GTFS-realtime Feeds
-
-The format of GTFS-realtime feeds is based on Protocol Buffers, a
-language and platform-neutral mechanism for serializing structured data.
-
-This is similar conceptually to JSON (JavaScript Object Notation), but
-the data transferred across the wire is binary data and not
-human-readable in its raw format.
-
-*Chapter 5. Protocol Buffers* shows you how to use Protocol
-Buffers and the associated **gtfs-realtime.proto** file (used to
-instruct Protocol Buffers how GTFS-realtime is structured).
-
-Consuming GTFS-realtime Feeds on Mobile Devices
-
-A common use-case for GTFS and GTFS-realtime feeds is to build
-transit-related mobile apps that show scheduling data. However, it is
-important to note that GTFS-realtime feeds are not intended to be
-consumed directly by a mobile device.
-
-Many of the vehicle positions and trip update feeds provided by transit
-agencies include a snapshot of their entire network at a single moment.
-For a large network, this could be multiple megabytes of data being
-updated every 10-15 seconds.
-
-A mobile app downloading a full GTFS-realtime feed every 10-15 seconds
-would quickly download a large amount of data over their cellular
-connection, which could be very expensive. Additionally, their device
-would need to process a large amount of data -- most of which would not
-be relevant -- which would run down their battery unnecessarily. This
-would also put a huge amount of strain on the provider's servers.
-
-Rather, GTFS-realtime is intended to be consumed by an intermediate
-server. In the case of a mobile app, this intermediate server would
-likely belong to the creator of the app. The mobile app can then query
-this intermediate server for the relevant data it needs at that time.
-
-![Direct or Intermediate](images/GTFS-realtime-direct-or-intermediate.png)
-
-The above diagram demonstrates the different models. On the left, mobile
-devices download entire GTFS-realtime feeds from the provider. Each
-device is downloading 5 megabytes every 10-15 seconds.
-
-On the right, an intermediate server records all vehicle positions, then
-mobile devices request only the data they need. This significantly
-reduces the amount of data transferred.
-