Team member choice due 2/16/19 at 8:59 pm Chicago time Project alpha version due 3/4/19 at 8:59 pm Chicago time Project final version due 3/18/19 at 8:59
pm Chicago time
Project 2 will be the first group project and will take a deeper
look at the air quality data used in Project 1. In project 1 we looked at
the annual data. Here we are going to look at the daily and hourly data.
This lets us investigate whether there is more pollution when it�s warmer,
during the daytime / work hours? during the work week or on weekends? when
its windy? in the north / south, near the coast or not, near more rural,
urban, or industrial areas, etc.
Again we will be using the main classroom wall as the target
display device, but this time with touch enabled, so make sure all of your
controls are reachable by a reasonably sized human without needing a step
ladder.
The standard group size will be 2 or 3 people per group. You
can chose who you want to be in a group with. I will create groups on
Sunday 2/17 for people that have not formed groups on their own, but you
must email me that you are continuing in the class and want to be placed
into a team. I do not want to create teams with people that are not going
to be serious about working with their partners. Be sure to take a look at
the project 1 web pages to get a better idea of people's abilities as you
form your teams. Once you have a team, or part of a team, please
send andy an email CC'd to all the team members confirming that you are a
group.
You should very quickly set up a web page for your group project and send
the URL to andy. The final webpage for the project will be public; the
in-process web pages do not need to be public as long as andy and the TA
have access. Each Friday of the project each team member should post on
the project web site an overview of what he/she did on the project that
week. This comes in handy when assigning ratings to your collaborators and
making sure that everyone is contributing in a timely fashion.
You can use the version of Project 1 from one of your team
members as a starting point if you want, or start over.
As there will be larger file sizes this time you may want to do
some pre-processing on the files. This is ok as long as it is an automated
process that can be re-run to convert the downloaded datafiles into the
versions your application uses, and in particular andy and the TA need to
be able to easy re-run this pre-processing.
The data for this project is available from the same place as
project 1: https://aqs.epa.gov/aqsweb/airdata/download_files.html
For a C you need to
allow the user to do all the 'B' range things for the 10 counties
plus two of your choice from P1 for 1990 through 2018 (or 2019 if
the data appears). While there is daily data from 1980, it gets
better by 1990.
download and read in all of the daily_aqi_by_county files from
1990 to present
allow the user to choose a year and any of the 12 counties and
see the daily AQI data for that year as line chart and see what
pollutant was contributing the most to the AQI for each of those
days
see a stacked bar chart and table for each month of that year
showing the number of days where the AQI was good / moderate /
unhealthy for sensitive / unhealthy / very unhealthy / hazardous /
unknown
allow the user to choose a year and
AQI or one of the pollutants (ozone, SO2, CO, NO2, PM2.5, PM10)
and see a map showing the locations of the top 100 counties that
have an issue with AQI or that pollutant based on the annual data,
in terms of the largest percentage of bad days for that pollutant
(e.g. the user could pick 1992 and CO, or 1995 and AQI). This
map should use color to show the relative 'badness' of those 100
counties.
for
final project turn in - bring up information on the
dashboard about who wrote the project, what libraries are
being used to visualize it, where the data came from, etc
For a B you
need to add:
download the hourly Ozone, SO2, CO, NO2, PM2.5 FRM/FEM, PM10 mass
files, as well as the hourly_WIND files, and the hourly_TEMP files
for 2018
allow the user to choose one of the 12 counties and then allow the
user to choose a date in some intuitive way that shows which days
have data and then allow the user to pick any subset or all of
hourly Ozone, SO2, CO, NO2, PM2.5, PM10, wind, and temperature and
show them as different lines on the same line chart
enhance the interface for the pollutant map to allow the user to
pick the number of counties to view (i.e. give the user a slider to
control how many counties are shown). Note that the number of
counties with data ranges from around 680 to 800 depending on the
year.
allow the user to display values in either imperial or metric
units.
For an A
you need to add:
allow the user to choose any county, similar to the A range in
Project 1, and any date in 2018 and see the data visualizations from
the 'C' and 'B' range.
enhance the interface for the pollutant map to allow the user to
show a heatmap for any of the pollutants for a given day chosen
by the user in 2018.
Graduate
Students need to add:
OpenAQ.org has data for a variety of countries around the world:
https://openaq.org/#/countries - pick a country other than the US
that you are interested in that has reasonable coverage for the last
90 days in terms of different sites and different pollutants - with
at least 5 sites, and 3 different types of pollutants, and allow the
user to query them as well to look at hourly trends, daily trends,
as well as totals over those last 3 months
In
all of these case you need to make sure that your visualizations
are well constructed with good color and font choices, proper
labeling, and that they effectively reveal the truth about the
data to the user
Note
that as part of the web page part of the grade you will need to
use your interface to show your findings, so make sure that the
way your interface displays information is clear.
As
with all the projects your app will be evaluated running full screen
on the classroom wall and should not require scrolling
For this project we will host your solutions through the
shiny.evl.uic.edu site
I recommend using github or bitcucket or a similar service to deal
with your project management - it makes it easy to see who did what
when, easy to roll back, keeps copies of the code safe, etc.
There are two deadlines for this project. By the first deadline you should
have implemented the initial screen layout of your application and have
the basic functionality allowing the user to perform an example of the
various 'C' functionality. This will make sure that your group is on track
and that you can focus on making a good interface and set of
visualizations, not just functional ones. Personally, I think you should
have the entire C functionality done at that point if you are going for an
A on the project as a whole. You should make a link to this version of the
interface available on your group project page.
As part of the final turn in you should create a set of web pages that
describe your work on the project. This should include:
1 page with a link to your visualization solution and a description
of how to use your application and the things you can do with it.
1 page on the data you used, including where you got it, what you
did to it.
1 page with links to a zip file containing your well commented
source code, additionally needed data files, and any instructions
necessary to run it. These instructions should start from the
assumption that the reader has a web browser on their computer and
tell the user everything else he/she needs to know and do to get it
running using R studio.
1 page on what interesting things you found using your application.
This one is particularly important. Show that you can use your
application to find interesting things in the dataset and show the
screenshots to prove it.
1 page on the roles of the different team members
all of which should have plenty of
screenshots with meaningful captions. Web pages like this can be very helpful later on in helping
you build up a portfolio of your work when you start looking for a job
so please put some effort into it.
Be sure to document any external
libraries, tools, etc. that you make use of - give credit where credit
is due for everything that you didn't create yourself.
You should also create a 2-3 minute
YouTube video showing the use of your application including narration
with decent audio quality. That video should be in a very obvious
place on your main project web page. The easiest way to do this is to
use a screen-capture tool while interacting with your application,
though you will most likely find its useful to do some editing
afterwards to tighten the video up. Its also a good idea to have a
video like this available as a backup during your presentation just in
case of gremlins. You
may want to shoot this video on the wall itself.
The web page including screen
snapshots and video need to be done by the deadline so be sure to leave
enough time to get that work done.
I will be linking your web page to
the course notes so please send me a nice jpg image of your visualization for the web. This
should be named p2.<someone_in_your_groups_last_name>.jpg.
When the project is done, each person in the group should also send Andy a
private email with no one else CC'd 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. If you are giving a score other than 3 you need to say why. Please
confine your responses to 1, 2, 3, 4, 5 and no 1/3ds or .5s please. Each
person's score on the project will be based on the overall score for the
group modified by these rankings.
Each group will show their
visualization to the class and describe its features. This allows
everyone to see a variety of solutions to the problem, and a variety of
implementations. Rehearse
your presentation ... several times. All team members are
expected to participate equally in that presentation.
13.
Tlemat, Anas & Hatten, Danielle &
Hruby, Raymond
There was some interest in class in being able to use plotly on the
project. It has are some nice capabilities but if you rely on the basic
controls you can create some really bad / unusable visualizations, so
you are going to want to have your own controls to make sure the user
can easily see what they need to see and not just provide controls that
do things for the sake of doing them, because its very easy to overwhelm
the user with buttons and in a few clicks make the visualizations
unreadable. Engineers really love giving users increased capabilities
without thinking enough about how doing that can make people's lives
more difficult. So ... using plotly is OK on the assignment, but be
aware that it can be a trap. There
is now a virtual machine set up in evl to serve shiny/R applications.
This should show my evl weather app running in evl -
http://shiny.evl.uic.edu:3838/evlweather
you should be able to ssh into shiny.evl.uic.edu as user gX where X is
your group number. We will talk about the passwords in class. Please
change the password ASAP.
and then you will find the directory /srv/shiny-server/gX/app_name
where you can place your files in the app_name directory
and then you should be able to see the app running as
http://shiny.evl.uic.edu:3838/gX/app_name
as of 3/4/19 these are the installed packages on shiny.evl.uic.edu