Skip to content

Repository files navigation

License: MIT

Connection-Based Transit Assignment

This is a C++ framework for efficient simulation-based transit assignment. It was developed at KIT in the group of Prof. Dorothea Wagner. This repository contains code for the following publications:

  • Efficient Traffic Assignment for Public Transit Networks Lars Briem, Sebastian Buck, Holger Ebhart, Nicolai Mallig, Ben Strasser, Peter Vortisch, Dorothea Wagner, Tobias Zündorf In: Proceedings of the 16th International Symposium on Experimental Algorithms (SEA'17), Leibniz International Proceedings in Informatics, pages 20:1–20:14, 2017 pdf

  • Efficient Computation of Multi-Modal Public Transit Traffic Assignments using ULTRA Jonas Sauer, Dorothea Wagner, Tobias Zündorf In: Proceedings of the 27th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (SIGSPATIAL'19), ACM Press, pages 524–527, 2019 pdfarXiv

Data format

The assignment algorithm takes two inputs: a public transit network and a demand file. Both are supplied in CSV format. An example input is provided in the Data folder.

The following CSV files are required. All times are given in seconds and all coordinates as decimal degrees.

FileValuesDescription
stops.csvstop_id,change_time,name,lon,latStops of the network. change_time is the time required to transfer between two trips at this stop.
transfers.csvdep_stop,arr_stop,durationFootpaths between neighboring stops.
zones.csvzone_id,lon,latZones for passenger origins/destinations.
zone_transfers.csvzone_id,stop_id,durationFootpaths between zones and stops.
trips.csvtrip_id,vehicle,name,line_idPublic transit trips. The schedule of a trip is given as a sequence of connections between consecutive stops.
connections.csvdep_stop,arr_stop,dep_time,arr_time,trip_idConnections for the trips.
demand.csvdep_zone,arr_zone,min_dep_time,max_dep_time,passenger_countZone-based demand.

Usage

The algorithms are provided in the console application Assignment. You can compile it with the Makefile in the Runnables folder. Type make AssignmentRelease -B to compile in release mode. The following commands are available:

  • parseCSAFromCSV: Converts the public transit network into the binary format used by the algorithm.
  • groupAssignment: Computes an assignment. Parameters:
    • Settings file: Path to the settings file for the assignment algorithm. If no file exists at this location, one will be created with default settings. See DataStructures/Assignment/Settings.h for explanations of the individual settings.
    • CSA binary: Binary network data created with parseCSAFromCSV.
    • Demand file: Demand file in CSV format.
    • Output file: Path for the output files.
    • Demand multiplier: The passenger count for each demand group is multiplied with this value (default: 1).
    • Num threads: Number of threads for parallel execution (default: 0, sequential).
    • Thread offset: Offset for the processor IDs to be used. For example, a value of 2 means that cores 0, 2, 4, ... will be used (default: 1).
    • Use transfer buffer times?: If set to true, the minimum transfer times supplied in stops.csv are considered even when transferring to a stop with a footpath (default: false).
    • Demand output file: Output file for the filtered demand data, excluding unassigned passengers (default: -, no file is written).
    • Demand output size: Maximum number of entries in the filtered demand (default: -1, no limit)

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages