Code here
Executable here
Input file here

VTK

My first challenge for this project...like most of you was learning VTK. I tried my hands at a bunch of things....
  • C++ and Mac...
  • Java and Mac...
  • Java and Windows...
All of which...turned out to be hard for one reason or another. C++ has a lot of tutorials but hard for GUI design. Java has a few tutorials but is very good in GUI, though I was having a tough time integrating all the different aspects. I finally settled on...
  • C# and Windows...
This had best of...or at least the most of all of the worlds, tutorials, easy GUI design and object orientedness. I was happy. It was also encouraging when I learned how easily a TCL/TK tutorial could be converted to C# code...I did this for a bunch of things like drawing spheres, cubes...actually just about everything.

Ohhhhh the Input...

Besides the massiveness of the input, there were a few other hurdles I had to overcome.
  • Its overbearing complexity
  • Incompleteness
  • How confusing it was
  • did I mention hugeness?
Before even drawing anything in VTK, I ofcourse needed to get the data in. So I made a class that would do this in C# and since there was a lot of data that wasn't useful to us I threw it out...
  • Non-Tornado data
  • Data with bad time
  • Repeat data
  • States outside of proper US

Changing my Latitude

I spent almost 3 full days trying to get the latitude and longitude to transfer to flat map data, but the best I could do was still slightly off target. Messed with a lot of things here trying to get the outside to squeeze in as I latitude went up and using cos and sin and sec and tan, but still the best I could get was a bit off. So my break through idea was to convert to 3D coordinates! This worked like a charm, given the earth's radius, latitude and longitude a little geometry could easily fix the mapping problem. This is why I have both 3D and 2D views on my screen, also the 3D view lent itself to a lot more useful maps about croplands and perciptation and average annual temperature. The tornado tranformation in 3D was spot on.

2D screen shot by F-Value with red indicating most sever F5.


3D screen shot with length and coastline maps.

Features and things to playaround with...

The things that I used in the visualization...
  • 2D or 3D
  • Stop, Play, and bar for random access
  • Number of days to view at a time [1 to all]
  • Color based on
    • Damage
    • Date
    • Fatalaties
    • F-Value
    • Length
    • Month
    • Injuries
    • County
    • Time
    • All Red
  • F-Value
  • State
  • Percipitation movie from 1979 onward
  • Injuries
  • Months
  • Fatalaties
  • Damage
  • Spring, Summer, Fall and Winter months
  • Queries additive and full range [meaning you can view January & March + F3 and F5 + 51 to 75 fatalaties + >50,000 Damage...]

One of my biggest struggles was finding the right balance between features and complexity...I gave in a bit to complexity because the more things you can see the more patterns you may be able to pick up...though at the same time the more you can change the less likely to find a pattern...its a very hard balance.

Things to notice

obvious
	mountains = no tornadoes 
		[all red + glshade]
	spring time has biggest tornadoes
		[all red + coastlines + f5 + season at a time]
	top fatalaties all F4 or F5
		[fvalue + coastlines + > 25 fatalaties] 
less obvious
	long ones over croplands
		[length + croplands]
	monthly migration
		[all red + coastlines + select one month at a time]
	length and f-value no dependence
		[length + coastlines + f5]
	location and time dependency (green to blue)
		[time + coastlines]
		dangerous interpretation...are you really seeing what you are seeing
	f value and time dependency
		[time + coastlines + f5]
	high percipitation doesn't mean tornadoes
		[play percipitation movie]

3D screen shot showing only Illinois.

3D screen shot showing croplands and length of tornadoes.

3D screen shot showing all tornadoes in red.

Percipitation movie screen shot.

Things to fix

  • Allow user to pick colors or make color contrast properly with the background.
  • Make the GUI better, expand on the GUI
  • Fix coordinates in 2D [USE arc files!]
  • Get more global data to see with tornadoes in US
  • Improved control for percipitation movie

Maps:
http://precip.gsfc.nasa.gov/
http://flatplanet.sourceforge.net/maps/
http://maps.google.com

Questions