Eclipse SUMO netgenerate v1_25_0+0045-28a3daf62ee
Copyright (C) 2001-2026 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.
--output-suffix STR Suffix 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]>.