Category Archives: visualization

Travel Time distances from Ljubljana Center


View the interactive map

My friends are looking to buy an affordable house around Ljubljana. But what are their options, if they want to choose based on commute time? I decided to build a tool to visualise their options.

An isochrone map (isochrone plan, isochrone diagram) in science and urban planning is a map showing areas related to isochrones between different points. An isochrone is defined as “a line drawn on a map connecting points at which something occurs or arrives at the same time” (

Methodology and Technology

I’ve generated a grid of ~40.000 points in Slovenia and calculated travel time to it from a fixed point in Ljubljana Centre. Each point is displayed on a map with radius of 800 meters. It’s a tradeoff between number of points and realistic travel time with a car in a populated area.

For routing and time calculations, I used Project OSRM with OpenStreetMap database of Slovenia. A Python script connected all of this together into a static dataset for the the web site.

Lessons learned

I first coded a prototype with  Google Maps Directions API. It turns out that 2500 requests/day isn’t enough to make such an application practical.

I then found OSRM and it allowed me to host directions API directly on my computer. It’s also really fast. On a single i7 core, it can do about 40 requests/second. In practice is almost as good as commercial API’s. Based on my tests, the difference of results is about +/- 5 minutes.

What is missing is traffic data. OSRM is returning travel time in optimal traffic conditions. While some of this data is openly available, I’m not sure how to incorporate it. It would also mean that the whole visualisation would need to display the time component too.

What’s next

I’d like to build a similar version for public transportation – both inside Ljubljana and in the greater Ljubljana region.

It wouldn’t be too hard to make this map dynamic – so you could select your own starting point.

I’ve also discovered that running your own directions API opens up a number of new possibilities. One of them would is potentially adding a layer of routing to so we could calculate travel time and also suggest rides that pass through your city.

Do you have any ideas?

Let me know in the comments.

I now also have a newsletter so you can be notified when I release something new. Subscribe to it now 🙂.

Culture successfully raises funds from the EU

Today  Cultural Contact Point Slovenia based at SCCA-Ljubljana, Media Desk Slovenia, and Art and Science Laboratory released visualisations of last decade of successful fundraising data from EU programmes.




This is first public release of such data in Slovenia and is result of 6 months of intensive work in data reconciliation, methodology and finally – visualisation.

I helped mostly in regards with data reconciliation and can speak about the tools we used. Basic tool was Google Spreadsheet and was used as a database that everyone could contribute to and it helped us sync the data together. It also allowed for basic pivot table based visualisations. It worked mostly ok and ability to write scripts for it also helped a lot. Finally the data was moved into Semantic media wiki and visualised using d3.js.

Lessons learned

  • Google Spreadsheets don’t scale. After you reach about 1000 rows with 30 columns, it becomes almost unusable slow.
  • This dataset is complex enough that it would benefit from automatic checks – automated reimporting into real database and basic reports – unique institution, basic pivot tables. This would help with encoding, whitespace issues that Spreadsheet doesn’t handle.
  • Google Spreadsheet got really good tools for pivot tables, but they’re a pain to manage if data ranges change. It can probably be further automated but I haven’t yet figured out how.

Visualizing Slovenian coalition agreement

With the election of new Slovenian prime minister we also got formal release of a Coalition agreement. Since it’s a 72 page document, I was wondering what keywords would stand out. Here is the result:

Pogodba za Slovenijo 2012 - 2015 - word cloud (top 80 words)

While we’re at it, we can also take a look at the coalition agreement that Pozitivna Slovenija prepared. As we run them through the same process, we get:

Koalicijska pogodba - Pozitivna Slovenija - 2012 (top 80 words)


A few words on how to reproduce this:

  • Grab your favorite OCR software and convert scanned PDF into .docx
  • From Word save it into .txt file
  • Lemmatize the words so you normalize all the grammar rules
  • Apply stop-words (in this case mostly: ministrstvo*, vlada, slovenija*, ..)
  • Drop the resulting text into


Where not to illegally park in Ljubljana

Where in Ljubljana it’s most likely that your car will be towed away? In short: city centre, beginning of Vi? and around Metelkova.

Click for interactive version

or alternative visualization

Click for interactive version

Source of this data is page from Javni Holding Ljubljana that publishes your car info and the street it was towed away from. Gašper created Scraper wiki for it and is collecting data for last 3 months (aggregated source, if you want to reuse it).

Heatmap as a visualization technique was chosen because the data itself is very fuzzy (only street names are given, without the street number). It also tells you which neighborhoods to avoid.

If you want to help us bring more of such mashups into the world, please consider adding other sources of data into These pictures are end results of one such example where data was not hidden behind a telephone or a piece of paper (in a locked filing cabinet in a disused lavatory behind a door that says “Beware of the tiger”).

Thanks goes to RTV Slovenia for hosting OpenData Hackday.

Visualizing budget of Slovenia for 2010

Slovenian budget is a 12 billion euro monster that most citizens don’t understand or even have remote idea how it’s structured and where does their money go. As it turns out, people are just not good at taking abstract numbers to go into billions and understanding proportions and what it means to spend 50 million on one thing and 1 billion on something else.

That is what I’m trying to solve with this Visualization of budget of Slovenia for 2010. Show where the money is going as well as tell a story of a country that’s so much in debt that it would be a reason for panic if it happened to a person or a company. Yet we don’t seem to talk or address the issue that we’re 3.6 billion EUR short of making budget and that we have to borrow more money to pay our old debts.

(click on image for interactive version)



(red is debt)


Having access to experts or your own understanding of the data you’re trying to visualize is essential. In this case we had to reassemble budget since they form listing in a way that presents debt separately from the rest of the budget.