Rattle and Roll
will be looking at earthquake hypocenter data.
If you took 491 (424) last term then you looked at this data in 2D.
Here we will look at it in 3D so the user will be able to see the
magnitude of the quakes and their location under the surface of the
The data we will
use in this project comes from the US Geological Survey's Global
Earthquake Search site at
If you ask for
spreadsheet format data from the USGS/NEIC (PDE) from 1973 to present
you will get a 30 megabyte comma separated list of quakes that starts
Day, Time(hhmmss.mm) UTC, Latitude, Longitude, Magnitude, Depth
1973,01,01,034609.80, -9.21, 150.63,5.3, 41
There are over
620,000 earthquakes in this file but some do not have a magnitude so
you should filter out all of the lines that are not complete. This
should leave you with about 500,000 lines of data.
You will use vtk
in connection with a user interface toolkit of your choice to implement
the project. You will need to be able to show this app in the classroom
so be sure you have it running on an appropriate machine.
you develop should help the user investigate questions about
earthquakes so you shouldn't be thinking of the application as the end
product but as a means to get to the end product, which is knowledge,
so its important that ypour application be easy to use and produce
visualizations that are easy to understand. One of the requirements to
get an A is to use your tool to find some interesting things in the
You can store
the data in any way you prefer that gives you sufficient performance
AND is sufficiently portable that andy can easily make your application
run on his hardware. Databases are fine, on line storage is fine, flat
files are fine.
You may want to
also look into some map conversion algorithms since you have data in
latitude and longitude.
For a C you should
- let the user conveniently choose from 10 'interesting' areas on
the planet and a magnitude and show the 3d position of the earthquakes
of that magnitude in that area
- show different magnitudes of earthquakes differently (size,
colour, etc) and have a legend that explains this to the user
- let the user show or hide the surface (shown as wireframe, or a
map, or a satellite view) to give context
- clearly label the depth range
- let the user quickly and easily rotate the 3d scene and zoom in
and out to get a better view of the data with their mouse (trackpad,
- create a responsive user interface and the visualization that are
- pick an appropriate well labelled depth scale to show interesting
features in the data (ie you should be able to see the subduction zones)
For a B in addition you should
- inlude the entire planet as an 11th interesting area (this could
be a globe or a flat map)
- let the user play back the earthquakes over the given area
showing the current year and letting user alter the playback speed
- let the user pick a set of magnitudes to view
- let the user vary the depth scaling
For an A in addition you should
- let the user limit the range of playback a particular range of
years / dates
- let the user interactively shuffle back and forth through time
(as with a video playing app)
- show multiple quake regions at same time (either in same window
or spearate windows) which are linked for playback
- document several interesting things (which will very likely be
related to plate techtonics)
You might also want to investigate writing an application that runs in
3D (the easy way being to do a left and right stereo pair where you
duplicate the user interface but slightly offset the cameras in the two
3D views) as this data looks very nice that way.
create a set of web pages that describe your work on the project. This
all of which
should have plenty of screenshots with meaningful captions.
- 1 page on
how to install your app starting from "I have a web browser on my
computer." You should provide links and clear instructions on
everything needed to get your application running. You should also
provide links to your well documented souce code on this page.
- 1 page on
the data you used including where you got it, what you did to it.
- 1 page on
how to use your application and the things you can do with it.
- 1 page on
what interesting things you found using your application.
You should also create a 2-3 minute youtube video showing the use of
application including narration with decent audio quality, and that
video should be linked to your main project web page.
I will be linking your web page to the course notes
so please send me a 320 x 240 jpg photo of your visualization for the
should be named p1.<your_last_name>.jpg. Web pages like this can
be very helpful later on in helping you build up a portfolio of your
work when you start looking for a job.
will bring his / her visualization to class to present it and describe
its features to the rest of the
class. This allows everyone to see a variety of solutions to the
problem, and a variety of implementations.
last revision 1/16/11