ArcBench is a reproducible Atlanta regional highway-assignment and congestion-analysis workflow built from the Atlanta Regional Commission (ARC) network.
The repository has one supported entry point for the complete analysis. It starts with an unmodified RITIS Massive Data Downloader ZIP and reproduces the time-valid TMC inventory, AM map matching, corridor CBI analysis, QVDF resources, initial assignment, Ridge boundary training, final assignment, and corridor measures.
py -3.11 -m venv .venv
.\.venv\Scripts\python -m pip install pip==26.2
.\.venv\Scripts\python -m pip install -r requirements-reproduce.txt
.\.venv\Scripts\python reproduce_arcbench.py `
--ritis-archive "C:\path\to\Atlanta-All-Counties-2018-5-min.zip"The licensed ZIP is read in place and is never copied into a tracked folder.
Run the same command with --dry-run first to validate its members, columns,
the public network, and the pinned assignment runtime. See
docs/REPRODUCE.md for the exact input contract, stage
outputs, resuming, and verification rules.
ArcBench connects the licensed probe observations to the public ARC network in one traceable AM workflow. The first branch prepares observed corridor data and calibrates congestion behavior. The second branch runs the regional assignment twice: once to provide network features for boundary estimation, and again with the completed congestion boundaries. The final stage compares assigned and observed corridor conditions and verifies the complete run.
flowchart TD
R["Licensed RITIS ZIP<br/>speed records + TMC identification"]
N["Published ARC GMNS inputs<br/>network + AM demand"]
subgraph P["Prepare and map observations"]
V["1. Validate archive<br/>and select time-valid speed TMCs"]
M["2. Map TMCs to directed<br/>ARC network links"]
C["3. Build mapped-only<br/>road-direction corridor inputs"]
end
subgraph Q["Measure and calibrate congestion"]
E["4. Detect and screen<br/>daily + average-weekday episodes"]
QV["5. Calibrate link-type and<br/>network-fallback QVDF parameters"]
B0["6. Build direct and spatial<br/>AM boundary candidates"]
end
subgraph A["Complete boundaries and assign traffic"]
A0["7. Baseline AM assignment<br/>with calibrated QVDF"]
ML["8. Train Ridge models using<br/>CBI, network, and assignment features"]
BF["9. Complete the network<br/>t0 / t2 / t3 dictionary"]
AF["10. Final AM assignment<br/>with QVDF + boundaries"]
end
subgraph X["Evaluate and verify"]
CM["11. Compare observed and<br/>assigned corridor measures"]
OK["12. Verify outputs, coverage,<br/>fallbacks, hashes, and lineage"]
end
R --> V --> M --> C --> E
N --> M
E --> QV
E --> B0
N --> A0
QV --> A0
A0 --> ML
B0 --> ML --> BF
N --> AF
QV --> AF
BF --> AF
C --> CM
AF --> CM --> OK
classDef source fill:#e8f1ff,stroke:#2563eb,color:#0f172a,stroke-width:1.5px;
classDef observed fill:#ecfdf5,stroke:#059669,color:#0f172a,stroke-width:1.5px;
classDef model fill:#fff7ed,stroke:#ea580c,color:#0f172a,stroke-width:1.5px;
classDef result fill:#f5f3ff,stroke:#7c3aed,color:#0f172a,stroke-width:1.5px;
class R,N source;
class V,M,C,E,QV,B0 observed;
class A0,ML,BF,AF model;
class CM,OK result;
The root runner executes these twelve stages in order:
| Stage | What happens | Principal output |
|---|---|---|
| 1. Inventory | Validate the archive and retain identification records that occur in the readings and are valid for the observed dates. | Time-valid TMC_Identification.csv |
| 2. Map matching | Match directed TMC geometry to the ARC AM links in the declared coordinate system. | TMC-to-link crosswalk and mapping audit |
| 3. Corridor inputs | Keep only successfully mapped TMC observations and split them into road-direction corridors. | Corridor-specific speed and identification files |
| 4. CBI | Detect, screen, and summarize daily and average-weekday congestion episodes. | Accepted episodes, audits, profiles, and summaries |
| 5. QVDF | Pool accepted episodes by ARC link type and calculate a network-wide fallback. | Daily and average-weekday link_qvdf.csv |
| 6. Initial boundaries | Transfer observed boundaries directly where possible and expand spatial coverage for the AM period. | Initial t0, t2, and t3 candidates |
| 7. Baseline assignment | Run the published AM network and demand with the calibrated average-weekday QVDF. | Baseline link performance used as model features |
| 8. Ridge training | Train seeded Ridge models from CBI, network, spatial, and baseline-assignment features. | Fitted models, diagnostics, and network predictions |
| 9. Final boundaries | Preserve valid observed/spatial boundaries and use Ridge estimates to complete unresolved links. | Final node-pair AM boundary dictionary |
| 10. Final assignment | Rerun the AM assignment with both calibrated QVDF parameters and completed boundaries. | Final link and system performance |
| 11. Corridor measures | Aggregate final link results to mapped corridors and compare assigned with observed AM profiles. | Corridor metrics, audits, and report |
| 12. Verification | Check required artifacts, mapping coverage, QVDF fallback, hashes, manifests, and final status. | verification.json and reproduction manifest |
Every run uses one timestamped run ID across the output tree. Each stage records
its inputs and outputs, and --resume skips a stage only when its required
completion artifact exists. The current assignment inputs include SOV, HOV2,
and HOV3 demand; the missing COM, MTK, and HTK modes are tracked as a model-
fidelity limitation in issue #2.
data/network/arc_atlanta/— converted ARC GMNS network, AM demand, reference-flow tables, and network preparation scripts.tools/mapmatching/— TMC-to-network map matching.tools/cbi/— congestion and bottleneck identification and QVDF calibration.tools/congestion_boundary_mapping/— AM congestion-boundary preparation.tools/atlanta-taplite/— pinned assignment runtime and Atlanta runner.tools/corridor_measurement/— observed-versus-assigned corridor measures.tools/t2/— congestion-boundary estimation and coverage utilities.results/— curated outputs from the latest complete AM pipeline.manuscript/— current LaTeX manuscript and figures.docs/— workflow instructions and ARC documentation.
The root command is the authoritative end-to-end interface. Package READMEs
describe individual components; the sequence is summarized in
docs/WORKFLOW.md.
The latest complete run covers the weekday AM period from 6:00 to 10:00 using October 2018 probe-speed profiles. The workflow includes network preparation, TMC map matching, corridor CBI processing, QVDF calibration, regional assignment, and corridor-level comparison.
ARC model documentation and network inputs are publicly available from the ARC model site. The converted network and non-proprietary analytical outputs are included here. Raw INRIX/RITIS speed data are licensed and are not included. A user with the corresponding RITIS ZIP can reproduce every analytical stage with the command above.
The curated result set and its exclusions are documented in results/README.md. Large link-level assignment outputs are compressed in results/assignment/atlanta_am_link_outputs.zip.