GeoPlanar: Planar enforcement and coverage topology repairing for Python
Spatial data integrity depends on maintaining topological consistency among polygonal features such as administrative boundaries, parcels, and building footprints. Yet, common vector formats and workflows rarely enforce planarity, leading to overlapping geometries, gaps, and misaligned edges that compromise spatial analyses. This paper introduces GeoPlanar, an open-source Python package that systematically detects and corrects violations of planar enforcement in polygon coverages, addressing a longstanding limitation in the Python spatial data ecosystem. We implement GeoPlanar as a modular toolkit that integrates seamlessly with GeoPandas. The package provides functions for identifying and repairing violations related to geometry placement, geometry definition, and coverage topology. Algorithms are designed to handle overlaps, enclosed and open gaps, missing interiors, sliver polygons, and non-enforced nodes or edges. Each function operates on standard GeoPandas objects and returns corrected geometries to ensure compatibility with existing workflows. GeoPlanar bridges the gap between legacy topological models and contemporary open-source geospatial tools. The framework enhances reproducibility, analytical reliability, and data quality across domains reliant on polygonal coverage—offering a critical foundation for robust spatial analysis and urban data science workflows.
Authors
- Martin Fleischmann (ORCID: https://orcid.org/0000-0003-3319-3366)
- Sergio J. Rey (ORCID: https://orcid.org/0000-0001-5857-9762)
- Lisa Winkler (ORCID: https://orcid.org/0000-0002-6861-0046)
Institutions
- University of Freiburg (DE)
- Charles University (CZ)
- San Diego State University (US)
Publication Details
- Journal
- Environment and Planning B Urban Analytics and City Science
- Published
- 2026-07-21
- DOI
- https://doi.org/10.1177/23998083261470518
- Primary Topic
- Geographic Information Systems Studies
- Type
- article
- Field-Weighted Citation Impact
- 0.00