The orientation of Amsterdam’s streets

Eight days from now, Amsterdam will have a new metro line traversing the city from north to south. But what about the orientation of the city’s streets?

Geoff Boeing - who created a Python package for analysing street networks using data from OpenStreetMap - just published a series of polar histograms of American and ‘world’ cities. Amsterdam isn’t among them, but Boeing made his code available, so I used that to create charts for the largest cities in the Netherlands.

While the pattern isn’t nearly as monotonous as in most American cities, I’m still surprised how many streets in Amsterdam run from north to south or from east to west. The Hague has a strong diagonal orientation; Rotterdam doesn’t seem to have a dominant orientation and Utrecht is a bit in between.

With Boeing’s code, you can also do the analysis specifically for roads that are accessible to cyclists, but for Amsterdam that doesn’t make much difference since most roads are.


15 July 2018 - There was some really interesting discussion on Twitter in response to my post from last Friday (I use Twitter names to refer to people; most sources are in Dutch).

Curved streets

Both Sanne and Egon Willighagen asked how the chart treats curved streets. I have to admit I hadn’t checked, but the docstring of the add_ege_bearings function explains that it calculates the compass bearing of edges from origin node to destination node, so that implies that streets are treated as if they were straight lines.

Is that a problem? Probably not for many US cities, for they seem to have few curved streets. As for Amsterdam: most people’s mental image of the city is probably dominated by the curved canals of the city centre. However, many neighbourhoods consist of grids of more or less straight streets. So perhaps curved streets have little impact on the analysis after all.

Length versus surface

Hans Wisbrun argues that the chart type is nice, but also deceptive. The number of streets is represented by the length of the wedges, but one may intuitively look at the surface, which increases with the square of the length. In a post from 2013 (based on a tip from Ionica Smeets), he used a chart by Florence Nightingale to discuss the problem.

Rogier Brussee agrees, but argues that a polar chart is still the right choice here, because what you want to show is the angle of streets.

In a more general sense, I think the charts are an exploratory tool that’ll give you an idea how street patterns differ between cities. If you really want to understand what the wedges represent, you’ll have to look at a map.

Beach ridges

That’s what Stephan Okhuijsen did. He noted that the chart for The Hague appears to reflect the orientation of the city’s coastline. Not quite, Christiaan Jacobs replied. The orientation of the city’s streets is not determined by the current coastline, but by the original beach ridges.

I don’t know much about geography (or about The Hague for that matter), but a bit of googling suggests Jacobs is right. See for example this map (from this detailed analysis of one of The Hague’s streets), with the old sand dunes shown in dark yellow.

See also links to previous similar work in this post by Nathan Yau (FlowingData).

Амстердам, mapped by the Soviet Union

For fifty years, the Soviet Union had an ambitious military programme to map large parts of the world. Two collectors, John Davies and Alexander Kent, have written a great book about the secret maps that resulted from this programme.

Most of the maps in their book are of the US and the UK. Their descriptions are so intriguing that I had to find out whether Amsterdam has also been mapped. It turns out it has: on Ebay, I found a reproduction offered for sale by the Jana Seta Map Shop in Riga.

The map consists of four sheets, each more than a metre wide and 90cm high. The left margin of the fourth sheet contains the following text:

If I’m not mistaken, this text contains the following information: the scale of the map; the name of the city; the reference numbers of the 1:100,000 maps with the location of the city; the sheet number (4/4); the status of the map (SECRET) and the year of publication.

So it appears that the map was published in 1985, but that’s not the whole story. At the bottom of sheet 4, the following text is printed:

Sometimes, this text would contain the names of the people who had created the map (frequently women), but that’s not the case here. I think it says here that the map was compiled in 1972 and updated with material from 1980. By the way, a description of Amsterdam printed next to the map also refers to demographic information from 1981.

To check how recent the material is, I created a map of Amsterdam with buildings from 1980 and 1981 colour-coded. This shows that in those years, most construction took place to the south-east of the city, beyond the Bijlmer neighbourhood. The fragment below shows the area between the Academic Medical Centre and the Gaasperplas (click on the image to open it in a new screen).

