Category Archives: visualization

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” (https://en.wikipedia.org/wiki/Isochrone_map)

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 Prevoz.org so we could calculate travel time and also suggest rides that pass through your city.

Process

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.

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 si.ckan.net. 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”).

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)

Income

Spending

(red is debt)

Lesson

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.