Look, I made a thing! After I saw the awesome blog post on city street orientations, I generated some charts for European and German cities (and refactored Geoff's IPython notebook into a script on the way). If you want to see a map of your favourite city in this style, tell me about it and I'll see what I can do.

@rixx this is awesome! It would be nice to see Veresegyház (Hungary) although itʼs a small town (maybe 12000 people live here).

Also Iʼm curios how this algorithm classifies curved streets? In Budapest there are three “körút” (literally translates as circle road) and I think other cities do, too.

@gergely Yes, those qualify as streets, too. Basically everything OSM knows counts. Ring streets are fairly common in structured cities that haven't had extreme amounts of organic growth. As I noted in my post, Vienna and Budapest are very similar, and Berlin has ring streets too.

Tessék, Veresegyház:

@gergely Curved streets are counted in sections, as far as I can tell, so they'll show up on several parts of the histogram.

Also, cool to meet somebody from Hungary! I'm currently about one month into the Hungarian duolingo course, it's a beautiful language.

I have seen only one Hungarian name here yet, so itʼs also cool to meet someone who learns/speaks this language.

Köszönöm a térképet! ☺

@rixx @gergely Can you make such a chart in polar coordinates for cities with ring streets? Would be an interesting addition.

@rixx you can tell which cities are older because they're more round and uneven


Especially old cities like Augsburg or Athens? I was looking for such a correlation but really can't see that


@siccegge @rixx I was mostly looking at Berlin and Rome when I wrote that

@siccegge @popefucker It's also got a lot to do with how much of the city was built in a planned matter (which doesn't necessarily correlate with age), how much of the city's size grew by annexing other villages (which have their own directions, usually), if there is a river and if that river is curved, etc. Also, compare to the original blog post for American cities, which are terribly griddy and aligned.

@rixx Wird die dargestellte Orientierung durch den Verkehrsfluss festgelegt? Hat also z.B. Hamburg eine so ausgeprägte 'Nordkeule', weil es dort eine Einbahnstraße gibt?
Ich hätte sonst erwartet dass die Diagramme drehsymetrisch sind.

@INCO Ja, OpenStreetMap kennt und nutzt Straßenorientierung.

@INCO @rixx Ich nahm an, die Nordkeulen sind ein Bug? Tritt nämlich nicht nur bei Hamburg auf, sondern auch bei einigen anderen Städten, und es ist auffällig dass die einzige auffällige nicht-dreh-symmetrierung ausgerechnet bei 0° liegt. Ist es evt. so dass irgendeine Fehlerklasse als "0" zurückgegeben wird?

@henryk @INCO Tatsächlich merged Geoff einen bucket auf Null, aber er macht es explizit, und ich ging davon aus, dass er einen guten Grund dafür hat...

@rixx @INCO Ja, nee, das ist es nicht. Probier' mal, die slices auf einen hohen Wert zu setzen, sowas wie 360. Es gibt *viel* zu viele 0.0°, zum Beispiel in Bielefeld. Die Daten die aus add_edge_bearings kommen sind bereits falsch.
Abhilfe: "if data['bearing'] != 0.0" in der list comprehension in get_bearing. Es ist eher selten dass eine tatsächliche Straße genau 0.0° hat (also hier, in USA müsste man nochmal gucken).
Man müsste mal[tm] nachgucken, wo die falschen Daten herkommen und filtern.

@henryk Hmpf, müsste man wohl man osmnx reporten.

@henryk @INCO Stimmt. Repariertes Hamburg sieht so aus, ich rechne den Rest noch mal durch (aber dauert vmtl ne Stunde)

@scabux Haha, I actually did Heidelberg while I was figuring out what I was doing, because it's fairly small and doesn't take so horribly long.

@rixx great and visually distincive visualization! i wonder what the variance between the city core and the structures built around it would look like - some cities are rather uniform but other cities vary greatly - probably best graphed as animation of graphs with growing circumference over time?

@nblr @rixx would be great to have historic data, too, to make animations over time (probably impossible for near to all cities due to lack of data)

@oreolek Yeah, that's been moved to the main script. It's correct in the script's help text, I'll change the readme too.

@Efi It's a problem with OSM data. I've got a way to correct for it, but I need to render all images again, which will take some time.

@Efi Well, some streets seem to have undefined orientation, which is returned as zero, and zero degrees is north ;)

@rixx Kiel might be interesting, since it's split down the middle 🤔

@elomatreb Thank you! I think they're going to be a nice fallback gift now, printed on cards/posters or engraved.

@rixx when the histogram is asymmetrical, like Stockholm’s or Kiel‘s, does that mean there’s a lot of one-way streets going that direction?

@rixx A+ awesome. When I saw the original post I was wondering how Berlin would look. Thanks!

@rixx Do you think you can make one for the French city Toulouse ?

@rixx Might you be able to produce such a map for San Francisco?

@rixx Ah! That's quite surprising - I'd've thought there'd be greater representation of non-ordinal directions. Interesting!

@rixx Many thanks! ^_^ It's a somewhat counterintuitive result, probably due to the relative prominence of SoMa vs the more residential neighborhoods of the west and southwest.

@rixx hey can you do it for Rennes, if possible ?

@Siphonay @Sylvhem Forgive me for grouping the French cities in one response – here are Rennes and Toulouse:

@rixx @Sylvhem actually, if that's not too much to ask, could you produce it in a higher resolution, like 1920x1080 ?

@Siphonay @Sylvhem Sorry, since a bug in the script (well, in the OSM data really) was found, I'm currently re-rendering all the previous images, which will take a couple of hours. I'll see what I can do later – but the image of Rennes is 2271 x 1200, so you should be able to scale it down a bit and be good?

@rixx Thanks a lot! It's really interesting to see that :).


@rixx awesome!

Does it take one-way streets into account? It's not immediately obvious to me from teh code, but presumably that's how hamburg gets to be much more north than south?

@lupine Nah, that was a bug in the OSM data, I'm currently re-rendering all the stuff and will upload the corrected images to my blog once they're done (in a few hours).

Sign in to participate in the conversation - because anarchy is much more fun with friends. is a small Mastodon instance for and by the Chaos community surrounding the Chaos Computer Club. We provide a small community space - Be excellent to each other, and have a look at what that means around here.
Follow @ordnung for low-traffic instance-related updates.
The primary instance languages are German and English.