Isolysis — Isochrone Analysis & Spatial Access

Modular Python package for multi-center, multi-distance isochrone analysis with POI coverage, intersection metrics, and interactive web interface.

🗺️ Isolysis is a modular, production-grade Python package for calculating and analysing isochrones — the reachable area from a point within a given travel time.
It combines multi-center, multi-distance analysis with interactive mapping and comprehensive spatial statistics.


✨ Key Features

🧮 Core Analysis

  • Multi-center isochrones: Multiple origins, each with custom travel times.
  • Time banding: Automatic bands (e.g., equally spaced (1-5)).
  • POI coverage analysis: Count points of interest within each band.
  • Intersection analysis: Identify overlaps between service areas.
  • Out-of-band detection: Find POIs not covered by any isochrone.

🧭 Multiple Routing Providers

  • OSMnx – free, global coverage (drive/walk/bike)
  • Mapbox – high-performance routing with real traffic data
  • Iso4App – detailed European coverage, multiple modes

🖥️ Interfaces

  • Interactive Web App: Streamlit-based, click-to-add centers, real-time visualisation, spatial analysis dashboard.
  • ⚡ REST API: FastAPI backend for programmatic access, GeoJSON/statistics outputs.

⚙️ Technical Highlights

  • Python 3.12+, Pydantic, async processing
  • Scientific colormaps via Matplotlib
  • Caching and efficient spatial operations
  • Comprehensive pytest test suite

🌐 Example isochrones for different cities and modes, computed and visualised with isolysis.
Left: Example Streamlit App with POIs in ESA.
Middle: City of London.
Right: Singapore.

🔗 GitHub Repo