Project 1
Twisted
In this assignment
you are going to visualize some tornado data.
This data is available at http://www.spc.noaa.gov/archive/ where you
can click on the tornado link at the bottom of the page to get
data from 1950 to 2005 for the US. Information about the dataset is
available from the 'MS Word' link just above.
For Illinois (state 17) there are over 1800 records. For the US
there are almost 49000 records.
The data is in pretty good shape. Loading the dataset into excel or
open office makes it much easier to read and I would recommend opening
it in excel (or using Open Office) to get a better idea what the data
looks like.
The visualization you create should show the area affected (e.g. the
state of Illinois). You will want to allow the user to see this area in
multiple ways (e.g. landscape, counties, location of major towns and
cities, hgihways.) The user should have
the ability to pan and zoom the map. Make sure you pick images for the
map that are high enough resolution for text to be readable or even
better add the text yourself dynamically. You can find map-based
imagery on the web, but be sure to cite where you found it, and make
sure that if you grab multiple images that they line up with each other.
Each tornado has at minimum a starting location. After that the user
should be able to turn on/off any/all of the following information for
each tornado:
- path (might be a dot or a line)
- F level
- number of deaths and / or injuries
- damage index
Since there are 50 years of data we want to be able to view that data
in different ways.
One way is to see all the data for all 50 years overlayed
simultaneously. Another is to see data between certain years (eg 1960 -
1970) or to only see data between certain hours of the day and night
(eg from 2pm to 10pm.) Another allows the user to only see data between
certain dates (e.g. from May 1 to Septemper 1.) The user should be
able to choose to see only tornadoes of a certain F level (check boxes
might be good here), or that caused a certain number of deaths and
injuries, or that cause over a certain amount of damage (sliders would
probably be good here.) This gives you lots of possible parameters that
can be independently controlled to help the user search through the
data (e.g. the user could choose to see all F5 tornadoes that touched
down between 2pm and 10 pm from 1960 to 1970 that didnt kill or injure
anyone.)
The user should also be able to 'play back' all 50 years worth of data.
The user should be able to move forwards and backwards in time, pause,
speed up, slow down, or isolate a certain section (say 1960 - 1970) and
have that section loop. Basically this your standard computer-based
movie player controls. It should be clear what is currently being
displayed on the screen (what time range, what ranges of data.)
Whenever the user interacts with the visualization the screen should
update reasonably quickly. This application is meant to be usable. You
can use whatever user interface widget library you prefer (wxwidgets,
fltk, etc.) Keyboard
shortcuts are acceptable as additions but there has to be a gui control
for each feature.
If you do all that well, you get a C. To get a B you should do some
data aggregation at the county level:
It can also be interesting to see information at a higher level. The
data file also tells which county or counties were hit by the tornado,
so you should also be able to aggregate the individual tornado data and
show it at the county level, so you could see at the county level the
total of what happened over 50 years, or at the county level from
2pm to 10pm from 1960 to 1970.
To get an A you should do the above and enure that your application
works on a wider range of data:
Illinois ranks 7th on the list of states hit by tornadoes most often
and we do not typically get very strong tornadoes, so it can also be
interesting to look at other places. A good state to look at is
Oklahoma. Allowing the user to use the same controls to view data from
Oklahoma both at the individual tornado level and at the county level
would be nice. Other high-risj states are Nebraska, Texas, Florida,
Kansas, and Iowa. Alternatively, showing the entire continental US
would be interesting; if you want to visualize tornadoes across the US
then you only need to go down to the state level, rather than the
county level.
Also, you should think about other interesting things that you can
visualize. Creativity above and beyond the assignment requirements is
usually a very good thing. These could be interesting user interface
ideas or visualization techniques for the data. It could be adding in
addional datasets (related weather, population information, etc)
related to the tornado data.
Some thoughts
You may want to convert the longitude and latitude data to UTM
coordinates. That may be easier to manage.
Your program should use the data file and format given as input. If you
want you can write another small program to take the given data file
format as input and output a data file in a format you prefer. The idea
here is that if a new datafile is released (say that includes 2006) you
can just run your program on that new data and everthing is fine
without having to tweak anything.
There is a fair
amount of flexibility here in terms of how to display
the information. Think carefully about how you use colour, and line
thickness, and glyphs. The purpose of the application is to make it
easier to see patterns, and important features in the data.
Once you have
this working, take a look at the data with your own
application. Do you see anything interesting? Are there any patterns
that show up?
Each student
will give a short demonstration of their program to the rest of the
class. This allows everyone to see a variety of solutions to the
problem, and a variety of implementations.
For those
interested in using vtk for this project, here is a short vtk
formatted input file with lines and multiple data values at the
vertices.
last revision 1/28/07