An Open-Source Urban Morphology Measuring Toolkit in Python

Very recently, the Journal of Open Source Software published a paper called momepy: Urban Morphology Measuring Toolkit by Martin Fleischmann, a Ph.D. student from the Department of Architecture at the University of Strathclyde. The momepy toolkit allows researchers to measure spatial distributions (simple and complex) and spatial weights of buildings, blocks, plots, streets, networks, and other urban elements. The name momepy is short for Morphological Measuring in Python.

Fleischmann’s toolkit aims to help spread the use of Urban Morphometrics (UMM) [1], which is the description of urban form “via the systematic and comprehensive measurement of its morphological character” [2]. The issue is that this type of analysis has been lacking general-purpose software that allows researchers to make use of large datasets for the description of urban spaces and structures.

One key feature of momepy is the use of morphological tessellation. The following images illustrate the Voronoi tessellation function using Open Street Maps data from Böblingen (a town in Germany where I did a student internship at IBM):

Tessellation created using the code provided in the momepy User Guide. Although the code is very simple to use, [at first] I could not get it working for larger urban areas[, but Martin Fleischmann helped me figure out a work around this issue. Please see below at the bottom of the article under the Erratum section].
A zoom-in portion from the previous tessellation. The data for these images was gathered from the Open Street Map initiative and it is available under the CC 2.0 license (CC BY-SA). If you use these images or a portion/derivate of these images, please attribute Open Street Map and license your work through

The paper and its accompanying software are freely distributed under the Creative Commons Attribution 4.0 International License which allows free sharing and adaptation for any purpose as long as the correct attribution is given.


  • The entire paper is available here.
  • These are the links to the GitHub repository and the User Guide. I strongly suggest reading through the user guide for a brief survey of what momepy can do!
  • To know more about Martin Fleischmann, you can read his student profile here or visit his own website here!
  • The Journal of Open Source Software is a publication aimed to help academics distribute and publish research software.
  • momepy stemmed from current research in the Urban Design Studies Unit at the University of Strathclyde, Glasgow.
  • Pro tip: if you install momepy through conda-forge (which is the recommended way to install it), do it on a separate conda environment where you set the channel priority to strict. You will probably have to install matplotlib through conda-forge as well. Then you can install osmnx using pip if you want to use Open Steet Map’s data.


  • [1] Dibble, J., Prelorendjos, A., Romice, O., Zanella, M., Strano, E., Pagel, M., & Porta, S. (2017). On the origin of spaces: Morphometric foundations of urban form evolution. Environment and Planning B: Urban Analytics and City Science, 46(4), 707–730. doi:10.1177/2399808317725075
  • [2] Fleischmann, M. (2019). momepy: Urban Morphology Measuring Toolkit. Journal of Open Source Software, 4(43), 1807,


Martin Fleischmann graciously helped me to solve my issue on the tessellation of larger urban areas. I was able to tessellate for you the metropolitan area of Vancouver, CA, again using Open Street Map data. I also tried tessellating other larger urban areas, but the process failed on the part of the osmnx Python package. I might later look at this issue or I may not.

Tessellation of Vancouver urban area (‘Vancouver, Canada’) created using data for these images was gathered from the Open Street Map initiative and it is available under the CC 2.0 license (CC BY-SA). If you use these images or a portion/derivate of these images, please attribute Open Street Map and license your work through
Zoom in from previous image
Here we can see the actual Morphological Cells emerging from the image.

As Martin points out, when performing this type of analysis, one should beware the fact that it is resource consuming and the odds are that you will need to have a good computer or use some kind of web service to process your analysis. If you are on the coding/big data side of urban studies and you are interested in Martin’s work, I recommend that you follow him on his GitHub page for the latest news on his work @martinfleis

This entry was posted in 21st century and tagged , , , , by damianiji. Bookmark the permalink.

About damianiji

My name is Damian Romero. I am a Ph.D. candidate in Hispanic Linguistics at the University of Arizona with a strong focus on corpus linguistics and natural language processing. My research interests lay in the fields of computational social sciences and digital humanities. I also build applications that help companies process natural language data. Click on my picture for my full profile where you will find my website, student profile, and my professional FaceBook account.

2 thoughts on “An Open-Source Urban Morphology Measuring Toolkit in Python

    • Hi Martin! Of course! I will do this later today. Thank you and I must say thank you for coming over to check out our blog. I am sure that several of our readers and our journal authors will find momepy very useful. I already have some ideas! I will stay in touch.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s