skillfed

momepy

Urban Morphology Measuring Toolkit

momepy v1.0.0 186.4K downloads/30d#9,988 on PyPI630
Permissive license BSD 3-Clause Active released

What it is and what it does

Momepy is a toolkit for systematic quantitative analysis of urban form, built on top of GeoPandas, PySAL, and NetworkX. It measures morphological properties of urban elements—primarily building footprints and street networks—across seven dimensions: dimensions (size, perimeter), shapes (compactness, form ratios), spatial distribution (clustering, regularity), intensity (density, coverage), diversity (variation in form), connectivity (network properties), and relational elements (tessellations). The library is part of the PySAL ecosystem and designed for researchers and urban planners who need to characterize cities quantitatively rather than qualitatively.

Momepy abstracts away the geometric and spatial computation details, letting you attach morphometric attributes directly to GeoDataFrames. It works with any polygon or network geometry that GeoPandas can read, making it suitable for comparative urban studies, form-based zoning analysis, and morphological classification of neighborhoods. The package requires modern Python (3.12+) and the full geospatial stack, which can add setup complexity, but installation via conda-forge handles most dependency issues.

Use it for:

  • Measure building density, footprint area, and shape regularity across neighborhoods to classify urban typologies.
  • Compute street network centrality and straightness to assess walkability and connectivity of different districts.
  • Generate morphological tessellations to define coherent urban zones for comparative analysis.
  • Calculate diversity indices of building sizes and shapes to quantify urban heterogeneity.
  • Analyze spatial clustering and distribution patterns of urban elements for urban design research.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Momepy quantifies urban form through morphometric measurements: dimensions, shapes, spatial distribution, density, diversity, connectivity, and tessellation of urban elements like building footprints and street networks.

Yes. Momepy is actively maintained, has no known vulnerabilities, and fills a specialized but well-defined niche in urban morphometrics. Install it if you need to quantify urban form systematically; the geospatial dependency stack is a real setup hurdle, but conda-forge installation mitigates that. Not a general-purpose tool—only install if you are doing urban morphology research or analysis.

Install

momepy on PyPI

pip

pip install momepy

uv

uv add momepy

poetry

poetry add momepy

Installing momepy

Before you install

Low friction installation with a wheel distribution. Depends on the geospatial stack (geopandas, shapely, libpysal, networkx) which may require system libraries, but the package itself is actively maintained with a recent release.

License in practice

BSD 3-Clause is permissive; you can use, modify, and distribute momepy freely in commercial and private projects with minimal restrictions.

Quickstart

pip install momepy

import momepy
import geopandas

tessellation = geopandas.read_file('buildings.shp')
contiguity_k3 = momepy.sw_high(k=3)
tessellation['area_simpson'] = momepy.simpson(tessellation.area, contiguity_k3)

Requires Python >=3.12. The geospatial stack (geopandas, shapely) may need system libraries like GEOS and PROJ; conda-forge installation is recommended to handle these dependencies.

Verify before relying

  • Whether the package handles very large urban datasets (millions of buildings) without performance degradation.
  • Availability of pre-built morphological tessellation algorithms or whether users must implement custom workflows.
  • Support for non-Euclidean or projected coordinate systems beyond standard GIS projections.

Package facts

License BSD 3-Clause (permissive)
Python support supports the current Python release (>=3.12)
Install friction low — pure-Python wheel
Runtime dependencies 8 — geopandas, libpysal, networkx, numpy, packaging, pandas, shapely, tqdm
Maintenance actively maintained — 43 days since the last release
Last repo commit
First released
Downloads 186,435/month — #9,988 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: momepy-1.0.0-py3-none-any.whl

Keywords: urban morphology, urban morphometrics, tessellation

Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: GIS

Tags

urban morphometrics measurementbuilding footprint analysisstreet network connectivityurban form quantificationmorphological tessellationurban geometry metricscity shape analysis
urban-analysisgeospatialmorphometrics

More GIS packages