Project 4 (Final)

Timeframe: 3/22/11 - 5/5/11

VTK 1.6.1
Qt 4.8.1 for Windows - Visual Studio 2008
Visual Studio 2008
CMake 2.8.3

Over the Blue Line


This application visualizes GPS position and accelerometer data collected while riding on the CTA Blue Line from Forest Park to UIC-Halsted. 

This application has two VTK windows:
  • Map View
    • The map view is in the larger window by default. Here the train data is plotted over a satellite map.
    • The image for the map is an 8k image from Google Maps.
    • The map may render at a lower resolution based on your video card's memory.

  • Train View
    • This view shows acceleration relative to the train car along the x, y, and z axes. This applies for Android data only.

There are also five control panels (from top to bottom):
  • Map View Control Panel

    • Show Android/iPhone Data: Here the user can control which dataset to display (Android, iPhone/iPad or both)
      • Note: The Android and iPhone timesteps do not line up.
      • Occasionally the colors on the iPhone data will not update correctly when both dataset are active.
        Sliding through time and selecting a different color may fix this. 
    • Show Legend: The train data legend can be toggled on/off

    • Color by: Color the train data points by height, acceleration (xyz), or tilt (xyz)

    • Z-Axis: Display the data points along the z-axis according to height, acceleration (xyz), or tilt (xyz)

    • Map Opacity: Slide through the opacity of the satellite overlay
      • Note: Reducing the opacity to 0 will improve performance

    • Reset Camera: Reset the camera to the default overhead/top view (for map viewing) or to the side view (for graph viewing)
      • Note: The side view reset may set the map at the wrong angle on the first use

  • Station Data

    • Show Station Names: Toggle the appearance of  the name labels over the train station

    • Station Opacity: Slide through the opacity of the station location markers (spheres)

    • Color by: Color the station markers by a solid white (default), by passengers boarding, or by passengers leaving

  • Train View Control Panel

    • Show Legend: The train acceleration data legend can be toggled on/off (off by default)

    • Swap with Map View: Toggle between having the train view in the larger main window or in the smaller secondary window

  • Animation

    • Start/Stop Animation
      • Note: this uses the timestep slider for the starting timestep. Animation will continue until reaching the end or the stop button is pressed.

    • Animation Speed Slider: Set the animation speed.
      • Note: Animations will run smoother if the terrain opacity is set to 0.

  • Timestep Slider: Used to scroll through time and set the animation start position.

Video Overview

TrainVis Video Overview

Environment Setup


The following instructions assume (34 MB) was extracted to the Windows desktop.

Run CMake
  • Set the source directory to the TrainVis source directory (C:\....\Desktop\TrainVis)
  • Set the binaries directory to "C:\....\Desktop\TrainVis\build)"
  • Click configure
  • Click "Yes" to create the build directory
  • Use "Visual Studio 9 2008" as the generator.
  • Select "Use Native Compilers", click Finish
  • Set CMAKE_INSTALL_PREFIX to "C:\TrainVis" - Make sure there are no spaces or other special characters in this field (like brackets).
  • Your CMake window should look like:
  • Click Configure, click Generate
  • Close cmake
  • Navigate to the build folder (C:\....\Desktop\TrainVis\build)
  • Double click on TrainVis.sln

In Visual Studio's Solution Explorer:
  • 1) Right click TrainVis
  • 2) Select "Set as Startup Project".

3) Press F5 to compile and run TrainVis.

If you want to run the binaries directly (\TrainVis\build\Debug\bin\TrainVis.exe) you will need to copy the Data folder from TrainVis into \TrainVis\build\Debug\.

The Data

The data for the project was collected using Android, iPods, and iPhones devices. While riding on the CTA Blue Line between UIC-Halsted and Forest Park three of these devices collected GPS latitude/longitude data, XYZ acceleration, XYZ angular velocity/tilt, and compass data.

In addition we measured the number of passengers in the train car and where passengers boarded or left the car.

Interesting Finds

Y Acceleration Revealing Train Movement

By viewing the y acceleration by color, z-axis, or through the train view animation, the sudden starting and braking of the train can be clearly seen.

X-Acceleration on Curves

There is a noticeable increase in x-acceleration when the train is passing over a curved section of track. As illustrated in the image above, there are spikes in the acceleration at the start and end of the curves.

Correlation Between Height and Y-Acceleration (or train stopping)?

Several locations such as Oak Park, Austin, and Racine have a distinct change in height as the train approaches or leaves a particular station.

There are other locations that this occurs that are not near a train station such as between Cicero and Pulaski. This may be related to the x-acceleration spikes seen on cured tracks.

As the stations tracks likely do not really drop suddenly as the data indicates, this may be an error by the recording device as a result of sudden accelerations. 

Also as illustrated below, there is an inconsistency between the height as recorded by the iPhone and the Android. Note that the overall height is different by at least 30 meters, while relative changes such as the drops at the Oak Park and Austin stations are consistent.