From Sumo
Jump to: navigation, search

From 30.000 feet

DUAROUTER imports different demand definitions, computes vehicle routes that may be used by SUMO using shortest path computation; When called iteratively DUAROUTER performs dynamic user assignment (DUA). This is facilitated by the tool duaiterate.py which converges to an equilibrium state (DUE).

A) Building vehicle routes from demand definitions
B) Computing routes during a user assignment
C) Repairing connectivity problems in existing route files
System: portable (Linux/Windows is tested); runs on command line
Input (mandatory):
A) a road network as generated via NETCONVERT or NETGENERATE, see Building Networks
B) a demand definition, see Demand Modelling
Output: Definition of Vehicles, Vehicle Types, and Routes usable by SUMO
Programming Language: C++

Usage Description


The primary output of DUAROUTER is a .rou.xml file which has its name specified by the option -o). Additionally a .rou.alt.xml with the same name prefix as the .rou.xml file will be generated. This route alternative file holds a routeDistribution for every vehicle. Such a routeDistribution is used during dynamic user assignment (DUA) but can also be loaded directly into SUMO.


You may use a XML schema definition file for setting up a DUAROUTER configuration: duarouterConfiguration.xsd.


All applications of the SUMO-suite handle configuration options the same way. These options are discussed at Basics/Using the Command Line Applications#Configuration Files.

Option Description
-c <FILE>
--configuration-file <FILE>
Loads the named config on startup
--save-configuration <FILE> Saves current configuration into FILE
--save-template <FILE> Saves a configuration template (empty) into FILE
--save-schema <FILE> Saves the configuration schema into FILE
--save-commented <BOOL> Adds comments to saved template, configuration, or schema; default: false


Option Description
-n <FILE>
--net-file <FILE>
Use FILE as SUMO-network to route on
-d <FILE>
--additional-files <FILE>
Read additional network data (districts, bus stops) from FILE(s)
-t <FILE>
--route-files <FILE>
Read sumo routes, alternatives, flows, and trips from FILE(s)
-w <FILE>
--weight-files <FILE>
Read network weights from FILE(s)
--lane-weight-files <FILE> Read lane-based network weights from FILE(s)
--weight-attribute <STRING>
Name of the xml attribute which gives the edge weight; default: traveltime
--phemlight-path <FILE> Determines where to load PHEMlight definitions from.; default: ./PHEMlight/


Option Description
--output-prefix <STRING> Prefix which is applied to all output files. The special string 'TIME' is replaced by the current time.
--precision <INT> Defines the number of digits after the comma for floating point output; default: 2
--precision.geo <INT> Defines the number of digits after the comma for lon,lat output; default: 6
-o <FILE>
--output-file <FILE>
Write generated routes to FILE
--vtype-output <FILE> Write used vehicle types into separate FILE
--keep-vtype-distributions <BOOL> Keep vTypeDistribution ids when writing vehicles and their types; default: false
--exit-times <BOOL> Write exit times (weights) for each edge; default: false