For comparison, here’s roughly the same area from the Soviet map.

Generally, buildings from 1980 (orange) and before are shown on the Soviet map, while buildings from 1981 (red) are not. This seems to confirm that the map was updated with material from 1980.

The cartographers who created the maps used satellite images, local maps and other public sources, and sometimes information collected on the ground.

Some maps show new buildings but without the corresponding street names. The explanation may be that cartographers had access to recent satellite images showing the buildings, but no local maps were available yet from which the street names could be taken, Davies and Kent explain.

Something similar may apply to the Bijlmerbajes, a former prison which now houses a refugee centre.

The Bijlmerbajes opened in 1978. The map shows the prison buildings: they are east of the tracks, with a ditch in between. However, there’s no explanatory text: the only text is the name of metro station Spaklerweg. It appears that the cartographers did have access to recent satellite images showing the buildings, but no information about their function.

I don’t know whether any Dutch maps which identify the Bijlmerbajes existed in 1980. The Dutch Land Registry has a handy website with historical maps. It contains a map from 1981 identifying the Bijlmerbajes as gevangenis (prison).

The prettiest parts of the map are the harbours, that have been mapped in great detail. That’s not the case for Schiphol Airport, shown below.

The maps used a uniform colour coding. Simply put, green represented objects of military or strategic interest; purple, public institutions and black, manufacturing. Schiphol-Centrum (to the left) and Schiphol-Oost, with an aircraft repair shop (top right) have been marked as objects of strategic interest. Black blocks refer to the now closed Fokker factory, where military aircraft were produced

It’s striking how ‘empty’ Schiphol is. To some extent this is understandable: asphalt and wasteland make up a large part of any airport. However, it also appears that the cartographers didn’t have all that much information about Schiphol. For example, there used to be a depot for jet fuel (which was still delivered in barges) at Schiphol-Oost. If the cartographers had been aware of this, they would probably have included that information in the map.

Moving on to the harbours, here’s a part of the Western Harbour Area.

The Western Harbour Area contains one of the largest petrol harbours of the world. The green objects suggest the cartographers were rather interested in fuel infrastructure.

And here’s part of the Eastern Harbour Area.

There’s a lot to see here. The green triangle with number 29 represents the naval complex at Kattenburg (it has recently been abandoned by the Navy and will be converted into offices and housing). Interestingly, the square at the bottom of the triangle has also been marked as object of strategic interest. In the past this used to be a Navy warehouse, but it was turned into a Maritime Museum in 1973.

Other green objects include the Oranje-Nassau barracks at the Sarphatistraat (number 30, still in use by the army at the time) and the former location of the Nautical College (number 301).

There’s also a little green block between the Waterlooplein and the Nieuwe Amstelstraat (number 5 to the left of the photo). According to the map index, this is an арсенал or arsenal. In a way, that’s correct: the buildings name is Arsenal. The name refers to the fact that the building has been used to store arms in the past, but since 1946 it houses the Academy of Architecture.

Lovers of detail may want to zoom in to the Czaar Peterstraat. Soviet army maps used to write names phonetically, following the local pronunciation. The fact that this streets name has a Russian origin doesn’t change that: the tsar’s name is spelled Peter (Петер), not Pyotr (Пётр).

And here’s yet another strategic location, near the Museumplein.

Objects in this fragment include the American Consulate (number 166, but in a different building than where you’d expect it to be) and a bus stop where KLM busses to Schiphol Airport used to depart (number 187).

Of interest is number 250, located next to the Zuiderbad indoor swimming pool. The object is green, therefore deemed of strategic interest. The description says Служба безопасности or security service, according to Google Translate. That’s intriguing. Could it be that the map reveals an unknown location of the national security service BVD?

Not quite. This used to be the address of a precursor of the Dutch NIA (now part of TNO), an institute that dealt with workplace health and safety. Its former name was Veiligheidsinstituut or Safety Institute. However, the Dutch word veiligheid can mean both safety and security, which explains how the Soviet cartographers could have mistaken the Veiligheidsinstituut for a security service.

Details about Amsterdam

