Having recently returned from a research visit in Plymouth University, I had to prepare a report for EUCog Network that sponsored this event. While wrapping up all the exciting research that was fiercely taking place in what seems to have been an amazing summer for northern Europe, I came to realize the deep aims of EUCog.

"EUCog is a European network of nearly 900 researchers in artificial cognitive systems and related areas who want to connect to other researchers, reflect on the challenges of the discipline and get their research 'out there'. " (Source: http://www.eucognition.org)

In other words, EUCog Network exists because we exist. We are the EUCog Network. Not each one of us but all of us, together; the Network. I know it is there! I've met great people and amazing researchers in the past. I have also collaborated with some of them but I haven't really... seen it. 

Before an event, e.g., next week EUCog meets in Brighton, I usually go through the list of participants to see if any friends or colleagues are attending. But the list is long... and boring, so I tend not to explore new people! Today, I said enough...

I decided to visualise that Network so we can all see it in front of our very eyes and of course give you the code to reproduce it!

If you hate reading the whole story you can jump to the final result by clicking the image below (please don't though, it is interesting to see how I got there...)

If the blue arcs do not show in your map, please force a reload (Ctrl+Shift+R) or empty your browser's cache and reload


Back to Coding

The idea was simple; write a python script, read the list of participants from the website which includes their location and plot it on a graph. Yeah sure, who cares about graphs when you can have a map from the matplotlib tools. Next step, we need a Geocoder to convert the affiliation/location of each member to coordinates for the map. Piece of cake with the GoogleGeocoder module, however, this process is intensive and Google sets limits, so we do it once and we save the data with pickle. Lastly, we hate straight lines so we use the "great circle arcs" instead. Another few lines of code later and here is the network that we were talking about:


Neat! I stared it for 10 seconds and then I thought "This is ugly, not interactive, wastes so much area and you are not getting any more information than these blue lines!"

Plan B: More Code until you Make it Awesome

Everyday we use beautiful maps! The previous example would have been great some years ago or maybe for a scientific project, but here we want something interactive and appealing to the user. Let's follow the "web 2.0 way" then. The new tools that I employed are Leaflet maps, arc.js to draw the arcs, and a bit of dynamically created javascript plus html from the main python script to finish the result.

Usually, multiple members of the same Institution attend EUCog meetings, therefore, some Gaussian noise has been added to the location to easily see the number of people (e.g., see the left image below for Plymouth University) and giving sufficient space to interact with their "pop up" bubble. "Interact with what..?"

Besides visualising the network you can click on the markers and see the name of each participant and follow either their EUCog profile or their webpage (right image below). There are two small problems though. One is that the markers are big and hide the nice view of the arcs so now I am using small circles but you  may have to zoom enough before you manage to click them and see the information (I should fix it soon with a bit of extra javascript to resize the markers depending on the zoom level). Furthermore, GoogleGeocoder cannot find the location for some institutions, e.g., Prof. Muller's dual affiliation is "Anatolia College/ACT & Oxford University, Greece" which obviously confuses it (remember? cognition? we'll have to sort it out!), therefore, whenever there are no results returned, I use the country as a last resort which sends the participants from Anatolia College up in the Greek mountains... Same thing happens, e.g., for the Italian Institute of Technology which goes to Rome! I may have to use a different geocoder or manually edit the locations for these cases. 

Participants from Plymouth with added Gaussian Noise on their location            

If you made it that far, thank you! You are ready to go and see the map

If the blue arcs do not show in your map, please force a reload (Ctrl+Shift+R) or empty your browser's cache and reload

Where do we go from here?

Pretty much anywhere. I'll go ahead and create one map for each event and also one map with just the members to use it as a directory. Another idea is to fetch the first picture by googling the name of each researcher, so we can use it in the pop up window. We could even create a small database that we save all the research papers co-authored by EUCog members and create a network based on these results. We  could also have a different marker depending on the research interests, e.g., a small brain marker for people in neuroscience and a tiny robot for robotics. Sky is the limit...

As always the code is available to you: https://bitbucket.org/gpierris/eucog-events-geolocation 

Please do not abuse the code as you have a limit of ~ 2500 Geolocation queries a day and the map tiles are brought by http://leafletjs.com.