Option Description
--ignore-errors <BOOL> Continue if a route could not be build; default: false
--unsorted-input <BOOL> Assume input is unsorted; default: false
-s <TIME>
--route-steps <TIME>
Load routes for the next number of seconds ahead; default: 200
--randomize-flows <BOOL> generate random departure times for flow input; default: false
--max-alternatives <INT> Prune the number of alternatives to INT; default: 5
--remove-loops <BOOL> Remove loops within the route; Remove turnarounds at start and end of the route; default: false
--repair <BOOL> Tries to correct a false route; default: false
--repair.from <BOOL> Tries to correct an invalid starting edge by using the first usable edge instead; default: false
--repair.to <BOOL> Tries to correct an invalid destination edge by using the last usable edge instead; default: false
--weights.interpolate <BOOL> Interpolate edge weights at interval boundaries; default: false
--with-taz <BOOL> Use origin and destination zones (districts) for in- and output; default: false
--bulk-routing <BOOL> Aggregate routing queries with the same origin; default: false
--routing-threads <INT> The number of parallel execution threads used for routing; default: 0
--weights.expand <BOOL> Expand weights behind the simulation's end; default: false
--routing-algorithm <STRING> Select among routing algorithms ['dijkstra', 'astar', 'CH', 'CHWrapper']; default: dijkstra
--weight-period <TIME> Aggregation period for the given weight files; triggers rebuilding of Contraction Hierarchy; default: 3600
--astar.all-distances <FILE> Initialize lookup table for astar from the given file (generated by marouter --all-pairs-output)
--astar.landmark-distances <FILE> Initialize lookup table for astar ALT-variant from the given file
--astar.save-landmark-distances <FILE> Save lookup table for astar ALT-variant to the given file
--gawron.beta <FLOAT> Use FLOAT as Gawron's beta; default: 0.3
--gawron.a <FLOAT> Use FLOAT as Gawron's a; default: 0.05
--keep-all-routes <BOOL> Save routes with near zero probability; default: false
--skip-new-routes <BOOL> Only reuse routes from input, do not calculate new ones; default: false
--logit <BOOL> Use c-logit model (deprecated in favor of --route-choice-method logit); default: false
--route-choice-method <STRING> Choose a route choice method: gawron, logit, or lohse; default: gawron
--logit.beta <FLOAT> Use FLOAT as logit's beta; default: -1
--logit.gamma <FLOAT> Use FLOAT as logit's gamma; default: 1
--logit.theta <FLOAT> Use FLOAT as logit's theta (negative values mean auto-estimation); default: -1
--persontrip.walkfactor <FLOAT> Use FLOAT as a factor on pedestrian maximum speed during intermodal routing; default: 0.9


Option Description
--departlane <STRING> Assigns a default depart lane
--departpos <STRING> Assigns a default depart position
--departspeed <STRING> Assigns a default depart speed
--arrivallane <STRING> Assigns a default arrival lane
--arrivalpos <STRING> Assigns a default arrival position
--arrivalspeed <STRING> Assigns a default arrival speed
--defaults-override <BOOL> Defaults will override given values; default: false


Option Description
-b <TIME>
--begin <TIME>
Defines the begin time; Previous trips will be discarded; default: 0
-e <TIME>
--end <TIME>
Defines the end time; Later trips will be discarded; Defaults to the maximum time that SUMO can represent; default: 9223372036854774


All applications of the SUMO-suite handle most of the reporting options the same way. These options are discussed at Basics/Using the Command Line Applications#Reporting Options.

Option Description
-v <BOOL>
--verbose <BOOL>
Switches to verbose output; default: false
--print-options <BOOL> Prints option values before processing; default: false
-? <BOOL>
--help <BOOL>
Prints this screen; default: false
--version <BOOL>
Prints the current version; default: false
--xml-validation <STRING>
Set schema validation scheme of XML inputs ("never", "auto" or "always"); default: auto
--xml-validation.net <STRING> Set schema validation scheme of SUMO network inputs ("never", "auto" or "always"); default: never
--no-warnings <BOOL>
Disables output of warnings; default: false
-l <FILE>
--log <FILE>
Writes all messages to FILE (implies verbose)
--message-log <FILE> Writes all non-error messages to FILE (implies verbose)
--error-log <FILE> Writes all warnings and errors to FILE
--stats-period <INT> Defines how often statistics shall be printed; default: -1
--no-step-log <BOOL> Disable console output of route parsing step; default: false

Random Number

All applications of the SUMO-suite handle randomisation options the same way. These options are discussed at Basics/Using the Command Line Applications#Random Number Options.

Option Description
--random <BOOL> Initialises the random number generator with the current system time; default: false
--seed <INT> Initialises the random number generator with the given value; default: 23423

Routing Algorithms

All available routing algorithms return the path with the shortest travel time by default. If the option --weight-attribute is used, routing will try to optimize an alternative attribute from the given --weight-file instead.

Dijkstra's algorithm (time dependent)
A* (time dependent)
Contraction hierarchies. This routing algorithm is not strictly time dependent. Instead a new hierarchy is built for each time interval according to the option --weight-period. Each vehicle is routed according to the conditions at its departure.
Like 'CH' but builds a separate contraction hierarchy for each vClass. This is needed when using vClasses in the simulation.

Further Documentation