Sensor Engine

Maker Prize Winner

Sensor Engine won one of three Maker Prize awarding $500 worth of goods and goodies from SeeedStudio.


Project Description

Sensor Engine is a visualisation of a single 24hr period across the sensor network, and includes example output for Boston, San Francisco, Singapore and Geneva. The source data was from a single day, 9th March 2015 with data in one hour intervals.

The images are created by an entirely automated process written using FME software from Safe Software ( FME allows for the creation of reusable data transformation models, and supports over 300 formats of spatial (CAD, GIS, 3d, raster) and non-spatial (databases, spreadsheets, text files, xml) data.

The input to the model are the csv sensor data files and some OpenStreetMap vector data covering each city. The first stage of the process creates the backdrop map for each city by dynamically reading map data based upon a latitude and longitude set for each city. Building height values are generated using a random number assigned to different polygon sizes, and extruded into 3d objects and rotated with the rest of the map features at -55 degrees along the x axis. Building shadows are made using an x & y coordinate offset of -0.0005 decimal degrees. The buildings (sorted by minimum y coordinate value so they don’t overlap) and other map features are styled and rasterised using a MapnikRasterizer transformer, and written out ready for the next stage.

Next the model reads all sensor values at once and calculates statistics, so the images can visualise the data proportionally across all the cities in the 24 hour period. This done by calculating maximum values per sensor, for example humidity ranges from 18.6 (Boston) to 68.2 (Singapore).

The images show:
– Time (hours are presented in the same time zone for each city, allowing for a direct comparison of the same time of day)
– Pollution (this represents the sum of ‘air quality’ and ‘dust’, and is shown as a white haze or smog. Transparency is used to show high and low values per city)
– Temperature (temperate values shown coloured with a gradient from orange (high) to blue (low)
– Noise (sound levels are shown as increasing and decreasing lines in the bottom left corner)
– Humidity (humidity values shown as a set of radiating blue lines going from left to right, as values rise and fall)

The workspace creates a single image for each hour, for each city (7 cities*24hrs=168). To create updated images over a longer period, all you would need to do is read a larger set of data and group by the date and rerun the model. The benefit of this approach is that this could be scheduled to run every hour, and continually update the images as new sensor data is logged.

All the settings in the model can be parameterised, meaning that a user could run the model choosing a specific city, date range, colour range, lat/long coordinates, etc. Currently a desktop process, the same workspace can be published to FME Cloud, allowing it to be run anywhere, by anyone at any time.
Output images are manually compiled into animated gifs, starting at 00:00hrs PST, and are intended to displayed together in a series.

© OpenStreetMap contributors.


Created by Owen Powell (Solihull, UK)


Sensor Engine (Singapore)

Sensor Engine (SF)

Sensor Engine (Geneva)

Sensor Engine (Boston)







Posted on

March 25, 2015