A3-ScottMurray

From CS294-10 Visualization Fa08

Jump to: navigation, search

Contents

Project Plan & Storyboards

As a fan and frequent user of public transportation, I set out to create a visualization of some transit data set. Fortunately, BART has recently made available an XML feed of real-time estimated arrivals. With this data, I will create a quasi-real-time visualization of trains in the BART system. I will use Processing as my development platform.

Unfortunately, a geospatially accurate rendering of trains' position will not be possible because the XML feed provides only trains' destinations and not their originating stations. This is not as problematic as it sounds, however, for even when passengers are in the BART system, they do not necessarily have an awareness of where their trains are coming from. All BART signage and notifications are keyed to the trains' destinations only. So, passengers headed to Daly City don't need to know whether the next train originated in Fremont or Richmond.

For the purposes of this visualization, then, I aim to present a means of visually answering the question: How much longer until my train arrives? Accurate geospatial positions are not only unnecessary for this purpose, but may interfere with reading the display. If the trains' on-screen representations followed a true geospatial path, they would wiggle left and right with the track alignment. It will be easier for the viewer to estimate the time until arrival if the trains move in straight lines. All the viewer has to do is watch the train approach the station, no matter the direction of approach.

Upon loading, the interface may appear similar to this:

Image:BART_Trains_storyboard_1.png

Each block dot represents a station in the BART system, and each colored dot represents a train's estimated arrival. Each actual BART train may be represented by more than one dot, since the dots are truly estimated arrivals at a given station, or instances of a train. This may be considered a limitation of the data, but I think that this view will actually make for a visually interesting display.

All station names are listed at left, along with the "All stations" option at top. Each of these elements is clickable. Selecting a station name zooms in to that station, displays the station name, hides all other stations, and hides all train instances but for the ones approaching the selected station:

Image:BART_Trains_storyboard_2.png

At this "zoomed in" view, trains are labeled with their destinations and, since all the colored dots on the screen are moving in real-time toward the selected station, the user can instantly get a rough sense of how soon his or her train will arrive.

Final Project Description

Real Time BART Arrivals Visualization (click link to view project)

All stations in the BART system are represented by black squares, and all estimated arrivals are represented by colored circles. Clicking on a station name hides all trains except for those about to arrive at that station. (Technically, each circle represents one instance of an estimated arrival time, not a physical train, so there will always be many more circles than actual trains in the BART system.)

Each train is labeled with its estimated arrival time, but that can also be estimated by visually weighing the speed of travel against distance remaining to the station. Trains' final destinations are encoded by color (corresponding to colors used on the official BART system map) as well as in the label text. Visual cues of angle, speed, color, and distance are used to identify trains and how much time remains until their arrivals. Navigation tools for zooming and panning are included.

Changes from Original Project Plan

  • To improve usability, train labels were expanded to include not only the final destination but also next arrival station and time until arrival.
  • Train labels were also rotated to match the angle of travel. I felt that using the typography this way provided an additional visual cue as to the direction of travel, and made the forms appear more "train-like" than by using circles alone.
  • The automatic zoom functionality (that would have zoomed in on a station upon selection) was not built. Due to the scale and on-screen "speed" of trains, zooming in would have excluded most trains from view (putting them outside the window), thereby limiting the usefulness of the application. Manual zoom and pan controls were implemented instead, so the user can focus on or exclude specific trains from view as desired.

Source Code

The source code requires Processing version 135 to compile and run. (Newer versions may work, but have not been tested.) It also requires that the ProXML library for Processing be downloaded and installed. Once Processing and ProXML are installed, open the file "BART_Trains.pde" in Processing.

Download source here: Media:BART_Trains.zip

Process

Developing this application required a few days' worth of work, spread out over two weeks. The most challenging aspects were interpreting and parsing the XML feed (which is not ideally suited to this purpose) and figuring out the mathematics required to place the trains on the angle formed by the arrival station and the final destination station. Given more time, I would conduct user testing to gauge the success of the design, and make the following improvements:

  • Ensure that text is always presented upright (not upside down), or as close to that as possible
  • Add a dynamic scale at the bottom of the display to indicate x length = y minutes/seconds
  • Include functionality to auto-scale in or out, so that all relevant trains are visible
  • Add functionality to maintain type at the same point size, regardless of zoom scale
  • Adjust some colors for legibility, although they would no longer exactly map the BART system map


[add comment]
Personal tools