At Mobility Lab‘s recent hack day, WMATA released a copy of the GTFS data they use for their trip planner. The trip planner includes schedule data for a total of 19 different transit agencies. GTFS, General Transit Feed Specification, is a collection of files that together form a complete description of all the routes, stops, and schedules. WMATA released an animation of the data last November (see Maps in Motion: Telling Stories from Transit Data). With the GTFS data now publicly available, I wanted to try making my own animations.


The clock runs until 31:14, which is 7:14am. Typically GTFS schedules run past 24 hours in order to indicate trains and buses that began their schedules before midnight (or whatever is considered the end of the service day). But this GTFS schedule is pushed back because of a MARC train that begins 30:00, or 6am. To me, that is a data entry error. If you can think of a reason for that odd scheduling, leave a comment.

The paths aren’t exact. The dots move in straight lines between stops.

I used different colors for each transit system, and show the number of vehicles currently in service. Metrorail and Metrobus are considered to both be a part of WMATA, and thus share the same color. The codes are the ones used in the GTFS files:

Code System
ANN Annapolis Transit
ARL ART – Arlington Transit
BUS TheBus – Prince George’s County
CAR Laurel Connect-a-Ride
DAT Alexandria DASH
DC DC Circulator
FFX Fairfax Connector
FRE Frederick TransIT
HO Howard Transit
LOU Loudoun County Transit
MAR MARC Train
MET WMATA
OML OmniLink
OMR OmniRide Commuter Bus
Q CUE – City of Fairfax
RIB LINK – Reston
RO Ride On
UM UM Shuttle
VRE Virginia Railway Express

I was able to zoom in and get a close look at the city of Washington. I used the trick described in Made-to-Order Mapmaking to choose a map border and make sure the GTFS data was correctly mapped to the region shown.

Zooming further in lets me show the neighborhoods around Dupont Circle.

This view reveals a bit of an oddity with the Circulator route. The “Dupont Circle – Georgetown – Rosslyn” route seems to have two buses that terminate in Dupont at the same time, but only one turns around to go back. I’m not sure if this is an anomaly in the GTFS data, or the way I am interpreting the data.

The GTFS data is available at the Mobility-Lab-Data-Visualization-Hack-Day hackpad (see “Data Sources”). I’ve put my code on GitHub.

YouTube’s compression does degrade the quality of the original QuickTime-format videos, but the originals are too big to display. The file for the DC close-up was 294 megabytes.

At its peak, the region’s 19 transit system have 2,990 trains and buses in service. I hope these animations help reveal the network’s complexity and beauty.

Washington Region’s Transit Network

3 Responses to “Washington Region’s Transit Network”