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