Visualize your trail

Screen Shot 2013-07-23 at 12.50.45 PMCurrently I’m participating in the Quantified Self summer school at the CIID (Copenhagen Institute for Interaction Design). The focus lies on the visualisation of complex data sets, currently a hot topic in science. As workhorse the Java based environment Processing is used, which is widely known in the visualization community. (For some vivid examples check

To get a better grasp of Java in general and processing in particular I wrote a small package that visualizes all the places you have visited with the corresponding color mood (=the most prominent color in the pictures you took).

Since my phone logged the GPS coordinates of every picture (about 3000) I took the last year I should be able to visualize this on the globe. To get this result is used the following libraries:

  • Metadata-extractor for GPS data extraction from the pictures
  • Toxiclibs for color extraction and manipulation
  • worldVis to visualize the globe and merge them with the data points.

By running the data mining part of the program a list is constructed with the GPS coordinates and the corresponding most prominent color in that pictures.

Screen Shot 2013-07-23 at 12.03.29 PM

Next step is to cluster the pictures based on the GPS coordinates using a simple cut-off algorithm which just creates a new cluster if a new data point does not fall within the pre-defined cut off value. To visualize this in a more readable way I constructed the picture below. On the top row it shows the final color of the 9 clusters and the other rows represent all the pictures and their dominant color. The black gaps represent a switch to a different place.

Screen Shot 2013-07-23 at 12.01.58 PM

Finally the latitude and longitude can be converted into polar coordinates and plotted on a 3D globe. These coordinates are connected using curves that fade from one cluster color to another cluster color to depict the ‘mood shift’.


Screen Shot 2013-07-23 at 11.40.40 AM

There are still some improvements to be made:

  • Cluster algorithm is doggy and too simple, it should cluster in polar coordinates instead of Cartesian (because of now it does not take the -180 / +180 switch into account for example)
  • Color assignment, since just taking the average of all the colors results in a grey/brownish blur (just like mixing up the paint years ago in kindergarten) a more sophisticated algorithm needs to be impended.
  • The vertex is on the map are currently distance independent, such that drawing a line from the south to the north pole will likely result in a curve slicing through the earth.

After the improvements are made and the code is cleaned up I’ll certainly post it on for others to play with.

Leave a Comment

Filed under Course

Leave a Reply

Your email address will not be published. Required fields are marked *