Project 1

Shake, Rattle, and Roll

This visualization looks at earthquake hypocenter data collected from the U.S. Geological Survey earthquake database. The application was developed using Visual Studio 2008, VTK, Qt, and C++.

Installation Instructions (Windows)

Compiling QuakeVis

Run CMake
  • Set the source directory to the QuakeVis source directory (C:\....\Desktop\QuakeVis)
  • Set the binaries directory to "C:\....\Desktop\QuakeVis\build)"
  • Click configure
  • Set CMAKE_INSTALL_PREFIX to "C:\QuakeVis" - Make sure there are no spaces or other special characters in this field (like brackets).
  • Your CMake window should look like:

Click "Configure" again then "Generate"

You can now go to your QuakeVis build directory, open QuakeVis.sln.

In Visual Studio's Solution Explorer, right click QuakeVis, and select "Set as Startup Project".

Press F5 to compile and run QuakeVis.

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

The Dataset

The dataset was built using the U.S. Geological Survey's earthquake database at:

The data was collected using spreadsheet comma-delimited style output. In order to get all data from 1973-2011, all other parameters were left blank except magnitude. This was set from 0 to 10 in order to get all the data on a single output screen.

Once the data was collected, all spaces were removed from the dataset. This allowed Paraview to read in the .csv text file and output a legacy .vtk file.

QuakeVis will read in a full dataset of earthquake data, however for performance reasons, the application will limit the number of earthquakes per year to 2000 - thus reducing the original 551,000 to about 38,000. The full explanation for this will be described later.

Using QuakeVis

The Views

Pictured above is the main graphical interface for QuakeVis. The application has two main VTK windows. To the left is a flat map view and a 3D globe view to the right. Either window can by minimized/maximized by clicking and dragging on the border between the two windows.

 The flat map view be rotated by holding the right mouse button. Zooming can done with the middle mouse wheel. Finally hold the middle mouse button to pan around the map. A scale around the map gives the latitude, longitude, and depth (based on the depth scale) of the map.

The globe view can be rotated using the middle mouse button and zoomed in/out with the mouse wheel. The GeoView compass controls on the upper right corner can control the height, rotation, and angle of the view. The colored scale on the bottom of the view changes with the color representation and applies for both views.

Clicking on a point in the globe view will print information on the point in the console window.

Control Panel

On the left of the interface is the primary control panel. Going from top to bottom:

  • Color buttons
    • This allows both views to be either colored by magnitude or depth.
    • The scale on the bottom of the globe view will change accordingly
  • Magnitude Sliders
    • These sliders allow the min and max magnitude to be shown in the views. The text boxes can also be used to change values. The sliders will automatically adjust to prevent the max slider from going below the min slider (and vice versa).
  • Depth Sliders
    • These function similarly to the magnitude sliders, except they control what depth range is displayed.
    • VTK Implementation Note: The Magnitude/Depth/Year sliders are inefficiently implemented into the VTK pipeline. These are much slower to update than the color or position controls. This is unlikely to be corrected before submission.
  • Depth Display
    • The depth display has a slider that allows scaling of the visual height of the data in both views. Set at zero by default, the slider can be set positive or negative in order show the depth coming out or into the terrain.
    • The depth axis on the flat map will change to reflect the current scaling.
  • Locations
    • The latitude and longitude text boxes can be used to specify a location on both views to zoom in on.
    • Twelve pre-set locations on the drop down menu will zoom in on particular areas of interest.
    • [Detail on each location]
  • Year
    • Similar to the depth sliders, the min and max years to be displayed can be set here by using the sliders or the text boxes on the left.
    • Using the current min/max year settings, QuakeVis can animate through that year range.
    • The animation can be started/stopped by using the Play/Stop buttons
    • The playback speed can be specified by using the text box next to the play button.
    • The speed is based on 1 year every specified seconds.
    • The default speed is 1 year every 0.5 seconds.
    • The speed can be set from 0.0 to 10.0.
  • Left/Right Window Controls
    • The radio buttons can be used to toggle the terrain map on/off for each view.

Using QuakeVis (Video Overview)

QuakeVis Video Overview

Discoveries using QuakeVis

While using QuakeVis, I noticed several areas of interest. Many of these and more are highlighted under "Pre-set locations" in the application.
  • The most apparent feature is the outline of just about every since tectonic place on the planet. Also the plate boundaries have magnitudes from 4.5 to 6.8 as well as a depth below 200 km.

  • Looking at the visualization with the magnitude colored, the United States and Europe stand out with a lower magnitude in the range 0.0 to 4.0. These colors tend to expose normal fault lines opposed to the major continental plate boundaries.
  • Examining the visualization with the depth colored helps two specific regions stand out - the Peru-Chile Trench and the western half of the Pacific Ring of Fire. These areas have a depth of 400 km and above.