I am an advocate of open science and open-source software. I am an author of two Python packages, momepy and clustergram. Apart from these I am involved in other open-source projects and always interested in new ones.



Momepy is an open-source Python toolkit allowing advanced quantitative analysis of urban form – urban morphometrics. It aims to provide a wide range of tools for a systematic and exhaustive analysis of urban form. It can work with a range of morphological elements, while focused on building footprints and street networks. This project aims to provide tools for the development of complex frameworks for a description of urban structures.

It has been developed as a repository of my PhD research and related ongoing research of Urban Design Studies Unit (UDSU) supported by the Axel and Margaret Ax:son Johnson Foundation as a part of “The Urban Form Resilience Project” in partnership with the University of Strathclyde.

Documentation | Repository


Clustergram is an open-source Python package for visualisation and diagnostics for cluster analysis.

Clustergram is a diagram proposed by Matthias Schonlau to examine how cluster members are assigned to clusters as the number of clusters increases. This graph is useful in exploratory analysis for nonhierarchical clustering algorithms such as k-means and for hierarchical cluster algorithms when the number of observations is large enough to make dendrograms impractical.

Documentation | Repository


Greedy is an open-source Python package which brings topological (greedy) colouring to GeoPandas.

Topological or greedy colouring (or sequential colouring) is a cartographic method of assigning colours to polygons (or other geometries, greedy supports all geometry types) in such a way, that no two adjacent polygons share the same colour.

Greedy is a small package providing such functionality on top of GeoPandas GeoDataFrames.

Greedy is now part of mapclassify. See the related blog post explaining how that happened.

Documentation | Repository

other projects


I am a member of development team of GeoPandas, the open source Python package for geographic data. Both momepy and greedy are built on top of GeoPandas.

The goal of GeoPandas is to make working with geospatial data in python easier. It combines the capabilities of pandas and shapely, providing geospatial operations in pandas and a high-level interface to multiple geometries to shapely. GeoPandas enables you to easily do operations in python that would otherwise require a spatial database such as PostGIS.

Documentation | Repository


I am also involved in the development of PySAL, Python Spatial Analysis Library. PySAL is an open-source project designed to support spatial data science.

PySAL is an open source cross-platform library for geospatial data science with an emphasis on geospatial vector data written in Python. It supports the development of high level applications for spatial analysis, such as

  • detection of spatial clusters, hot-spots, and outliers
  • construction of graphs from spatial data
  • spatial regression and statistical modeling on geographically embedded networks
  • spatial econometrics
  • exploratory spatio-temporal data analysis.

Documentation | Repository