The Soviet city plans come with a general description of the city. To give an idea of the contents, here are some elements from the description of Amsterdam:

  • Because of dikes, rivers and canals and because of the viscous soil, movement of vehicles outside of the roads is almost impossible.
  • The destruction of hydraulic structures can cause catastrophic flooding of the terrain.
  • Along the roadside there are bicycle paths with a width of up to 2m.
  • All nearby settlements are electrified, provided with telephone communication, and have running water and gas.
  • From the air, Amsterdam is easily recognisable by its large size and its location between the IJsselmeer and the North Sea.
  • On some canals, there are many floating houses.
  • The metro lines have a length of 18 km (3.5 of which are underground) and number 20 stations, including 5 underground ones; the distance between underground stations is 0.8 - 0.9 km, between ground stations - 1.1–1.3 km

In addition, the text contains detailed information about manufacturing, research, administration and other topics.


I once started to learn Russian, but I never progressed much beyond я не говорю по-русски. To decipher Russian texts on the map, I used the Cyrillic keyboard of my iPhone for typing short pieces of text, and I scanned longer ones with the FineScanner app, which offers OCR for Cyrillic (this works as long as the text has a white background, but not with texts printed on the map itself). I used Google Translate to translate the texts. The result may not be perfect, but it appears to work pretty well.

I created the map with construction dates using Qgis and Open Street Maps map data, which contains data from the Land Registry (Kadaster).

I can’t rule out that my interpretation of the map (and the Russian texts on it) contains errors. If you have any comments, please let me know.

John Davies en Alexander J Kent, The Red Atlas: How the Soviet Union Secretly Mapped the World. University of Chicago Press, 2017.

Maps of other Dutch cities and detailed information here.

Амстердам, in kaart gebracht door de Sovjet-Unie

Vijftig jaar lang had de Sovjet-Unie een ambitieus militair programma om grote delen van de wereld in kaart te brengen. Twee verzamelaars, John Davies en Alexander Kent, hebben een fantastisch boek geschreven over de geheime kaarten die werden gemaakt.

In hun boek beschrijven ze vooral kaarten van Amerika en Groot-Brittannië. Hun beschrijvingen zijn zo intrigerend dat ik op zoek ging of er ook een kaart van Amsterdam bestaat. En dat blijkt het geval: op Ebay vond ik een herdruk, aangeboden door de gespecialiseerde Jana Seta Map Shop in Riga.

De kaart bestaat uit vier delen, elk ruim een meter breed en 90cm hoog. In de linkermarge van het vierde kaartblad staat de volgende tekst:

Als ik het goed begrijp bevat deze tekst de volgende informatie: de schaal van de kaart, de naam van de stad, de nummers van de 1:100.000 kaarten waarop de stad te vinden is, het nummer van het kaartblad (4/4), de status van de kaart (GEHEIM) en het jaar waarin hij is uitgegeven.

De kaart lijkt dus te zijn uitgegeven in 1985, maar dat is niet het hele verhaal. Onderaan blad 4 staat de volgende tekst:

Soms werden hier de namen vermeld van de makers van de kaart (vaak vrouwen) maar dat is hier niet het geval. Als ik me niet vergis, staat hier dat de kaart is samengesteld in 1972 en bijgewerkt met materiaal uit 1980. Overigens wordt in de begeleidende tekst ook verwezen naar bevolkingsgegevens uit 1981.

Om te checken hoe recent het materiaal is, heb ik een kaart gemaakt van Amsterdam waarop gebouwen met bouwjaren 1980 en 1981 zijn ingekleurd. Daaruit blijkt dat er in die jaren vooral gebouwd is in het zuidoosten van de stad, voorbij de Bijlmer. Het fragment hieronder laat een gedeelte zien tussen het AMC en de Gaasperplas (klik op de afbeelding om hem in een nieuw scherm te openen).

En ter vergelijking ongeveer hetzelfde gebied, maar dan op de Sovjetkaart.

De meeste gebouwen met bouwjaar 1980 (oranje) en eerder staan op de Sovjetkaart, terwijl gebouwen met bouwjaar 1981 (rood) en later ontbreken. Het lijkt er dus op dat de kaart inderdaad tot en met 1980 is bijgewerkt.

