Tag Archives: processing

Flickr as a vehicle of narrative: photos contextualised in space and time

After my project proposal had been accepted, I have attended a workshop at ETH Zurich, titled “Cartography & Narratives” organised by Barbara Piatte, Sébastien Caquard and Anne-Kathrin Reuschel in last summer. The goal of the workshop was to explore “mapping as a conceptual framework to improve our understating of narratives”. Narratives are

“an expression in discourse of a distinct mode of experiencing and thinking about the world, its structures, and its processes“ (White 2010)

or

any cultural artefact that ‘tells a story’ (Bal 2009)

I decided to investigate the photo-sharing platform Flickr as vehicle of narratives (think: the slide show of pictures from a trip, be it directly on the camera’s screen or as an image projected onto your living room wall, as one of arguably the most ubiquitous types of every day narrative).

I have uploaded a preliminary result of my workshop paper on Vimeo (view it large, for good quality):

[vimeo http://vimeo.com/56999213 w=600]

 

The movie shows the temporal and spatial patterns that emerge, when we conflate 80’000+ images taken by 4’000 photographers over the course of several years in the city of Zurich, Switzerland (I only looked at georeferenced photographs). See the description of the video on Vimeo for full information.

I will post more about the workshop results and further work, shortly.

TileMill available for Windows, too

I just got news that TileMill now also runs on Windows (besides Mac OS and Linux). TileMill is a browser-based tool to prepare map tiles which you can, for example, overlay on Google Maps or use as basemap in a Processing sketch. The latter of which I have in my ZIPScribble maps series (here, here or here; some background on using TileMill with Processing can be found here and here).

By the by, I also just learned about this nice five part tutorial by the Chicago Tribune which deals with TileMill and many other tools to create an attractive online map.

(via GIS Lounge)

ZIPScribble Map Germany

“Einigkeit und Recht und Frei-ei-heit…!”

But before we get to that, as explained earlier, there are different levels in my ZIPScribble Maps:

  • Level 1 ZIPScribble Map: Only the first digit of the postcode is compared. Thus, a discontinuity is detected, for example, between postal codes 8679 and 9000, but no discontinuity is detected between 8399 and 8400.
  • Level 2 ZIPScribble Map: The first two digits are compared. Thus, a discontinuity is detected between postal codes 8679 and 9000 as well as between 8399 and 8400.
  • The Level 3 ZIPScribble Map works analogously.

Find below Levels 1 through 3 of the ZIPScribble Map of Germany:

ZIPScribble Map Germany Level 1

Unlike in France, German postcode regions do not necessarily follow the boundaries of German states (nor actually the boundary between former East and West Germany. Note, however how the state and city of Hamburg (star-shaped feature in the northernmost pink region) and the state and city of Berlin stand out (star-shaped green feature in the north-eastern part).

Also remarkable: the very dense postcode structure in the state of Rhineland-Palatinate (mostly the westernmost purple region and a small part of the turquoise region due south of it)!

ZIPScribble Map Germany Level 2

On level 2 the cities of Hamburg and Berlin are still salient. Also, Bremen, Hannover, Stuttgart and, a bit less, Munich can be distinguished from their surroundings.

ZIPScribble Map Germany Level 3

Like in France, level 3 gets rather chaotic…

Also behold the patriotic renditions in black-red-gold:

ZIPScribble Map Germany Level 1, deutsche Art

Note how I had to cheat (introduce orange as a colour) in order to depict all the individual regions. This is an empiric rendition of the four colour theorem which states that you need at most four colours to colour any choropleth map. However, in Germany this is obviously not only at most, but also at least. While I did this coloring, however, I couldn’t help but notice what a special topological structure german postcode regions have. Neither France, nor Italy nor Switzerland have a level 1 postcode region which is topologically connected to almost all other regions!

ZIPScribble Map Germany Level 2, deutsche Art

ZIPScribble Map Germany Level 3, deutsche Art

If you wonder about the process of producing ZIP Scribble Maps, check out my tutorial:
Part I
Part II

Earlier: ZIPScribble Maps SwitzerlandItaly and France.

ZIPScribble Map France

“Allons enfants de la patrie…!”

But before we get to that, as explained earlier, there are different levels in my ZIPScribble Maps:

  • Level 1 ZIPScribble Map: Only the first digit of the postcode is compared. Thus, a discontinuity is detected, for example, between postal codes 8679 and 9000, but no discontinuity is detected between 8399 and 8400.
  • Level 2 ZIPScribble Map: The first two digits are compared. Thus, a discontinuity is detected between postal codes 8679 and 9000 as well as between 8399 and 8400.
  • The Level 3 ZIPScribble Map works analogously.

Find below Levels 1 through 3 of the ZIPScribble Map of France:

ZIPScribble Map France Level 1

How tidy everything looks: All the postcode regions are neatly tucked into individual départements! By the way: You may notice that Corse is there in the Mediterranean but that any overseas territories have been left out.

ZIPScribble Map France Level 2

On this level, Paris jumps out as a very colourful spot in the northern part of France!

ZIPScribble Map France Level 3

On level 3, things become a bit chaotic. However, the cities of Lyon (near the southwestern tip of Switzerland) and Marseille (on the Mediterranean coast) stand out pretty well.

Also behold the patriotic renditions in the colours of the Tricolore:

ZIPScribble Map France Level 1, à la Française

ZIPScribble Map France Level 2, à la Française

ZIPScribble Map France Level 3, à la Française

If you wonder about the process of producing ZIP Scribble Maps, check out my tutorial:
Part I
Part II

Earlier: ZIPScribble Maps Switzerland and Italy.

ZIPScribble Map Italy

Earlier I’ve blogged a two-parts tutorial on how to create ZIPScribble Maps using the Processing visualization framework.

The map uses a background I made with TileMill and CC-BY-licensed postcode data from the Geonames gazetteer portal. (By the way, here’s an informative short TileMill tutorial by Pierre La Baume)

As explained earlier, there are different levels in my ZIPScribble Maps:

  • Level 1 ZIPScribble Map: Only the first digit of the postcode is compared. Thus, a discontinuity is detected, for example, between postal codes 8679 and 9000, but no discontinuity is detected between 8399 and 8400.
  • Level 2 ZIPScribble Map: The first two digits are compared. Thus, a discontinuity is detected between postal codes 8679 and 9000 as well as between 8399 and 8400.
  • The Level 3 ZIPScribble Map works analogously.

ZIPScribble Map Italy Level 1

ZIPScribble Map Italy Level 2

ZIPScribble Map Italy Level 3

What I find interesting, comparing the ZIPScribble Maps of Italy to those of Switzerland, is that in the Italian maps the difference between levels 2 and 3 is not very big. In Switzerland level 3 is much more fragmented than level 2. In Italy, level 3 seems to distinguish big cities from their surroundings.

Consider, for example, Genova on the coast of the Mediterranean sea in the top-left/north-west corner of the ZIPScribble Map. At level 3, Genova (coloured bright green) stands separate from the surrounding towns (purple/fuchsia). Similarly, the cities of Milano, Parma, Modena, Bologna, Florence, Perugia, Rome, Napoly and Palermo stand out at level 3.

Finally, in celebration of the recent political events in Italy I had fun producing these maps (exact colours courtesy Wikimedia):

ZIPScribble Map Italy Level 1, alla Italiana

ZIPScribble Map Italy Level 2, alla Italiana

ZIPScribble Map Italy Level 3, alla Italiana

ZIPScribble Map: Switzerland – Part II

Having seen a visualization by Robert Kosara of EagerEyes a loooong time ago, I wanted to try to reproduce it for Switzerland using Processing. This is the second installment of a two-parts post covering this project, in which I will describe how to arrive at the final result, the ZIPScribble Map. I’ll do that in some detail, maybe this is helpful to somebody.

In the first installment of this series I explained my process up to an intermediate result: a map depicting all the postal code locations in Switzerland, like this:

This involved creating a basemap with TileMill, using Till Nagel’s MercatorMap class in Processing, finding and downloading postal code data from Geonames and writing a Processing sketch which makes use of all these. In this second installment I will explain how to arrive at a ZIPScribble Map for Switzerland from the above intermediate result. So from the first part we have many things in place already. What is missing are basically three things: Continue reading

ZIPScribble Map: Switzerland – Part I

Having seen a visualization by Robert Kosara of EagerEyes a loooong time ago, I wanted to try to reproduce it for Switzerland using Processing. This is the first installment of a two-parts post covering this project, in which I will describe how to arrive at an intermediate result. I’ll do that in some detail, maybe this is helpful to somebody.

The visualization is called the ZIPScribbleMap: “ZIP” for postal codes, “Scribble” for rather obvious reasons (as in “it looks like what I doodle while on the phone!”): Continue reading