ECLIPSE(1)

NAME
Eclipse - Road network generator for the microscopic traffic simulation SUMO

SYNOPSIS
netgenerate [OPTION]*

DESCRIPTION
Eclipse SUMO netgenerate Version 1.18.0

    Copyright (C) 2001-2023 German Aerospace Center (DLR) and others; https://sumo.dlr.de

Synthetic network generator for the microscopic, multi-modal traffic simulation

    SUMO.

    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 exactly 1 neighbor

--rand.neighbor-dist2 FLOAT
    Probability for a node having exactly 2 neighbors

--rand.neighbor-dist3 FLOAT
    Probability for a node having exactly 3 neighbors

--rand.neighbor-dist4 FLOAT
    Probability for a node having exactly 4 neighbors

--rand.neighbor-dist5 FLOAT
    Probability for a node having exactly 5 neighbors

--rand.neighbor-dist6 FLOAT
    Probability for a node having exactly 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

--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

-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 names

--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

--output.street-names
    Street names will be included in the output (if available)

--output.original-names
    Writes original names, if given, as parameter

--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 the the given distribution

--perturb-y STR
    Apply random spatial perturbation in y direction according the the given distribution

--perturb-z STR
    Apply random spatial perturbation in z direction according the 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)

--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.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.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 yelow 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 instatiate traffic lights at geometry-like nodes

  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,...>)

  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-same
    Joins junctions that have the same 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 (igoring 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

--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

--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

REPORTING BUGS
Report bugs at <https://github.com/eclipse/sumo/issues>.
Get in contact via <sumo@dlr.de>.

    Build features: Linux-6.8.0-51-generic aarch64 GNU 14.2.0 None FMI Proj GUI Intl SWIG GDAL FFmpeg OSG GL2PS Eigen
    Copyright (C) 2001-2023 German Aerospace Center (DLR) and others; https://sumo.dlr.de

Eclipse SUMO netgenerate Version 1.18.0 is part of SUMO.
This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v20.html
This program may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the Eclipse
Public License 2.0 are satisfied: GNU General Public License, version 2 or later which is available at https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later