NETGENERATE
Contents
From 30.000 feet
NETGENERATE generates abstract road networks that may be used by other SUMO-applications.
- Purpose: Abstract road network generation
- System: portable (Linux/Windows is tested); runs on command line
- Input (mandatory): Command line parameter
- Output: A generated SUMO-road network; optionally also other outputs
- Programming Language: C++
Usage Description
The usage is described at Networks/Abstract_Network_Generation
Options
You may use a XML schema definition file for setting up a NETGENERATE configuration: netgenerateConfiguration.xsd.
Configuration
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 |
Grid Network
| Option | Description |
|---|---|
| -g <BOOL> --grid <BOOL> |
Forces NETGEN to build a grid-like network; default: false |
| --grid.number <INT> | The number of junctions in both dirs; default: 5 |
| --grid.length <FLOAT> | The length of streets in both dirs; default: 100 |
| --grid.x-number <INT> | The number of junctions in x-dir; Overrides --grid-number; default: 5 |
| --grid.y-number <INT> | The number of junctions in y-dir; Overrides --grid-number; default: 5 |
| --grid.x-length <FLOAT> | The length of horizontal streets; Overrides --grid-length; default: 100 |
| --grid.y-length <FLOAT> | The length of vertical streets; Overrides --grid-length; default: 100 |
| --grid.attach-length <FLOAT> | The length of streets attached at the boundary; 0 means no streets are attached; default: 0 |
| --grid.alphanumerical-ids <BOOL> | The Ids of generated nodes use letters for the X axis; default: false |
Spider Network
| Option | Description |
|---|---|
| -s <BOOL> --spider <BOOL> |
Forces NETGEN to build a spider-net-like network; default: false |
| --spider.arm-number <INT> | The number of axes within the net; default: 13 |
| --spider.circle-number <INT> | The number of circles of the net; default: 20 |
| --spider.space-radius <FLOAT> | The distances between the circles; default: 100 |
| --spider.omit-center <BOOL> | Omit the central node of the network; default: false |
Random Network
It is not recommended to set --rand.connectivity to 1 as the algorithm may fail to terminate in this case.
| Option | Description |
|---|---|
| -r <BOOL> --rand <BOOL> |
Forces NETGEN to build a random network; default: false |
| --rand.iterations <INT> | Describes how many times an edge shall be added to the net; default: 2000 |
| --rand.bidi-probability <FLOAT> | Defines the probability to build a reverse edge; default: 1 |
| --rand.max-distance <FLOAT> | The maximum distance for each edge; default: 250 |
| --rand.min-distance <FLOAT> | The minimum distance for each edge; default: 100 |
| --rand.min-angle <FLOAT> | The minimum angle for each pair of (bidirectional) roads; default: 0.785398 |
| --rand.num-tries <INT> | The number of tries for creating each node; default: 50 |
| --rand.connectivity <FLOAT> | Probability for roads to continue at each node; default: 0.95 |
| --rand.neighbor-dist1 <FLOAT> | Probability for a node having exactly 1 neighbor; default: 0 |
| --rand.neighbor-dist2 <FLOAT> | Probability for a node having exactly 2 neighbors; default: 0 |
| --rand.neighbor-dist3 <FLOAT> | Probability for a node having exactly 3 neighbors; default: 10 |
| --rand.neighbor-dist4 <FLOAT> | Probability for a node having exactly 4 neighbors; default: 10 |
| --rand.neighbor-dist5 <FLOAT> | Probability for a node having exactly 5 neighbors; default: 2 |
| --rand.neighbor-dist6 <FLOAT> | Probability for a node having exactly 6 neighbors; default: 1 |
Output
| 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> |
The generated net will be written to FILE |
| --plain-output-prefix <FILE> | Prefix of files to write plain xml nodes, edges and connections to |
| --junctions.join-output <FILE> | Writes information about joined junctions to FILE (can be loaded as additional node-file to reproduce joins |
| --amitran-output <FILE> | The generated net will be written to FILE using Amitran format |
| --matsim-output <FILE> | The generated net will be written to FILE using MATsim format |
| --opendrive-output <FILE> | The generated net will be written to FILE using OpenDRIVE format |
| --dlr-navteq-output <FILE> | The generated net will be written to dlr-navteq files with the given PREFIX |
| --dlr-navteq.precision <INT> | The network coordinates are written with the specified level of output precision; default: 2 |
| --output.street-names <BOOL> | Street names will be included in the output (if available); default: false |
| --output.original-names <BOOL> | Writes original names, if given, as parameter; default: false |
| --street-sign-output <FILE> | Writes street signs as POIs to FILE |
| --opendrive-output.straight-threshold <FLOAT> | Builds parameterized curves whenever the angular change between straight segments exceeds FLOAT degrees; default: 1e-08 |
Tls Building
| Option | Description |
|---|---|
| --tls.set <STRING> | Interprets STR as list of junctions to be controlled by TLS |
| --tls.unset <STRING> | Interprets STR as list of junctions to be not controlled by TLS |
| --tls.guess <BOOL> | Turns on TLS guessing; default: false |
| --tls-guess.joining <BOOL> | Includes node clusters into guess; default: false |
| --tls.join <BOOL> | Tries to cluster tls-controlled nodes; default: false |
| --tls.join-dist <FLOAT> | Determines the maximal distance for joining traffic lights (defaults to 20); default: 20 |
| --tls.uncontrolled-within <BOOL> | Do not control edges that lie fully within a joined traffic light. This may cause collisions but allows old traffic light plans to be used; default: false |
| --tls.cycle.time <INT> | Use INT as cycle duration; default: 90 |
| --tls.green.time <INT> | Use INT as green phase duration; default: 31 |
| -D <FLOAT> --tls.yellow.min-decel <FLOAT> |
Defines smallest vehicle deceleration; default: 3 |
| --tls.yellow.patch-small <BOOL> | Given yellow times are patched even if being too short; default: false |
| --tls.yellow.time <INT> | Set INT as fixed time for yellow phase durations; default: -1 |
| --tls.red.time <INT> | Set INT as fixed time for red phase duration at traffic lights that do not have a conflicting flow; default: 5 |
| --tls.allred.time <INT> | Set INT as fixed time for intermediate red phase after every switch; default: 0 |
| --tls.left-green.time <INT> | Use INT as green phase duration for left turns (s). Setting this value to 0 disables additional left-turning phases; default: 6 |
| --tls.half-offset <STRING> | TLSs in STR will be shifted by half-phase |
| --tls.quarter-offset <STRING> | TLSs in STR will be shifted by quarter-phase |
| --tls.default-type <STRING> | TLSs with unspecified type will use STR as their algorithm; default: static |
| --tls.min-dur <INT> | Default minimum phase duration for traffic lights with variable phase length; default: 5 |
| --tls.max-dur <INT> | Default maximum phase duration for traffic lights with variable phase length; default: 50 |
Edge Removal
| Option | Description |
|---|---|
| --keep-edges.min-speed <FLOAT> | Only keep edges with speed in meters/second > FLOAT; default: -1 |
| --remove-edges.explicit <STRING> | Remove edges in STR |
| --keep-edges.explicit <STRING> | Only keep edges in STR or those which are kept due to other keep-edges or remove-edges options |
| --keep-edges.input-file <FILE> | Only keep edges in FILE (Each id on a single line. Selection files from SUMO-GUI are also supported) or those which are kept due to other keep-edges or remove-edges options |
| --remove-edges.input-file <FILE> | Remove edges in FILE. (Each id on a single line. Selection files from SUMO-GUI are also supported) |
| --keep-edges.in-boundary <STRING> | Only keep edges which are located within the given boundary (given either as CARTESIAN corner coordinates <xmin,ymin,xmax,ymax> or as polygon <x0,y0,x1,y1,...>) |
| --keep-edges.in-geo-boundary <STRING> | Only keep edges which are located within the given boundary (given either as GEODETIC corner coordinates <lon-min,lat-min,lon-max,lat-max> or as polygon <lon0,lat0,lon1,lat1,...>) |
Unregulated Nodes
| Option | Description |
|---|---|
| --keep-nodes-unregulated <BOOL> | All nodes will be unregulated; default: false |
| --keep-nodes-unregulated.explicit <STRING> | Do not regulate nodes in STR |
| --keep-nodes-unregulated.district-nodes <BOOL> | Do not regulate district nodes; default: false |
Processing
Normally, both NETCONVERT and NETGENERATE translate the read network so that the left- and down-most node are at coordinate (0,0). The following options allow to disable this and to apply different offsets for both the x- and the y-axis. If there are explicit offsets given, the normalization is disabled automatically (thus there is no need to give --disable-normalize-node-positions if there is at least one of the offsets given).
| Option | Description |
|---|---|
| --no-internal-links <BOOL> | Omits internal links; default: false |
| --numerical-ids <BOOL> | Remaps alphanumerical IDs of nodes and edges to ensure that all IDs are integers; default: false |
| --reserved-ids <FILE> | Ensures that generated ids do not included any of the typed IDs from FILE (SUMO-GUI selection file format) |
| --no-turnarounds <BOOL> | Disables building turnarounds; default: false |
| --no-turnarounds.tls <BOOL> | Disables building turnarounds at tls-controlled junctions; default: false |
| --no-left-connections <BOOL> | Disables building connections to left; default: false |
| --offset.disable-normalization <BOOL> | Turn off normalizing node positions; default: false |
| --offset.x <FLOAT> | Adds FLOAT to net x-positions; default: 0 |
| --offset.y <FLOAT> | Adds FLOAT to net y-positions; default: 0 |
| --flip-y-axis <BOOL> | Flips the y-coordinate along zero; default: false |
| --roundabouts.guess <BOOL> | Enable roundabout-guessing; default: false |
| --opposites.guess <BOOL> | Enable guessing of opposite direction lanes usable for overtaking; default: false |
| --opposites.guess.fix-lengths <BOOL> | Ensure that opposite edges have the same length; default: false |
| --lefthand <BOOL> | Assumes left-hand traffic on the network; default: false |
| --edges.join <BOOL> | Merges edges which connect the same nodes and are close to each other (recommended for VISSIM import); default: false |
| --junctions.join <BOOL> | Joins junctions that are close to each other (recommended for OSM import); default: false |
| --junctions.join-dist <FLOAT> | Determines the maximal distance for joining junctions (defaults to 10); default: 10 |
| --junctions.corner-detail <INT> | Generate INT intermediate points to smooth out intersection corners; default: 0 |
| --junctions.internal-link-detail <INT> | Generate INT intermediate points to smooth out lanes within the intersection; default: 5 |
| --junctions.scurve-stretch <FLOAT> | Generate longer intersections to allow for smooth s-curves when the number of lanes changes; default: 0 |
| --junctions.join-turns <BOOL> | Builds common edges for turning connections with common from- and to-edge. This causes discrepancies between geometrical length and assigned length due to averaging but enables lane-changing while turning; default: false |
| --rectangular-lane-cut <BOOL> | Forces rectangular cuts between lanes and intersections; default: false |
| --check-lane-foes.roundabout <BOOL> | Allow driving onto a multi-lane road if there are foes on other lanes (at roundabouts); default: true |
| --check-lane-foes.all <BOOL> | Allow driving onto a multi-lane road if there are foes on other lanes (everywhere); default: false |
| --sidewalks.guess <BOOL> | Guess pedestrian sidewalks based on edge speed; default: false |
| --sidewalks.guess.max-speed <FLOAT> | Add sidewalks for edges with a speed equal or below the given limit; default: 13.89 |
| --sidewalks.guess.min-speed <FLOAT> | Add sidewalks for edges with a speed above the given limit; default: 5.8 |
| --sidewalks.guess.from-permissions <BOOL> | Add sidewalks for edges that allow pedestrians on any of their lanes regardless of speed; default: false |
| --sidewalks.guess.exclude <STRING> | Do not guess sidewalks for the given list of edges |
| --crossings.guess <BOOL> | Guess pedestrian crossings based on the presence of sidewalks; default: false |
| --crossings.guess.speed-threshold <FLOAT> | At uncontrolled nodes, do not build crossings across edges with a speed above the threshold; default: 13.89 |
| --walkingareas <BOOL> | Always build walking areas even if there are no crossings; default: false |
Building Defaults
| Option | Description |
|---|---|
| -L <INT> --default.lanenumber <INT> |
The default number of lanes in an edge; default: 1 |
| --default.lanewidth <FLOAT> | The default width of lanes; default: -1 |
| -S <FLOAT> --default.speed <FLOAT> |
The default speed on an edge (in m/s); default: 13.9 |
| -P <INT> --default.priority <INT> |
The default priority of an edge; default: -1 |
| --default.sidewalk-width <FLOAT> | The default width of added sidewalks; default: 2 |
| --default.disallow <STRING> | The default for disallowed vehicle classes |
| --default.junctions.keep-clear <BOOL> | Whether junctions should be kept clear by default; default: true |
| --default.junctions.radius <FLOAT> | The default turning radius of intersections; default: 1.5 |
| -j <STRING> --default-junction-type <STRING> |
[traffic_light|priority|right_before_left] Determines the type of the build junctions |
Report
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 |
| -V <BOOL> --version <BOOL> |
Prints the current version; default: false |
| -X <STRING> --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 |
| -W <BOOL> --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 |
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 |