Eclipse SUMO netgenerate v1_24_0+0753-7ddc191931e Copyright (C) 2001-2025 German Aerospace Center (DLR) and others; https://sumo.dlr.de Synthetic network generator for the microscopic, multi-modal traffic simulation SUMO. Usage: netgenerate [OPTION]* Either "--grid", "--spider" or "--rand" must be supplied. In dependence to these switches other options are used. Configuration Options: -c, --configuration-file FILE Loads the named config on startup -C, --save-configuration FILE Saves current configuration into FILE --save-configuration.relative Enforce relative paths when saving the configuration --save-template FILE Saves a configuration template (empty) into FILE --save-schema FILE Saves the configuration schema into FILE --save-commented Adds comments to saved template, configuration, or schema Grid Network Options: -g, --grid Forces NETGEN to build a grid-like network --grid.number INT The number of junctions in both dirs --grid.length FLOAT The length of streets in both dirs --grid.x-number INT The number of junctions in x-dir; Overrides --grid-number --grid.y-number INT The number of junctions in y-dir; Overrides --grid-number --grid.x-length FLOAT The length of horizontal streets; Overrides --grid-length --grid.y-length FLOAT The length of vertical streets; Overrides --grid-length --grid.attach-length FLOAT The length of streets attached at the boundary; 0 means no streets are attached --grid.x-attach-length FLOAT The length of streets attached at the boundary in x direction; 0 means no streets are attached --grid.y-attach-length FLOAT The length of streets attached at the boundary in y direction; 0 means no streets are attached Spider Network Options: -s, --spider Forces NETGEN to build a spider-net-like network --spider.arm-number INT The number of axes within the net --spider.circle-number INT The number of circles of the net --spider.space-radius FLOAT The distances between the circles --spider.omit-center Omit the central node of the network --spider.attach-length FLOAT The length of streets attached at the boundary; 0 means no streets are attached Random Network Options: -r, --rand Forces NETGEN to build a random network --rand.iterations INT Describes how many times an edge shall be added to the net --rand.max-distance FLOAT The maximum distance for each edge --rand.min-distance FLOAT The minimum distance for each edge --rand.min-angle FLOAT The minimum angle for each pair of (bidirectional) roads in DEGREES --rand.num-tries INT The number of tries for creating each node --rand.connectivity FLOAT Probability for roads to continue at each node --rand.neighbor-dist1 FLOAT Probability for a node having at most 1 neighbor --rand.neighbor-dist2 FLOAT Probability for a node having at most 2 neighbors --rand.neighbor-dist3 FLOAT Probability for a node having at most 3 neighbors --rand.neighbor-dist4 FLOAT Probability for a node having at most 4 neighbors --rand.neighbor-dist5 FLOAT Probability for a node having at most 5 neighbors --rand.neighbor-dist6 FLOAT Probability for a node having at most 6 neighbors --rand.grid Place nodes on a regular grid with spacing rand.min-distance Input Options: -t, --type-files FILE Read edge-type defs from FILE Output Options: --write-license Include license info into every output file --write-metadata Write parsable metadata (configuration etc.) instead of comments --output-prefix STR 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 --precision.geo INT Defines the number of digits after the comma for lon,lat output --output.compression STR Defines the standard compression algorithm (currently only for parquet output) --output.format STR Defines the standard output format if not derivable from the file name ('xml', 'csv', 'parquet') --output.column-header STR How to derive column headers from attribute names ('none', 'tag', 'auto', 'plain') --output.column-separator STR Separator in CSV output -H, --human-readable-time Write time values as hour:minute:second or day:hour:minute:second rather than seconds --alphanumerical-ids The Ids of generated nodes use an alphanumerical code for easier readability when possible -o, --output-file FILE The generated net will be written to FILE -p, --plain-output-prefix FILE Prefix of files to write plain xml nodes, edges and connections to --plain-output.lanes Write all lanes and their attributes even when they are not customized --junctions.join-output FILE Writes information about joined junctions to FILE (can be loaded as additional node-file to reproduce joins --prefix STR Defines a prefix for edge and junction IDs --prefix.junction STR Defines a prefix for junction IDs --prefix.edge STR Defines a prefix for edge IDs --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.version STR The dlr-navteq output format version to write --dlr-navteq.precision INT The network coordinates are written with the specified level of output precision --output.street-names Street names will be included in the output (if available) --output.original-names Writes original names, if given, as parameter --output.removed-nodes Writes IDs of nodes remove with --geometry.remove into edge param --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 Processing Options: --turn-lanes INT Generate INT left-turn lanes --turn-lanes.length FLOAT Set the length of generated turning lanes to FLOAT --perturb-x STR Apply random spatial perturbation in x direction according to the given distribution --perturb-y STR Apply random spatial perturbation in y direction according to the given distribution --perturb-z STR Apply random spatial perturbation in z direction according to the given distribution --bidi-probability FLOAT Defines the probability to build a reverse edge --random-lanenumber Draw lane numbers randomly from [1,default.lanenumber] --random-priority Draw edge priority randomly from [1,default.priority] --random-type Draw edge type randomly from all loaded types --numerical-ids Remaps alphanumerical IDs of nodes and edges to ensure that all IDs are integers --numerical-ids.node-start INT Remaps IDs of nodes to integers starting at INT --numerical-ids.edge-start INT Remaps IDs of edges to integers starting at INT --reserved-ids FILE Ensures that generated ids do not included any of the typed IDs from FILE (sumo-gui selection file format) --kept-ids FILE Ensures that objects with typed IDs from FILE (sumo-gui selection file format) are not renamed --geometry.split Splits edges across geometry nodes -R, --geometry.remove Replace nodes which only define edge geometry by geometry points (joins edges) --geometry.remove.keep-edges.explicit STR[] Ensure that the given list of edges is not modified --geometry.remove.keep-edges.input-file FILE Ensure that the edges in FILE are not modified (Each id on a single line. Selection files from sumo-gui are also supported) --geometry.remove.min-length FLOAT Allow merging edges with differing attributes when their length is below min-length --geometry.remove.width-tolerance FLOAT Allow merging edges with differing lane widths if the difference is below FLOAT --geometry.remove.max-junction-size FLOAT Prevent removal of junctions with a size above FLOAT as defined by custom edge endpoints --geometry.max-segment-length FLOAT splits geometry to restrict segment length --geometry.max-grade FLOAT Warn about edge geometries with a grade in % above FLOAT. --geometry.max-grade.fix Smooth edge geometries with a grade above the warning threshold. --offset.disable-normalization Turn off normalizing node positions --offset.x FLOAT Adds FLOAT to net x-positions --offset.y FLOAT Adds FLOAT to net y-positions --offset.z FLOAT Adds FLOAT to net z-positions --flip-y-axis Flips the y-coordinate along zero --roundabouts.guess Enable roundabout-guessing --roundabouts.guess.max-length FLOAT Structures with a circumference above FLOAT threshold are not classified as roundabout --roundabouts.visibility-distance FLOAT Default visibility when approaching a roundabout --opposites.guess Enable guessing of opposite direction lanes usable for overtaking --opposites.guess.fix-lengths Ensure that opposite edges have the same length --fringe.guess Enable guessing of network fringe nodes --fringe.guess.speed-threshold FLOAT Guess disconnected edges above the given speed as outer fringe --lefthand Assumes left-hand traffic on the network --edges.join Merges edges which connect the same nodes and are close to each other (recommended for VISSIM import) Building Defaults Options: -L, --default.lanenumber INT The default number of lanes in an edge --default.lanewidth FLOAT The default width of lanes --default.spreadtype STR The default method for computing lane shapes from edge shapes -S, --default.speed FLOAT The default speed on an edge (in m/s) --default.friction FLOAT The default friction on an edge -P, --default.priority INT The default priority of an edge --default.type STR The default edge type --default.sidewalk-width FLOAT The default width of added sidewalks --default.bikelane-width FLOAT The default width of added bike lanes --default.crossing-width FLOAT The default width of a pedestrian crossing --default.crossing-speed FLOAT The default speed 'limit' on a pedestrian crossing (in m/s) --default.walkingarea-speed FLOAT The default speed 'limit' on a pedestrian walkingarea (in m/s) --default.allow STR The default for allowed vehicle classes --default.disallow STR The default for disallowed vehicle classes --default.junctions.keep-clear Whether junctions should be kept clear by default --default.junctions.radius FLOAT The default turning radius of intersections --default.connection-length FLOAT The default length when overriding connection lengths --default.connection.cont-pos FLOAT Whether/where connections should have an internal junction --default.right-of-way STR The default algorithm for computing right of way rules ('default', 'edgePriority') -j, --default-junction-type STR [traffic_light|priority|right_before_left|left_before_right|traffic_light_right_on_red|priority_stop|allway_stop|...] Determines junction type (see wiki/Networks/PlainXML#Node_types) TLS Building Options: --tls.set STR[] Interprets STR[] as list of junctions to be controlled by TLS --tls.unset STR[] Interprets STR[] as list of junctions to be not controlled by TLS --tls.guess Turns on TLS guessing --tls.guess.threshold FLOAT Sets minimum value for the sum of all incoming lane speeds when guessing TLS --tls.guess.joining Includes node clusters into guess --tls.join Tries to cluster tls-controlled nodes --tls.join-dist FLOAT Determines the maximal distance for joining traffic lights (defaults to 20) --tls.join-exclude STR[] Interprets STR[] as list of tls ids to exclude from joining --tls.uncontrolled-within 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 --tls.ignore-internal-junction-jam Do not build mutually conflicting response matrix, potentially ignoring vehicles that are stuck at an internal junction when their phase has ended --tls.cycle.time INT Use INT as cycle duration --tls.green.time INT Use INT as green phase duration -D, --tls.yellow.min-decel FLOAT Defines smallest vehicle deceleration --tls.yellow.patch-small Given yellow times are patched even if being too short --tls.yellow.time INT Set INT as fixed time for yellow phase durations --tls.red.time INT Set INT as fixed time for red phase duration at traffic lights that do not have a conflicting flow --tls.allred.time INT Set INT as fixed time for intermediate red phase after every switch --tls.minor-left.max-speed FLOAT Use FLOAT as threshold for allowing left-turning vehicles to move in the same phase as oncoming straight-going vehicles --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 --tls.nema.vehExt INT Set INT as fixed time for intermediate vehext phase after every switch --tls.nema.yellow INT Set INT as fixed time for intermediate NEMA yellow phase after every switch --tls.nema.red INT Set INT as fixed time for intermediate NEMA red phase after every switch --tls.crossing-min.time INT Use INT as minimum green duration for pedestrian crossings (s). --tls.crossing-clearance.time INT Use INT as clearance time for pedestrian crossings (s). --tls.scramble.time INT Use INT as green phase duration for pedestrian scramble phase (s). --tls.half-offset STR[] TLSs in STR[] will be shifted by half-phase --tls.quarter-offset STR[] TLSs in STR[] will be shifted by quarter-phase --tls.default-type STR TLSs with unspecified type will use STR as their algorithm --tls.layout STR Set phase layout four grouping opposite directions or grouping all movements for one incoming edge ['opposites', 'incoming'] --tls.no-mixed Avoid phases with green and red signals for different connections from the same lane --tls.min-dur INT Default minimum phase duration for traffic lights with variable phase length --tls.max-dur INT Default maximum phase duration for traffic lights with variable phase length --tls.group-signals Assign the same tls link index to connections that share the same states --tls.ungroup-signals Assign a distinct tls link index to every connection --tls.rebuild rebuild all traffic light plans in the network --tls.discard-simple Does not instantiate traffic lights at geometry-like nodes --railway.signal.permit-unsignalized STR[] List rail classes that may run without rail signals Edge Removal Options: --keep-edges.min-speed FLOAT Only keep edges with speed in meters/second > FLOAT --remove-edges.explicit STR[] Remove edges in STR[] --keep-edges.explicit STR[] 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 STR[] 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 STR[] 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,...>) --keep-lanes.min-width FLOAT Only keep lanes with width in meters > FLOAT Unregulated Nodes Options: --keep-nodes-unregulated All nodes will be unregulated --keep-nodes-unregulated.explicit STR[] Do not regulate nodes in STR[] --keep-nodes-unregulated.district-nodes Do not regulate district nodes Junctions Options: --junctions.right-before-left.speed-threshold FLOAT Allow building right-before-left junctions when the incoming edge speeds are below FLOAT (m/s) --junctions.left-before-right Build left-before-right junctions instead of right-before-left junctions --no-internal-links Omits internal links --no-turnarounds Disables building turnarounds --no-turnarounds.tls Disables building turnarounds at tls-controlled junctions --no-turnarounds.geometry Disables building turnarounds at geometry-like junctions --no-turnarounds.except-deadend Disables building turnarounds except at dead end junctions --no-turnarounds.except-turnlane Disables building turnarounds except at at junctions with a dedicated turning lane --no-turnarounds.fringe Disables building turnarounds at fringe junctions --no-left-connections Disables building connections to left --junctions.join Joins junctions that are close to each other (recommended for OSM import) --junctions.join-dist FLOAT Determines the maximal distance for joining junctions (defaults to 10) --junctions.join.parallel-threshold FLOAT The angular threshold in degress for rejection of parallel edges when joining junctions --junctions.join-same FLOAT Joins junctions that have similar coordinates even if not connected --max-join-ids INT Abbreviate junction or TLS id if it joins more than INT junctions --junctions.corner-detail INT Generate INT intermediate points to smooth out intersection corners --junctions.internal-link-detail INT Generate INT intermediate points to smooth out lanes within the intersection --junctions.scurve-stretch FLOAT Generate longer intersections to allow for smooth s-curves when the number of lanes changes --junctions.join-turns 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 --junctions.limit-turn-speed FLOAT Limits speed on junctions to an average lateral acceleration of at most FLOAT (m/s^2) --junctions.limit-turn-speed.min-angle FLOAT Do not limit turn speed for angular changes below FLOAT (degrees). The value is subtracted from the geometric angle before computing the turning radius. --junctions.limit-turn-speed.min-angle.railway FLOAT Do not limit turn speed for angular changes below FLOAT (degrees) on railway edges. The value is subtracted from the geometric angle before computing the turning radius. --junctions.limit-turn-speed.warn.straight FLOAT Warn about turn speed limits that reduce the speed of straight connections by more than FLOAT --junctions.limit-turn-speed.warn.turn FLOAT Warn about turn speed limits that reduce the speed of turning connections (no u-turns) by more than FLOAT --junctions.small-radius FLOAT Default radius for junctions that do not require wide vehicle turns --junctions.higher-speed Use maximum value of incoming and outgoing edge speed on junction instead of average --junctions.minimal-shape Build junctions with minimal shapes (ignoring edge overlap) --junctions.endpoint-shape Build junction shapes based on edge endpoints (ignoring edge overlap) --internal-junctions.vehicle-width FLOAT Assumed vehicle width for computing internal junction positions --rectangular-lane-cut Forces rectangular cuts between lanes and intersections --check-lane-foes.roundabout Allow driving onto a multi-lane road if there are foes on other lanes (at roundabouts) --check-lane-foes.all Allow driving onto a multi-lane road if there are foes on other lanes (everywhere) Pedestrian Options: --sidewalks.guess Guess pedestrian sidewalks based on edge speed --sidewalks.guess.max-speed FLOAT Add sidewalks for edges with a speed equal or below the given limit --sidewalks.guess.min-speed FLOAT Add sidewalks for edges with a speed above the given limit --sidewalks.guess.from-permissions Add sidewalks for edges that allow pedestrians on any of their lanes regardless of speed --sidewalks.guess.exclude STR[] Do not guess sidewalks for the given list of edges --crossings.guess Guess pedestrian crossings based on the presence of sidewalks --crossings.guess.speed-threshold FLOAT At uncontrolled nodes, do not build crossings across edges with a speed above the threshold --crossings.guess.roundabout-priority Give priority to guessed crossings at roundabouts --walkingareas Always build walking areas even if there are no crossings --walkingareas.join-dist FLOAT Do not create a walkingarea between sidewalks that are connected by a pedestrian junction within FLOAT Bicycle Options: --bikelanes.guess Guess bike lanes based on edge speed --bikelanes.guess.max-speed FLOAT Add bike lanes for edges with a speed equal or below the given limit --bikelanes.guess.min-speed FLOAT Add bike lanes for edges with a speed above the given limit --bikelanes.guess.from-permissions Add bike lanes for edges that allow bicycles on any of their lanes regardless of speed --bikelanes.guess.exclude STR[] Do not guess bikelanes for the given list of edges Report Options: -v, --verbose Switches to verbose output --print-options Prints option values before processing -?, --help Prints this screen or selected topics -V, --version Prints the current version -X, --xml-validation STR Set schema validation scheme of XML inputs ("never", "local", "auto" or "always") -W, --no-warnings Disables output of warnings --aggregate-warnings INT Aggregate warnings of the same type whenever more than INT occur -l, --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 --log.timestamps Writes timestamps in front of all messages --log.processid Writes process ID in front of all messages --language STR Language to use in messages Random Number Options: --random Initialises the random number generator with the current system time --seed INT Initialises the random number generator with the given value Examples: netgenerate -c <CONFIGURATION> create net from given configuration netgenerate --grid [grid-network options] -o <OUTPUTFILE> create grid net netgenerate --spider [spider-network options] -o <OUTPUTFILE> create spider net netgenerate --rand [random-network options] -o <OUTPUTFILE> create random net Report bugs at <https://github.com/eclipse-sumo/sumo/issues>. Get in contact via <[email protected]>.