What is PPCA?
PPCA is an open-source, Python-based protocol for estimating how many people are accessible on foot within specific proximity zones around streets. Designed for global use, it requires only a bounding box as input and produces population accessibility maps from freely available open data.
The tool integrates geospatial data from OpenStreetMap (buildings, streets, land use) and the Global Human Settlement Layer (population rasters), combining them through a four-step pipeline that classifies buildings, estimates floor counts, distributes population, and computes catchment-based accessibility indicators.
PPCA is particularly suited for urban planning, accessibility studies, 15-minute city analysis, and population exposure modelling. It works anywhere in the world where OSM and GHS data are available.
How It Works
Step 1: Data acquisition and filtering. Downloads GHS raster data via Google Earth Engine, converts to vector format, extracts and filters OSM data (buildings, streets, land use), and computes morphometric indicators (area, perimeter, elongation).
Step 2: Building classification. Assigns each building a category: residential/mixed-use or non-residential. Fills missing values using a Decision Tree classifier trained on morphometric features.
Step 3: Floor estimation. Estimates floor counts and total floor area using a hybrid approach: available height attributes where present, Decision Tree prediction where missing.
Step 4: Population estimation and catchment analysis. Distributes population from GHS rasters to buildings using floor area as weight. Aggregates onto the pedestrian network. Defines catchment areas based on walking distances (e.g., 400m, 800m). Computes population potential per street segment.
Optional: An appendix module performs slope and cluster analysis — calculating the rate of population change over distance, clustering observations into spatial profiles, and visualising results with dendrograms and silhouette scores.
Key Features
- Global coverage. Works anywhere with a bounding box. Uses only freely available open data (OSM + GHS).
- Full pipeline. From raw data acquisition to final population accessibility maps in four steps.
- Building intelligence. Automated classification (residential vs. non-residential) and floor count estimation using machine learning on morphometric features.
- Network-based catchments. Walking-distance isochrones computed on the actual pedestrian street network, not Euclidean buffers.
- Multi-scale output. Population maps at building, point, and street-segment levels. Ready for GIS integration.
- Modular design. Run individual steps or the full pipeline. Integrate components into existing workflows.
Get Started
GitHub: https://github.com/perezjoan/Population-Potential-on-Catchment-Area—PPCA-Worldwide
Run the scripts in a Python environment with QGIS, or on Google Colab. Full documentation is included in each module.
Citations & Publications
If you use PPCA in your work, please cite:
Perez, J. & Fusco, G. (2025). Population potential on catchment area (PPCA): A Python-based tool for worldwide geospatial population analysis. SoftwareX, Volume 23, 102245.
DOI: 10.1016/j.softx.2025.102245
Perez, J. & Fusco, G. (2024). Potential of the 15-Minute Peripheral City: Identifying Main Streets and Population Within Walking Distance. In: O. Gervasi, B. Murgante, C. Garau, D. Taniar, A.M. Rocha & M.N. Faginas Lago (eds.), Computational Science and Its Applications – ICCSA 2024 Workshops. Lecture Notes in Computer Science, vol. 14817. Cham: Springer, pp. 50–60.
DOI: 10.1007/978-3-031-65238-7_4