Bij de productie van de kaarten werd gebruik gemaakt van satellietfoto’s, van lokale kaarten en van andere openbare bronnen, soms aangevuld met informatie die ter plekke was verzameld.

Op sommige kaarten staan nieuwe gebouwen maar ontbreken de straatnamen. Waarschijnlijk beschikten de cartografen over recente satellietfoto’s waarop de gebouwen al te zien waren, maar waren er nog geen lokale kaarten beschikbaar waar de nieuwe straatnamen van konden worden overgenomen, aldus Davies en Kent.

Iets vergelijkbaars zou wel eens aan de hand kunnen zijn met de Bijlmerbajes.

De Bijlmerbajes (sinds 2016 een asielzoekerscentrum) werd geopend in 1978. Op de kaart zijn de torens van de gevangenis te zien: ze liggen ten oosten van het spoor, met een gracht ertussen. Een toelichting ontbreekt echter: de enige tekst is de naam van metrostation Spaklerweg. Blijkbaar hadden de makers van de kaart wel beschikking over een recente satellietfoto waarop de torens te zien zijn, maar geen informatie over de functie van de gebouwen.

Of er in 1980 al Nederlandse kaarten bestonden waarop de Bijlmerbajes werd vermeld, weet ik niet. Het Kadaster heeft een handige website met historische kaarten. Daar is een kaart uit 1981 te vinden waarop de Bijlmerbajes wordt aangeduid als gevangenis.

Ten zuiden van het afgebeelde gedeelte, bij het huidige station Duivendrecht, zijn nog wat boerderijen te zien met namen als Ис-Нит-Андерс (’t Is niet anders) en Алтеид-Верк (Altijd werk).

De mooiste onderdelen van de kaart zijn de havens, die zeer gedetailleerd in kaart zijn gebracht. Maar bij wijze van contrast eerst een gedeelte van Schiphol.

De kaarten werkten met een uniforme kleurcodering. Kort door de bocht: groen voor militair / strategisch interessante objecten; paars voor publieke instellingen en zwart voor industrie. Schiphol-Centrum en Schiphol-Oost (vliegtuigonderhoud) zijn aangemerkt als strategisch interessant. Zwarte blokken verwijzen naar de inmiddels gesloten Fokkerfabriek.

Opvallend is dat Schiphol grotendeels ‘leeg’ is. Voor een deel is dit begrijpelijk: een luchthaven bestaat nu eenmaal voor een groot deel uit asfalt en braakliggend terrein. Maar tegelijk lijkt het erop dat de makers niet zoveel informatie hadden over Schiphol. Zo moet er op Schiphol-Oost een depot zijn geweest voor kerosine, die toen nog per binnenvaartschip werd aangevoerd. Als de makers van de kaart daarvan op de hoogte waren geweest, dan hadden ze dat vast vermeld.

En dan nu de havens, om te beginnen een stuk van het Westelijk Havengebied.

Het Westelijk Havengebied vormt één van de grootste benzinehavens ter wereld. De groene objecten suggereren dat de makers van de kaart geïnteresseerd waren in de infrastructuur voor brandstofoverslag.

Hieronder het Oostelijk Havengebied en omgeving.

Er is hier een hoop te zien. Het voormalige marinecomplex op Kattenburg bijvoorbeeld, de driehoek met groene gebouwen met nummer 29. Opmerkelijk is dat het vierkant onder de driehoek ook als strategisch wordt aangemerkt. In het verleden was dit een pakhuis voor de marine, maar sinds 1973 zit hier het Scheepvaartmuseum.

Andere groene objecten zijn de Oranje-Nassaukazerne aan de Sarphatistraat (nummer 30, destijds nog in gebruik door het leger) en het voormalige adres van de Zeevaartschool (nummer 301).

