In the last decade
more and more tracking data has been made available on the web
allowing
people to track cabs, buses, trains, and planes. In this project
we
will be looking at real tracking data about flights arriving to
and
departing from O'Hare.
This will be the first group project. Given the quick turnaround
time
on these projects you should get your team together quickly and
decide
on roles.
Over the summer I
collected a week of data about flights into and out of O'Hare
using
data from
www.flightstats.com/go/AirportTracker/airportTrackerUpdate.do?airportCode=ORD.
This
data
was collected at 5 minute intervals giving over 2000 files of
data. Each file contains 1 line for each flight either inbound
or
outbound at that time.
Each file is labelled ORD.month-day-year-hour-minute.log
and each file contains a number of lines like the following:
<Flight Id="161510335" Flight="BR 658" Airline="EVA Air"
Latitude="60.52" Longitude="-147.49" Bearing="90" IsDep="0"
/>
Each line contains:
Flight
ID
- unique numerical identifier for each flight
Flight
-
common flight identifier e.g. UA 124
Airline
-
name of the airline
Latitude
-
current latitude of the flight
Longitude
-
current longitude of the flight
Bearing
-
direction the plane is heading (in degrees)
IsDep -
whether its a departing flight (1) or an arriving flight (0)
As in Project 1 you
will be
creating a web page. The final data download may be a little
heavy so
you
should also provide a downloadable version. The application
should have
obvious and intuitive
controls.Similar
to
project 1, this application will involve a map and additional
graphs
to help the user investigate this data. Unlike project 1, before
you
visualize this data you will need to convert it into appropriate
form(s).
For a
C
you need ...
display a useful map of the continental US (could be a
vector map
or a bitmap map, and please cite who
made the map in your documentation) with the flights correctly
located
(and visible) on the map along with their heading.
ability
to
pick a day and play back an animation of the flights
throughout that
day.
ability
to
use the mouse to brush time and see the locations and
heading of all
flights in the system at that time. You should be able to
filter those flights by all / inbound / outbound.
a
graph
showing the total number of flights in the air, inbound, and
outbound
for each hour of the day and night.
as
with
Project 1, you should check your visualization with
a colour
blindness checking web page to see that its ok and the
visualizations should
update
quickly when the user interacts
everything should be well labelled
For a
B
you need to add ...
ability
to
filter flights by airline (being able to show the flights
from any
number of different airlines at the same time)
in
addition to showing the current position of each flight you
should also
add the capability of showing the prior flight paths.
ability
to
compare different days of the week in terms of the number of
inbound /
outbound / total number of flights in the air for each hour
and the
total for the day
For
an A
you need to add ...
allow the user to zoom out to a map of the world
appropriately
geo-referenced with the flight data
be able to vary the display on the map (geographic features,
political features, minimal features, etc)
Show
an
overall reach of each airline (ie for a given airline show
all of the
flight paths for that airline that are to/from O'Hare)
show the density of flights to/from O'Hare by overlaying a
latitude/longitude based grid over the country/world
come up with some questions to ask about this dataset, and
use
your application to answer those questions.
One thing to be careful of on this project is the coordinate
system of
the map you choose, so you can map the latitude and longitude
values
correctly. You may want to look up the coordinates of various
cities
around the country / world and make sure they appear in the
correct
locations on your map.
Another thing is the format of the data. There is 8 MB of
compressed
data and 51MB of uncompressed data here
(and there will be more data in future projects) so you will need
to
massage it into one or more appropriate formats to make it easier
and
quicker to visualize.
As
with
Project 1 you should create a web page describing your work on the
application. This time instead of embedding the processing
applicaiton
you should have a link so people can download your application
(and the necessary data files) to run your application. Please
make
sure that your application is Mac / Windows / Linux compatible. If
you
can get your app to run online through a browser then do include
that
version as well. The web page should describe the contribution of
each
team member (ie who worked on which interface elements, who worked
on
converting the data into a more usable form, etc.)
Please send me a 1024 x 768 jpg image of your visualization for
the
web. This
should be named p2.<someone_in_your_groups_last_name>.jpg.
Each person in the group should also send me a private email
ranking
your coworkers on the project on a scale from 1 (low) to 5 (high)
in
terms of how good a coworker they were on the project. If you
never
want to work with them again, give them a 1. If this person would
be a
first choice for a partner on a future project then give them a 5.
If
they did what was expected but nothing particularly good or bad
then
give them a 3. By default your score should be 3 unless you have a
particular reason to increase or decrease the number. Please
confine
your responses to 1, 2, 3, 4, 5 and no 1/3ds or .5s please. I will
average out all these scores for projects 2, 3 and 4 and make
those
final averages available to the class and keep them in mind when
assigning
final grades.
Each group
will present their work to the class and describe
its features to the rest of the
class. This allows everyone to see a variety of solutions to the
problem, and a variety of implementations.