Multimodal Accessibility and Place Profiling Engine for Regions.
Open-data pipeline that turns OSM, GTFS, EO, and census inputs into multimodal, H3-aligned accessibility layers.
TL;DR: Builds mode-specific travel-time graphs, harmonizes >130 opportunity layers, runs network KDE to get continuous accessibility fields, and exports them on a national H3 grid ready for digital twins, GIS, and GeoAI workflows.
- Scalable, reproducible accessibility engine for country-scale coverage (demonstrated for Germany).
- Multimodal by default (walk, bike, drive, walk+transit with GTFS timetables).
- Harmonizes heterogeneous opportunities (OSM POI, Sentinel-2 land-use proxies, workplace/census attributes) into a common schema.
- Outputs continuous, network-constrained gravity fields sampled to H3 for plug-and-play analysis.
- Chunked + parallel computation keeps runtimes and memory stable on commodity HPC.
- Ingest & harmonize OSM/GTFS networks and opportunity sources; snap everything to a reference graph.
- Compute NKDE per mode and layer using travel-time decay kernels (truncated Gaussian) to get continuous potentials.
- Sample to H3 with robust fallbacks; write Parquet feature bundles + metadata for DT/GeoAI stacks.
- Inputs: OSM networks, GTFS schedules, Sentinel-2-derived thematic layers, workplace proxies, census covariates (all configured in the mapper config file).
- Outputs: Mode × layer accessibility matrices on an H3 grid (Parquet + metadata), logs/diagnostics, optional figures in
figures/.
# create env (defaults to name: rapids)
conda env create -f environment.yml
conda activate rapids
# start from the shipped example config
cp configs/mapper_config.example.py configs/mapper_config.py # optional: edit REGION, modes, H3_RESOLUTION, paths
# run standalone pipeline
python main.py- Sentinel Hub credentials are optional. You only need them if you want to build or include Sentinel-based satellite land-use layers.
- Blender rendering is completely optional. Core pipeline outputs can be inspected without Blender.
- Result inspection can be done with
results_plotter.ipynb.
For worker machines where system C++ dependencies differ, use the vendored-first bootstrap:
bash infra/bootstrap_cpp_worker.shPublic-facing starting points:
results_plotter.ipynb(notebook-based result exploration)configs/mapper_config.example.py(pipeline example config)configs/blender_config.example.py(optional Blender render example config)
- MAPPER's fast C++ routing stack benefits from RoutingKit, especially its contraction hierarchy implementation, which makes large-scale shortest-path computation practical in this pipeline.
- This project is released under the Apache License 2.0. See
LICENSE.
- Open-source, open-data pipeline that builds multimodal travel-time graphs from OSM + GTFS, fuses EO (Sentinel-2) and census data, and computes network KDE accessibility fields for >130 opportunity types.
- All outputs land on a uniform H3 grid to align with DT/GeoAI layers; chunked computation scales to national runs on commodity hardware.
- Validation with an empirical mobility panel shows low mean bias in routed travel times across modes, supporting the impedance metric used in NKDE.
- Bavaria case study: car-based provision looks near-universal under strict thresholds, while walking/PT reveal substantial undersupply—highlighting mode dependence and the value of multimodal analytics for planning.
- Germany-scale accessibility layers are released alongside the codebase for direct reuse and scenario testing.
