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 https://creativecommons.org/licenses/by-sa/2.0/

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.

Resources

  • 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.

References

  • [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, https://doi.org/10.21105/joss.01807

Erratum

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 https://creativecommons.org/licenses/by-sa/2.0/
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