Our Air Quality hack winners scooped £550 for “Fourcast”. Here’s what Adam Reynolds, Ashton Clapp and Steven Borrie (aka Team Slackers) made.

Fourcast Page

What it looked like


What we did

For the ‘fourcast’ page of our project, we wanted to blend our mixture of Bath’s archived pollution data with real time pollution and weather data. First we looked into journal and research papers to find what meteorological aspects play the largest role in affecting air quality. After determining the major factors to be wind, humidity, and temperature, we then created and used the graphical component of the ‘history’ page in order to discover what values were valid thresholds for each of these factors, and the specific weighting we should assign to them individually. Armed with this knowledge, we built a predictive analytics engine which pulls in forecast data from publicly available weather API’s, and uses that data to make determinations of whether specific pollutants are likely to increase or decrease over the next few days. We present all of this back to the users through a friendly interface where they see the coming forecast, in addition to the predictions we’ve made.

To help users understand how what we do is better than ‘guesswork’, we explain the effects of the coming weather in terms of wind, humidity, and temperature in bite-size blocks of content below the forecast. This content also updates daily along with the forecast above, depending on the direction and strength of the wind, the degree of humidity, and the projected temperature.

At the bottom of the page, we cite the pollutant with the worst air-quality subscore, along with a friendly picture of the respective molecule, and an indication of how bad it was at the most recent time of measurement. We also provide helpful tips on how the user can help make changes to reduce their output of pollutants at an individual level, hopefully spurring them on to consider their effects on the air around them.

Everything on the page (even the tips) changes from day-to-day, in order to provide a relevant and fresh look into the upcoming week.

What could be done next

Using the historical data analysis within History page, a function to derive future levels of pollution by specific times of day and future weather patterns to more accurately predict the calculated levels we currently have. In real terms, historical averages can be used to predict down to the hour of day what should be expected based on weather parameters and location. Also, we have considered looking into suggesting a ‘cleanest route’ a person could take to work, by making small changes to their normal route in order to avoid more polluted areas.

History page

What it looked like


The following are from my test harness and don’t show the rain graph.



What we did

Approach was to take the 13 years of pollution data and merge it with weather data. Using dcjs, crossfilter and d3 javascript libraries to process, merge, dimension, reduce and display the data set in an interactive set of charts.

The historical dataset was reduced to look at the last 3 years. Within a browser working with 310k data points and rendering them can be a bit slow. Reducing to the last 3 years made it work a lot smoother.

What you didn’t see in the presentation was the loading of 41MB (310k points) of pollution data, another 78MB (670k data points) of weather data, the processing and merging process. This would take up to 10 seconds.

Graphs were provided that showed number of readings, day of week, hour of day, Location, NO2 level, 03 Level, and PM10 level for the demo. What we also had was Rain level, temp and wind speed, but ran out of time getting them into the demo due to a couple of data issues. (and another row would look a bit horrible).

What could be done next

prizes (1 of 1)
The data is too big to be effective to use, as well as finding that there were holes in the weather data set. Getting a good clean dataset would be great. Splitting datasets into years would be of immense help, as well as allowing for the ability to ‘select’ which years you want in your charts.

I was working on showing a combined line chart converting each data point to day of year, this would have allowed me to show changes in precise reading levels compared year by year.

The history dashboard would then be split into multiple tabs each one looking at different aspects, but having a common set of tools to filter on date range etc.


Check it out online: Live Fourcast page

Comments are closed.