The National ITS Architecture and its Environs

This is part 3 of a series of thoughts on the state of the transit tech industry, public and private.

We left off with Google’s introduction of the GTFS, but that was just the beginning of the importance of transit to this space. The iPhone ushered in a world of opportunities for end users. Smartphones have driven ubiquitous information. But that ubiquitous information took a little while to get into this form factor. In 2008, with the addition of apps to iOS, Google brought transit directions to the iPhone.

In 2011, Google introduced GTFS-RT, allowing agencies to provide real time updates for an entire fleet. A number of transit apps sprung up merging GTFS, GTFS-RT, and other information together to provide useful information in one place.

These have gotten serious attention and funding from the tech community. For example, in 2014 Citymapper received $10M in funding, and in January 2016 got another $40M.

Moovit has raised a total of $81.5M. What’s most interesting is who is funding them. In addition to regular tech venture capitalists, BMW and Keolis (a branch of the French National Railways) have invested. Clearly, the existing transportation industry is hedging their bets with technology.

Not to be outdone, Google snapped up the largest player in the driving space, Waze, for just under $1 Billion.

What these investors see in apps are not just national but global ITS architectures. And they do this not out of the goodness of their hearts– they see money extracted from surveillance of our everyday activities. Some companies are willing to do some crazy stuff to get data at any cost.

 “The assault we face is driven in large measure by the exceptional appetites of a wholly new genus of capitalism, a systemic coherent new logic of accumulation that I call surveillance capitalism. Capitalism has been hijacked by a lucrative surveillance project that subverts the “normal” evolutionary mechanisms associated with its historical success and corrupts the unity of supply and demand that has for centuries, however imperfectly, tethered capitalism to the genuine needs of its populations and societies, thus enabling the fruitful expansion of market democracy.”

Meanwhile, back at the government ranch…

As a result of scale and mandate, the model of surveillance capitalism is not something that most public agencies can capitalize on, so the private sector is left to reap the gains. Perhaps because of this lack of incentive, public sector driven regional ITS architectures have not reached the same level of sophistication or prominence. (With one notable exception,  and a possible newcomer).

In conclusion, the private sector uses sizable public investments for profit (or at least leverage for sizable private investments), and gives (or is perceived to give) little back to those that have provided it.  Understandably, this causes consternation.
The real question is, knowing this, what are the incentives for the public sector to push the next generation of public investment forward?

Querying GTFS with CSVkit

A while ago I wrote a post about using built-in tools from the Bash command line shell to perform quick and dirty analysis of GTFS files. Those examples depended on the order of the columns in the GTFS, something which is not standard across all feeds. There is another set of utilities, csvkit, which can work around this problem and enable the same analysis to be performed regardless of column order.

Continue reading “Querying GTFS with CSVkit”

On Calendars and Calendar_Dates

A recurring question on the transit-developers list regards how calendaring (which trips are in effect on a given day) works in GTFS. It is a little opaque at first, but in the end it’s rather simple. This post aims to solve that by walking through a few examples.

The two relevant files within the GTFS are calendar.txt and calendar_dates.txt. Each of these files references service_id, an “ID that uniquely identifies a set of dates when service is available for one or more routes” Every trip in trips.txt has a service_id, and that’s what is used to tie calendars and calendar dates to trips.

Below the fold are a number of examples, ranging from simple to more complex. These can all be mixed and matched if necessary.
Continue reading “On Calendars and Calendar_Dates”

Using GTFS and PostGIS to calculate levels of scheduled service

Recently I was asked about using calculating the amount of scheduled service. This post is the result of a quick experiment to prove the process with PostGIS.

Recently I was asked about using calculating the amount of scheduled service. This post is the result of a quick experiment to prove the process with PostGIS.

Following along assumes:

  • Basic knowledge of SQL and git,
  • Basic familiarity with GTFS, and
  • A copy of PostgreSQL with the PostGIS extension.

Continue reading “Using GTFS and PostGIS to calculate levels of scheduled service”