En dan is er nog een groen blokje tussen het Waterlooplein en de Nieuwe Amstelstraat, aangeduid met nummer 5, helemaal links op de foto. Volgens de kaartindex is dit een арсенал ofwel een arsenaal. In zekere zin klopt dit: het gebouw heet Arsenaal. Die naam verwijst ernaar dat het gebouw in het verleden is gebruikt voor wapenopslag, maar in 1946 werd het in gebruik genomen door de Academie van Bouwkunst.

Liefhebbers van details moeten nog even inzoomen op de Czaar Peterstraat. Op de kaarten van het Sovjetleger worden namen fonetisch geschreven, waarbij de lokale uitspraak wordt gevolgd. Dat het hier gaat om een van oorsprong Russische naam verandert daar niets aan: de naam van de tsaar wordt weergegeven als Peter (Петер) en niet als Pjotr (Пётр).

Tenslotte nog een strategische lokatie in de omgeving van het Museumplein.

Op dit fragment zie je onder meer het Amerikaanse Consulaat (nummer 166, een ander gebouw dan waar je het zou verwachten) en een bushalte waar KLM-bussen naar Schiphol vertrokken (nummer 187).

Interessant is nummer 250, naast het Zuiderbad. Dit blok is groen, dus strategisch interessant. De toelichting vermeldt Служба безопасности ofwel security service, aldus Google Translate. Intrigerend. Zou de kaart een onbekende lokatie van de Binnenlandse Veiligheidsdienst onthullen?

Nee dus. Op dat adres zat een voorloper van het Nederlands Instituut voor Arbeidsomstandigheden, inmiddels opgegaan in TNO. In het verleden heette dit het Veiligheidsinstituut. Blijkbaar hebben de makers van de kaart dit opgevat als veiligheidsdienst, en het gebouw daarom aangemerkt als strategisch object.

Bijlage: details over Amsterdam

De stadsplattegronden zijn voorzien van een algemene beschrijving van de stad. Om een idee te geven van wat er in zo’n beschrijving staat, hieronder enkele punten uit de beschrijving van Amsterdam:

  • Door de dijken, rivieren en kanalen en door de zompige grond is het bijna onmogelijk om met voertuigen buiten de wegen te komen.
  • Het vernietigen van waterbouwkundige structuren kan een rampzalige overstroming veroorzaken.
  • Langs de wegen liggen fietspaden met een breedte tot 2m.
  • Alle nederzettingen in de omgeving zijn geëlectrificeerd en voorzien van telefoon, stromend water en gas.
  • Vanuit de lucht is Amsterdam makkelijk te herkennen door zijn grote omvang en zijn positie tussen het IJsselmeer en de Noordzee.
  • In sommige grachten liggen veel drijvende huizen.
  • De metrolijnen hebben een lengte van 18km (waarvan 3,5km ondergronds) en 20 stations (waarvan 5 ondergronds); de afstand tussen ondergrondse stations is 0,8 tot 0,9km, tussen bovengrondse stations 1,1 tot 1,3km.

Daarnaast bevat de tekst gedetailleerde informatie over industrie, onderzoek, bestuur en andere onderwerpen.


Ik ben ooit begonnen om Russisch te leren, maar veel verder dan я не говорю по-русски kom ik niet. Om het Russisch te ontcijferen heb ik korte teksten overgetypt met het Cyrillisch toetsenbord op m’n iPhone. Langere teksten heb ik gescand met de FineScanner-app, die OCR biedt voor Cyrillisch schrift (dat werkt als de tekst een witte achtergrond heeft, maar niet met teksten die op de kaart zelf zijn afgedrukt). De teksten heb ik vertaald met Google Translate. Het resultaat is niet perfect maar het lijkt behoorlijk goed te werken.

De kaart met gebouwen naar bouwjaar heb ik gemaakt met Qgis en gegevens van Open Street Map, waarin weer gegevens zijn opgenomen van het Kadaster.

Het zou best kunnen dat ik sommige informatie onjuist heb geïnterpreteerd. Als iemand opmerkingen heeft, hoor ik het graag.

John Davies en Alexander J Kent, The Red Atlas: How the Soviet Union Secretly Mapped the World. University of Chicago Press, 2017.

Kaarten van andere Nederlandse steden en detailinformatie vind je hier.

