UFO Infoviz

by Ward Penney @ 11:20 am 26 January 2011

What would you do if 60,000 people saw a UFO? Well that’s exactly what the National UFO Reporting Center has worked so hard to gather. Since 1981, they have been collecting voluntary UFO sighting reports over the phone, in person and on the web. Forming a record of moments from tens of thousands of people across the US, the data speaks volumes to us today. I decided to analyze the data and generate a visualization in Processing in order to find patterns and determine if we truly aren’t alone.

The Data

A mass of self-reported sighting instances since the early 1900’s, the collection of sightings comes to nearly ~100MB indexed in SQLite. The fields are:

  • sighting date,
  • reported date,
  • a one-word description of the “shape” of the craft,
  • the duration, and
  • a description of the sighting.

Some of the fields were missing from a lot of the data, for example only half of the records had the shape field populated. Almost all had dates, and all had descriptions. I used Ruby on RAILS to parse the data into a SQLite database, and began to think about how I may want to visualize it.


I had several ideas in the beginning. I considered morphing the Shapes together, to form a Voltron UFO, but I didn’t think that would make sense even if I had the technical ability. I also wanted to somehow connect the top-grossing Sci-fi movies to the data, possibly showing “tails” behind the movie posters to represent the “tail” of the movie. The tails would be larger if more sightings were reported following the movie. I had finally settled on placing dots on a US map for the sightings, perhaps over time, when our TA pointed out something.

Dan Wilcox found out that Slate.com had done just that! With the same data set! They did one that plotted the sightings geographically as points on a US map. I thought this looked good, but was not that informative because it generally tracked population. They also did one that had a weekly slider control, and it displayed prevalent “shapes” as small icons on a US map. This was interesting because it was over Google Maps, but I don’t think it was informative at all.

So, after a brief data identity-crisis, I decided to just plot a histogram of sighting count per day. When I got the visualization working, I did notice a pattern.

UFO Infoviz Screenshot

UFO Sighting Count Over Time. Notice the seasonal spikes.

The data showed seasonal spikes during the summer months. I was also really interested in why some days had so many sightings, so I began googling the date. A few of the dates were quite revealing: one was a “Earth-grazer”, an asteroid nearly colliding with Earth! Another was a piece of a Chinese satellite falling from orbit and crashing into a house.


I added in a few features on the visualization. First, you can select if you would like to see the data for “sighted_at” or “reported_at” date. The data goes back to 1400, and it is really spread out, so I added date sliders to adjust your beginning and end date. Also, when you hover a datapoint, it shows the date in an opaque box. Clicking the box takes you to a google search for that date.


The GUI controls were in Processing from controlP5, by Andreas Schlegel. SQLite interfacing provided by SQLibrary for Processing, by Florian Jenett.

What I Would Change

I wish I would have filled in the columns below the points, like a true histogram. The axes and their labels were also obscured when using the date sliders. The top left of the graph contains a lot of wasted space.

After I noticed the seasonal spikes, I should have taken some time to create another visualization that was circular and used polar coordinates to show how the summer months yielded many more sightings than the other months.


I learned to really look for examples of something you’re trying to do, especially if your dataset is public or accessible. I also learned that in order to include zooming functionality, you need to think about it from the beginning. I achieved something close to this, but I doubt my structure could have zoomed a US map.

Slides and Code

Here are the slides from my presentation.

Here is the code and dataset zipped up on my Dropbox folder. ~100MB.

1 Comment

  1. Hi Ward, here are comments from the PiratePads.

    it’s an america! with a florida and a texas!

    Nice map of the US.
    Ooo that’s when you go “should’ve done a looking outward first”. < derp Good integration with Google, should add "UFO" to the query string. You're getting lost in the Google integration. We should stay in the viz. There could be some color coding in the histogram (shape, etc.) Agreed Why is there a space between dots in the vertical axis? And the space seems to grow exponentially? ahhh theirs is not attractive at all though. So you still got a leg up. I think you definitely need the UFO search term on the google search though, but also the additional data from google isn't as informative as maybe displaying some of the stuff you already have. Rollover UFO image action would be nice. Y-axis is a little unclear. Integration with google is very cool idea, but seems like there are flaws. I would have UFO somewhere in the google query. Looking just for the day is kind of vague. It seems that the histogram stretches beyond the axes for some reason? Scaling issue? I remember the time a chinese satellite crashed into MY house. WTF? Cool idea for a data set. It would be interesting of some of the trends were more visible. Fun data set to work with. Nice interaction on your final visualization. I like that you continued working with this data set despite finding other visualizations that had already been done. Fun choice of data. i like your napkin sketches. Bummer about the Slate Viz, but you seemed to recover well. The axes need mild labeling, yo. Your visualization forms an interesting interface to the news items. It would be fun to incorporate the browser-fetched information directly into the interface (via pre-cached SQL database etc?); would make a rich and enjoyable piece of software. You could use color to indicate formation/shape, where appropriate. Any sketches of the geographical that you did? Clean interface design, looks nice. I think graphing signthings next to local deomgraphic data like unemployment would be interesting I don't know how interesting the shape data is. I am more interested in time and location Ahh. the dots run into the axis label. maybe you should cut them off at the vertical axis. It could be fun to compare the ufo data with data for things that are commonly mistaken for ufos (planes, balloons, asteroids). Very cool dataset. Crazy that slate did the same thing, but good way to take it in a different direction. Nice interaction letting the viewer click on the data points and taking them to Google. Sliders are a good touch as well. I'd like to see some meaning in color in the histogram, perhaps. good to see you approached the data and looked for patterns via exploration should have found current UFO data viz stuff online before you started ... was easy to find histogram plot seems not as interesting, but now that you;ve pulled out some trends on the days it works quite well ah a google link is great, you could use a "UFO" in the search query This is a pretty cool choice of data set. I like that you can click on the dates and google them. That's a nice choice of interactivity.

    Comment by Golan Levin — 4 February 2011 @ 3:19 pm

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2021 Interactive Art & Computational Design / Spring 2011 | powered by WordPress with Barecity