Skip to the content.

ClockPetals - A traffic analyzer

Click here to play with the system

Introduction

ClockPetals is an online visual analytics system designed for traffic analysis. This project was submitted to 2017 IEEE Visual Analytics for Science and Technology (VAST) Challenge Mini-Challenge One.

A bit about the VAST challenge: it’s an annual IEEE competition event aiming to advancing visual analytics idea, design, and techniques. It usually kicks off in late April and ends by mid July.

Each year VAST challenge provides meticulously synthesized dataset and context stories to the participants from all over the world and asks them to investigate what the data can tell via visual analytics methods, or how visual analytics can help solving problems. Typically every challenge consists of 2-3 sub challenges (called “mini-challenge”) and, maybe, a grand challenge when the mini challenges are connected or in the same context. The investigation result (solution) should answer 3-5 questions the challenge asks. For each question, the solution should presents about 5 visual evidence and explanation for supporting the patterns/anomalies the investigation finds.

In the summer of 2017 (also in 2016 but another story), I worked with two serial-player-and-awardee professors in VAST challenge, along with an undergrad developer, a data scientist PhD (remote),and three visual designers. We competed for two mini challenges in parallel. I was appointed as the team lead to

Okay, so much for the background and my team. Now let’s begin with the simplified version of the problem…

Problem Statement

Context

The problem: It’s a fiction. An ornithologist investigated the human activities’ impact to an endangered specie of bird in a fictional natural preserve park. He hypothetically related the decrease of the number of birds to 1) the air and noise pollution brought by the park traffic and 2) the campers’ (even poachers’) invasion. The ornithologist needed help to analyze the short and long term patterns and outliers of human life in the park through traffic sensor record in order to obtain the most impactful factors on the birds.

The data: The synthetic data came from the vehicle sensors installed at major visiting sites, road conjunctions, entrances, and gates in the park. Each vehicle that visited the park got assigned a unique car ID. A sensor recorded the car ID and the timestamp when the vehicle passed by the sensor. So, each vehicle passed by a sensor would generate a row of record in the dataset. The dataset contained 170,000+ entries over 13 months.

Detail context

Data

Data Preprocessing

Features

The design process including ideations and iterations can be found here or here. Below is some highlights.

The entire system runs on an Apache+Linux+MySQL server hosted at Purdue. For fetching the data, we scripted several JSON APIs using PHP and Python and accessed the APIs using d3.json(). Frontend, we used D3 V4 with extensions such as d3-scale-chromatic and d3-extended. The animation were mostly programmed using d3.transit(). We were not able to achieve vanilla as the vehicle type filtering rules are pretty complex so that we used jQuery. The overall JavaScript code is around 5,000 lines.

Findings

What happened/will happen next?

License

This document is licensed under the Creative Commons Attribution Share Alike 4.0 International, and the underlying source code used to create this document is licensed under the MIT license.