New Python package for downloading and analysing street networks


The image above shows square mile diagrams of cyclable routes in the area around the Stationsplein in Amsterdam, the Hague, Rotterdam and Utrecht. I made the maps with OSMnx, a Python package created by Geoff Boeing, a PhD candidate in urban planning at UC Berkeley (via).

Square mile diagrams are a nice gimmick (with practical uses), but they’re just the tip of the iceberg of what OSMnx can do. You can use it to download administrative boundaries (e.g. the outline of Amsterdam) as well as street networks from Open Street Map. And you can analyse these networks, for example: assess their density, find out which streets are connections between separate clusters in the network, or show which parts of the city have long or short blocks (I haven’t tried doing network measure calculations yet).

Boeing boasts that his package not only offers functionality that wasn’t (easily) available yet, but also that many tasks can be performed with a single line of code. From what I’ve seen so far, it’s true: the package is amazingly easy to use. All in all, I think this is a great tool.

How much delay for cyclists is caused by traffic lights

Road segments near traffic lights

The other day I posted an article on how much time cyclists lose at traffic lights in Amsterdam. Someone asked if I can calculate what percentage of total time lost by cyclists is caused by traffic lights. Keep in mind that delays can be caused by traffic lights, but also by crossings without traffic lights, crowded routes and road surface.

Here’s an attempt to answer the question, although I must say it’s a bit tricky. Again, I’m using data from the Fietstelweek (Bicycle Counting Week), during which over 40,000 cyclists shared their location data. This time I’m using the data about links (road segments). For each link, they provide the number of observations, average speed and relative speed.

With this data, it should be possible to estimate what share of total delays occurs near traffic lights. But what is near? It’s to be expected that the effect of traffic lights is observable at some distance: people slow down while approaching a traffic light and it takes a while to pick up speed again after. But what threshold should you use to decide which segments are near a traffic light?

One way to address this is to look at the data. I created a large number of subsets of road segments that are within increasing distances from traffic lights, and calculated their average speed. For example, segments that are within 50m from a traffic light have an average speed of about 16 km/h. The larger group of segments that are within 150m have an average speed of about 17 km/h.

Judging by the chart, it appears that the effect of traffic lights is diminishing beyond, let’s say, 150m. You could use this as a threshold and then calculate that delays near traffic lights constitute nearly 60% of all delays.

However, there’s a problem. Even if a delay occurs within 150m of a traffic light, the traffic light will not always be the cause of that delay. I tried to deal with this by estimating a net delay, which takes into account how much delay normally occurs when cyclists are not near a traffic light (in fact, I used two methods, that have quite similar outcomes). Using this method, it would appear that over 20% of delays are caused by traffic lights.

Now, I wouldn’t want to make any bold claims based on this: these are estimates based on assumptions and simplifications (in fact, if you think there’s a better way to do this I’d be interested). That said, I think it’s fair to say that average bicycle speeds appear to be considerably lower near traffic lights and that it’s plausible that this may be the cause of a substantial share of delays for cyclists.

UPDATE - I realise that the way I wrote this down sort of implies that you could reduce delay for cyclists by perhaps 20% just by removing traffic lights, but that would of course be a simplification.


I used Qgis to process the Fietstelweek data. I used the clip tool to select only road segments in Amsterdam. I had Qgis calculate the distance of each segment and extract the nodes, which I needed to get the coordinates of the start and end points. Further processing was done with Python.

The dataset contains a relative speed variable (it is capped at 1, which means that it only reflects people cycling slower than normal, not faster). A relative speed of 0.8 would mean that people cycle at 80% of their normal speed. I calculated total delay at segments this way:

number of observations * (1 - relative speed) * distance / speed

You can then calculate delay at segments near traffic lights, as a percentage of the sum of all delays.

I tried to get an idea of how much of delay is actually caused by traffic lights, by estimating net delay. For this, I needed net relative speed. I used two methods to estimate this: 1. divide the relative speed of a segment by the median relative speed of all segments that are not near a traffic light; and 2. divide the speed of a segment by the median speed of all segments that are not near a traffic light.

Python code here.