Project 1
will be an individual project to give people practice with writing
an application in Processing for the wall and get everyone ready
to contribute to the group projects to come. In this project
everyone will learn how to get data into processing, how to write
an interactive processing application, how to create an effective
user interface for viewing and analyzing this data, and make this
work on our classroom touch-wall. This will give everyone a common
basis for communication in the later group projects where people
will most likely specialize in different tasks.
The project will make use of data from the US Energy Information
Administration for the years 1980 through 2009.
The data is available from
http://www.eia.gov/cfapps/ipdbproject/IEDIndex3.cfm
We are interested in looking at the following data
- Total primary energy production (under Total Energy)
- Total primary energy consumption (under Total Energy)
- Total primary energy consumption per capita (under Total
Energy Consumption, use the product drop-down menu)
- Total carbon dioxide emissions from the consumption of
Energy (under Indicators, under CO2 Emissions)
- Per capita carbon dioxide emissions from the consumption
of Energy (under Indicators, under CO2 Emissions, use the
Product drop-down menu)
- Total renewables electricity generation (under Renewables,
under Electricity Generation)
We want to investigate how these values change over time, and
look at differences among countries and regions of the world
You will be writing your code to run on the wall in the
classroom. Solutions that only run on your laptop computer are
not acceptable.
Details on the Cyber-Commons wall:
- The wall is 8160 pixels wide x 2304 pixels tall
- The computer running the wall is running SUSE-12.1 and
Processing 2.0a8.
Your visualization and analysis tool should be written in
Processing. As this is primarily a graph-based visualization, the
Milk / Tea / Coffee example should give you a nice head start on
this. As graphs are a very common visualization this will give you
a chance to write a set of graphing code that you can reuse and
improve in future assignments.
You should start by getting processing installed and doing some
initial tests to load in the data and start displaying it. The
examples from the Visualizing Data text, many of which are
included as examples in Processing itself, are a good starting
point.
You will also need to grab the code we use to interface with the
wall and its touch-screen. This code makes use of new routines
instead of the standard mouse routines from Processing. See the
week 2 notes for the google code
Processing is a multi-platform language but there are some
differences on different platforms so be sure to test your code
and make sure that it runs under the same OS as the wall;
VirtualBox is a pretty nice free emulation solution you may want
to look into. You may also want to stop by during TA office hours
and test your code on the actual wall to make sure it works, that
all the controls and reachable, and that the font sizes, line
sizes, and colors are appropriate for that size screen and that
size room. I highly suggest using scaling factors in your code so
you can scale your solutions from desktop/laptop screen sizes for
debugging up to wall sizes for your final presentation.
Once you have a basic shell working you should then start to draw
some sketches of what the interface might look like and how you
want to arrange and display the data. You can use other software
to generate statistics about the data if you find that useful but
be sure to document that process. Be careful of missing data when
you generate statistics.
Your application should start out showing some data - a blank
screen is not very inviting. In past terms the students have shown
a desire to show an overwhelming amount of the data to the user
right away. You should be careful not to overwhelm the user. As
Schneiderman said "overview first, zoom and filter, details on
demand." Appropriate levels of aggregating data will be very
important here.
It is also important to note that 'getting it to work' is just a
prerequisite to using the application to find answers to your
questions. It is that usage that will give you ideas on how to
improve your app to make it easier and more intuitive to find
those things.
The application you
create should help the user perform the following tasks:
- see changes in total world energy production and consumption
since 1980
- see changes in total Co2 emissions from the consumption of
energy since 1980
- see changes in total renewable energy generation since 1980
- see data in absolute terms and per capita terms
- see how a particular country or region of the world
contributes to those totals
- compare particular countries or regions of the world to
other countries or regions of the world
- cluster the data by decade as well as region
- select regions of the world from a map
- select countries or regions by typing the name of that
country or region with intelligent filtering and autocomplete
- relate this information to world events that may have had an
affect on it
- relate this data to population information