Codebase for an IEEE SMC 2026 paper on robust calibration of bus corridor digital twins.
This repo implements and evaluates RCMDT, a hierarchical calibration loop (BO outer loop + IES inner loop) for bus corridor mobility digital twins, with a paper contribution focused on:
- Observation Operator Audit: “Real” door-to-door (D2D) measurements can be contaminated by non-transport operational semantics (schedule adherence, holding/layover). Robust conclusions require an auditable observation operator.
- Regime Separation (Rule C): We isolate non-transport “ghost jams” with a reproducible rule: flag samples if
(T > T*) ∧ (v_eff < v*)usingT* = 325s,v* = 5 km/h. - Robustness Evidence: Robustness is validated at the distribution level (K-S test + worst-window stress test). The K-S test is used as validation evidence.
- Diagnostics (Validation Scope): Trajectory decomposition and dwell/holding-proxy plots answer where mechanisms differ.
- Data/compliance notes:
DATA.md - Main P14 figures (already generated):
plots/P14_ghost_audit.png,plots/P14_robustness_cdf.png
scripts/: analysis, calibration, visualization utilitiessumo/: SUMO configs, networks, routes, outputsplots/: paper figures and diagnostics
- Windows 10/11 (tested), Python 3.11+, SUMO 1.20.0
- Python packages:
pip install -r requirements.txt
This repo includes synthetic fixtures so you can run a minimal end-to-end check without any private data:
python scripts/smoke/p14_smoke.pyOr in PowerShell:
.\reproduce.ps1Trajectory decomposition (stepped/full-time vs traffic-only) is diagnostic:
python scripts/visualization/plot_trajectory_stepped.py --real_links data2/processed/link_stats_offpeak.csv --real_dist data/processed/kmb_route_stop_dist.csv --sim sumo/output/offpeak_stopinfo.xml --out plots/trajectory_stepped_68X.png --route 68X --t_critical 325 --speed_kmh 5
python scripts/visualization/plot_trajectory_stepped.py --real_links data2/processed/link_stats_offpeak.csv --real_dist data/processed/kmb_route_stop_dist.csv --sim sumo/output/offpeak_stopinfo.xml --out plots/trajectory_stepped_960.png --route 960 --t_critical 325 --speed_kmh 5Holding proxy vs simulated dwell (diagnostic):
python scripts/visualization/plot_dwell_distribution.py- L1 Bayesian optimization (outer loop):
scripts/calibration/ - L2 IES assimilation (inner loop):
scripts/calibration/
The data are private. The transit data files are available at folder sim/data/. For privacy reason, we have replaced the orignal real world data.
- SUMO outputs empty/small: check
sumo/output/*.xmlsizes andsumo/output/*.loglogs. - P14 "raw" K-S is high (~0.5+): this is expected before observation operator audit / regime separation (see
plots/P14_ghost_audit.png).