momepy
Urban Morphology Measuring Toolkit
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- Low friction installation with a wheel distribution.
License · maintenance · safety
BSD 3-Clause (permissive) — BSD 3-Clause is permissive; you can use, modify, and distribute momepy freely in commercial and private projects with minimal restrictions.
last release 2026-07-02 (43 days) · last repo commit 2026-08-13 · 630 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 186,435 downloads/mo, #9,988 on PyPI
Alternatives
Verify before relying
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)- 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.
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 on it.
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
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.
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.
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)
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 packagesgeopandaslibpysalnetworkxnumpypackagingpandasshapelytqdm |
| 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 |
| Classifiers | Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Scientific/Engineering :: GIS |
Evidence: momepy-1.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “urban morphometrics measurement”
- momepyMomepy quantifies urban form through morphometric measurements:…
- cityseerComputes network centrality, land-use accessibility, mixed-use…
- pysalPySAL is a meta-package that bundles 29 spatial analysis libraries…
Give your agent the search over MCP, or paste the wish link into any chat.
More GIS packages
Shapely provides Python tools for creating, manipulating, and analyzing 2D geometric objects (points, lines, polygons) using the GEOS library, with both scalar and vectorized NumPy-based operations.
pyproj provides a Python interface to PROJ, enabling cartographic projections and coordinate system transformations for geospatial applications.
GeoPandas extends pandas DataFrames to handle geographic data, combining pandas operations with shapely geometry and spatial analysis capabilities that would otherwise require a spatial database.
Install it if you work with geographic data in Python and want to avoid setting up a spatial database or learning a separate GIS tool.
geopy is a Python client for geocoding and distance calculation that converts addresses to coordinates and vice versa using multiple web-based geocoding services, and computes geodesic and great-circle distances between geographic points.
Install it if you need geocoding or distance calculations in your application.
Pyogrio provides fast, bulk-oriented read and write access to vector spatial data formats (Shapefile, GeoPackage, GeoJSON, etc.) via GDAL/OGR bindings, typically for use with GeoPandas GeoDataFrames.
h3 provides Python bindings to Uber's H3 geospatial indexing library, converting geographic coordinates into hierarchical hexagonal grid cells and performing spatial operations on them.
See also osmnx · pysal · inequality · cityseer · segregation · access · pointpats · spaghetti · tobler · skan