netconvert

From 30.000 feet#

netconvert imports digital road networks from different sources and generates road networks that can be used by other tools from the package.

  • Purpose: Road networks import and conversion
  • System: portable (Linux/Windows is tested); runs on command line
  • Input (mandatory): Definition of a road network
  • Output: A generated SUMO-road network; optionally also other outputs
  • Programming Language: C++

Usage Description#

netconvert is a command line application. It assumes at least one parameter - the combination of the name of the file type to import as parameter name and the name of the file to import as parameter value. So, for importing a network from OpenStreetMap one could simply write:

netconvert --osm my_osm_net.xml

and for importing a VISUM-network:

netconvert --visum my_visum_net.net

In both cases, as no output name is given, the SUMO network generated from the imported data is written into the file "net.net.xml". To write the network into a different file, use the option -o <FILE>. If you want to save the imported VISUM-network into a file named "my_sumo_net.net.xml", write:

netconvert --visum my_visum_net.net -o my_sumo_net.net.xml

Many further parameter steer how the network is imported and how the resulting SUMO-network is generated.

Supported Network Formats#

Import#

netconvert is able to import road networks from the following formats:

Merging networks#

  • any input files may be combined
  • "plain XML" files will be applied last and can be used to patch/update previously loaded elements
  • multiple sumo networks (.net.xml) may be merged by giving a list of files: --sumo-net-file FILE1,FILE2. The offsets will be handled automatically for geo-referenced network data
  • To merge nodes and ids which occupy the same location but have different ids, the the options --junctions.join-same --edges.join can be set

Export#

netconvert is able to export road networks in the following formats:

Using python tools, conversion of .net.xml files into further formats is supported:

Further supported Data Formats#

Import#

Export#

The following list ouf output is explained in more detail at Networks/Further_Outputs

Options#

You may use a XML schema definition file for setting up a netconvert configuration: netconvertConfiguration.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
-C <FILE>
--save-configuration <FILE>
Saves current configuration into FILE
--save-configuration.relative <BOOL> Enforce relative paths when saving the configuration; default: false
--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

Input#

Option Description
-s <FILE>
--sumo-net-file <FILE>
Read SUMO-net from FILE
-n <FILE>
--node-files <FILE>
Read XML-node defs from FILE
-e <FILE>
--edge-files <FILE>
Read XML-edge defs from FILE
-x <FILE>
--connection-files <FILE>
Read XML-connection defs from FILE
-i <FILE>
--tllogic-files <FILE>
Read XML-traffic light defs from FILE
-t <FILE>
--type-files <FILE>
Read XML-type defs from FILE
--ptstop-files <FILE> Reads public transport stops from FILE
--ptline-files <FILE> Reads public transport lines from FILE
--polygon-files <FILE> Reads polygons from FILE for embedding in network where applicable
--shapefile-prefix <FILE> Read shapefiles (ArcView, Tiger, ...) from files starting with 'FILE'
--dlr-navteq-prefix <FILE> Read converted Navteq GDF data (unsplitted Elmar-network) from path 'FILE'
--osm-files <FILE> Read OSM-network from path 'FILE(s)'
--opendrive-files <FILE> Read OpenDRIVE-network from FILE
--visum-file <FILE> Read VISUM-net from FILE
--vissim-file <FILE> Read VISSIM-net from FILE
--robocup-dir <FILE> Read RoboCup-net from DIR
--matsim-files <FILE> Read MATsim-net from FILE
--itsumo-files <FILE> Read ITSUMO-net from FILE
--heightmap.shapefiles <FILE> Read heightmap from ArcGIS shapefile
--heightmap.geotiff <FILE> Read heightmap from GeoTIFF

Output#

Option Description
--write-license <BOOL> Include license info into every output file; default: false
--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
-H <BOOL>
--human-readable-time <BOOL>
Write time values as hour:minute:second or day:hour:minute:second rather than seconds; default: false
-o <FILE>
--output-file <FILE>
The generated net will be written to FILE
-p <FILE>
--plain-output-prefix <FILE>
Prefix of files to write plain xml nodes, edges and connections to
--plain-output.lanes <BOOL> Write all lanes and their attributes even when they are not customized; default: false
--junctions.join-output <FILE> Writes information about joined junctions to FILE (can be loaded as additional node-file to reproduce joins
--prefix <STRING> 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.version <STRING> The dlr-navteq output format version to write; default: 6.5
--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
--ptstop-output <FILE> Writes public transport stops to FILE
--ptline-output <FILE> Writes public transport lines to FILE
--ptline-clean-up <BOOL> Clean-up pt stops that are not served by any line; default: false
--parking-output <FILE> Writes parking areas to FILE
--railway.topology.output <FILE> Analyze topology of the railway network
--polygon-output <FILE> Write shapes that are embedded in the network input and that are not supported by polyconvert (OpenDRIVE)
--opendrive-output.straight-threshold <FLOAT> Builds parameterized curves whenever the angular change between straight segments exceeds FLOAT degrees; default: 1e-08
--opendrive-output.lefthand-left <BOOL> Write lanes in lefthand networks on the left side (positive indices); default: false
--opendrive-output.shape-match-dist <FLOAT> Match loaded shapes to the closest edge within FLOAT and export as road objects; default: -1

Projection#

Option Description
--simple-projection <BOOL> Uses a simple method for projection; default: false
--proj.scale <FLOAT> Scaling factor for input coordinates; default: 1
--proj.rotate <FLOAT> Rotation (clockwise degrees) for input coordinates; default: 0
--proj.utm <BOOL> Determine the UTM zone (for a universal transversal mercator projection based on the WGS84 ellipsoid); default: false
--proj.dhdn <BOOL> Determine the DHDN zone (for a transversal mercator projection based on the bessel ellipsoid, "Gauss-Krueger"); default: false
--proj <STRING> Uses STR as proj.4 definition for projection; default: !
--proj.inverse <BOOL> Inverses projection; default: false
--proj.dhdnutm <BOOL> Convert from Gauss-Krueger to UTM; default: false
--proj.plain-geo <BOOL> Write geo coordinates in plain-xml; default: false

Processing#

Option Description
--speed-in-kmh <BOOL> vmax is parsed as given in km/h; default: false
--construction-date <STRING> Use YYYY-MM-DD date to determine the readiness of features under construction
--flatten <BOOL> Remove all z-data; default: false
--plain.extend-edge-shape <BOOL> If edge shapes do not end at the node positions, extend them; default: false
--numerical-ids <BOOL> Remaps alphanumerical IDs of nodes and edges to ensure that all IDs are integers; default: false
--numerical-ids.node-start <INT> Remaps IDs of nodes to integers starting at INT; default: 2147483647
--numerical-ids.edge-start <INT> Remaps IDs of edges to integers starting at INT; default: 2147483647
--reserved-ids <FILE> Ensures that generated ids do not included any of the typed IDs from FILE (sumo-gui selection file format)
--dismiss-vclasses <BOOL> Removes vehicle class restrictions from imported edges; default: false
--geometry.split <BOOL> Splits edges across geometry nodes; default: false
-R <BOOL>
--geometry.remove <BOOL>
Replace nodes which only define edge geometry by geometry points (joins edges); default: false
--geometry.remove.keep-edges.explicit <STRING[ ]> 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.keep-ptstops <BOOL> Ensure that edges with public transport stops are not modified; default: false
--geometry.remove.min-length <FLOAT> Allow merging edges with differing attributes when their length is below min-length; default: 0
--geometry.remove.width-tolerance <FLOAT> Allow merging edges with differing lane widths if the difference is below FLOAT; default: 0
--geometry.remove.max-junction-size <FLOAT> Prevent removal of junctions with a size above FLOAT as defined by custom edge endpoints; default: -1
--geometry.max-segment-length <FLOAT> splits geometry to restrict segment length; default: 0
--geometry.min-dist <FLOAT> reduces too similar geometry points; default: -1
--geometry.max-angle <FLOAT> Warn about edge geometries with an angle above DEGREES in successive segments; default: 99
--geometry.min-radius <FLOAT> Warn about edge geometries with a turning radius less than METERS at the start or end; default: 9
--geometry.min-radius.fix <BOOL> Straighten edge geometries to avoid turning radii less than geometry.min-radius; default: false
--geometry.min-radius.fix.railways <BOOL> Straighten edge geometries to avoid turning radii less than geometry.min-radius (only railways); default: true
--geometry.junction-mismatch-threshold <FLOAT> Warn if the junction shape is to far away from the original node position; default: 20
--geometry.check-overlap <FLOAT> Warn if edges overlap by more than the given threshold value; default: 0
--geometry.check-overlap.vertical-threshold <FLOAT> Ignore overlapping edges if they are separated vertically by the given threshold.; default: 4
--geometry.avoid-overlap <BOOL> Modify edge geometries to avoid overlap at junctions; default: true
--join-lanes <BOOL> join adjacent lanes that have the same permissions and which do not admit lane-changing (sidewalks and disallowed lanes); default: false
--ptline.match-dist <FLOAT> Matches stops outside the road network to the referencing pt line when below the given distance; default: 100
--ptstop-output.no-bidi <BOOL> Skips automatic generation of stops on the bidi-edge of a loaded stop; default: false
--geometry.max-grade <FLOAT> Warn about edge geometries with a grade in % above FLOAT.; default: 10
--geometry.max-grade.fix <BOOL> Smooth edge geometries with a grade above the warning threshold.; default: true
--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
--offset.z <FLOAT> Adds FLOAT to net z-positions; default: 0
--flip-y-axis <BOOL> Flips the y-coordinate along zero; default: false
--roundabouts.guess <BOOL> Enable roundabout-guessing; default: true
--roundabouts.visibility-distance <FLOAT> Default visibility when approaching a roundabout; default: 9
--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: true
--fringe.guess <BOOL> Enable guessing of network fringe nodes; default: false
--fringe.guess.speed-threshold <FLOAT> Guess disconnected edges above the given speed as outer fringe; default: 13.8889
--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
--speed.offset <FLOAT> Modifies all edge speeds by adding FLOAT; default: 0
--speed.factor <FLOAT> Modifies all edge speeds by multiplying by FLOAT; default: 1
--speed.minimum <FLOAT> Modifies all edge speeds to at least FLOAT; default: 0
--edges.join-tram-dist <FLOAT> Joins tram edges into road lanes with similar geometry (within FLOAT distance); default: -1

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
--default.spreadtype <STRING> The default method for computing lane shapes from edge shapes; default: right
-S <FLOAT>
--default.speed <FLOAT>
The default speed on an edge (in m/s); default: 13.89
--default.friction <FLOAT> The default friction on an edge; default: 1
-P <INT>
--default.priority <INT>
The default priority of an edge; default: -1
--default.type <STRING> The default edge type
--default.sidewalk-width <FLOAT> The default width of added sidewalks; default: 2
--default.bikelane-width <FLOAT> The default width of added bike lanes; default: 1
--default.crossing-width <FLOAT> The default width of a pedestrian crossing; default: 4
--default.crossing-speed <FLOAT> The default speed 'limit' on a pedestrian crossing (in m/s); default: 2.78
--default.walkingarea-speed <FLOAT> The default speed 'limit' on a pedestrian walkingarea (in m/s); default: 2.78
--default.allow <STRING> The default for allowed vehicle classes
--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: 4
--default.connection-length <FLOAT> The default length when overriding connection lengths; default: -1
--default.right-of-way <STRING> The default algorithm for computing right of way rules ('default', 'edgePriority'); default: default

Tls Building#

Option Description
--tls.discard-loaded <BOOL> Does not instantiate traffic lights loaded from other formats than plain-XML; default: false
--tls.discard-simple <BOOL> Does not instantiate traffic lights at geometry-like nodes loaded from other formats than plain-XML; default: false
--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.threshold <FLOAT> Sets minimum value for the sum of all incoming lane speeds when guessing TLS; default: 69.4444
--tls.taz-nodes <BOOL> Sets district nodes as tls-controlled; 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.join-exclude <STRING[ ]> Interprets STR[] as list of tls ids to exclude from joining
--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.ignore-internal-junction-jam <BOOL> Do not build mutually conflicting response matrix, potentially ignoring vehicles that are stuck at an internal junction when their phase has ended; default: false
--tls.guess-signals <BOOL> Interprets tls nodes surrounding an intersection as signal positions for a larger TLS. This is typical pattern for OSM-derived networks; default: false
--tls.guess-signals.dist <FLOAT> Distance for interpreting nodes as signal locations; default: 25
--tls.guess-signals.slack <INT> Number of uncontrolled entry edges to accept and still consider the central node as a traffic light; default: 0
--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.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; default: 19.44
--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.nema.vehExt <INT> Set INT as fixed time for intermediate vehext phase after every switch; default: 2
--tls.nema.yellow <INT> Set INT as fixed time for intermediate NEMA yellow phase after every switch; default: 3
--tls.nema.red <INT> Set INT as fixed time for intermediate NEMA red phase after every switch; default: 2
--tls.crossing-min.time <INT> Use INT as minimum green duration for pedestrian crossings (s).; default: 4
--tls.crossing-clearance.time <INT> Use INT as clearance time for pedestrian crossings (s).; default: 5
--tls.scramble.time <INT> Use INT as green phase duration for pedestrian scramble phase (s).; default: 5
--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.layout <STRING> Set phase layout four grouping opposite directions or grouping all movements for one incoming edge ['opposites', 'incoming']; default: opposites
--tls.no-mixed <BOOL> Avoid phases with green and red signals for different connections from the same lane; default: false
--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
--tls.group-signals <BOOL> Assign the same tls link index to connections that share the same states; default: false
--tls.ungroup-signals <BOOL> Assign a distinct tls link index to every connection; default: false
--tls.rebuild <BOOL> rebuild all traffic light plans in the network; default: false

Ramp Guessing#

Option Description
--ramps.guess <BOOL> Enable ramp-guessing; default: false
--ramps.guess-acceleration-lanes <BOOL> Guess on-ramps and mark acceleration lanes if they exist but do not add new lanes; default: true
--ramps.max-ramp-speed <FLOAT> Treat edges with speed > FLOAT as no ramps; default: -1
--ramps.min-highway-speed <FLOAT> Treat edges with speed < FLOAT as no highways; default: 21.9444
--ramps.ramp-length <FLOAT> Use FLOAT as ramp-length; default: 100
--ramps.min-weave-length <FLOAT> Use FLOAT as minimum ramp-length; default: 50
--ramps.set <STRING[ ]> Tries to handle the given edges as ramps
--ramps.unset <STRING[ ]> Do not consider the given edges as ramps
--ramps.no-split <BOOL> Avoids edge splitting; default: false

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.postload <BOOL> Remove edges after joining; default: false
--keep-edges.in-boundary <STRING[ ]> Only keep edges which are located within the given boundary (given either as CARTESIAN corner coordinates or as polygon )
--keep-edges.in-geo-boundary <STRING[ ]> Only keep edges which are located within the given boundary (given either as GEODETIC corner coordinates or as polygon )
--keep-edges.by-vclass <STRING[ ]> Only keep edges which allow one of the vclasses in STR[]
--remove-edges.by-vclass <STRING[ ]> Remove edges which allow only vclasses from STR[]
--keep-edges.by-type <STRING[ ]> Only keep edges where type is in STR[]
--keep-edges.components <INT> Only keep the INT largest weakly connected components; default: 0
--remove-edges.by-type <STRING[ ]> Remove edges where type is in STR[]
--remove-edges.isolated <BOOL> Removes isolated edges; default: false

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

Junctions#

Option Description
--junctions.right-before-left.speed-threshold <FLOAT> Allow building right-before-left junctions when the incoming edge speeds are below FLOAT (m/s); default: 13.6111
--junctions.left-before-right <BOOL> Build left-before-right junctions instead of right-before-left junctions; default: false
--no-internal-links <BOOL> Omits internal links; default: false
--no-turnarounds <BOOL> Disables building turnarounds; default: false
--no-turnarounds.tls <BOOL> Disables building turnarounds at tls-controlled junctions; default: false
--no-turnarounds.geometry <BOOL> Disables building turnarounds at geometry-like junctions; default: true
--no-turnarounds.except-deadend <BOOL> Disables building turnarounds except at dead end junctions; default: false
--no-turnarounds.except-turnlane <BOOL> Disables building turnarounds except at at junctions with a dedicated turning lane; default: false
--no-turnarounds.fringe <BOOL> Disables building turnarounds at fringe junctions; default: false
--no-left-connections <BOOL> Disables building connections to left; 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.join-exclude <STRING[ ]> Interprets STR[] as list of junctions to exclude from joining
--junctions.join-same <BOOL> Joins junctions that have the same coordinates even if not connected; default: false
--max-join-ids <INT> Abbreviate junction or TLS id if it joins more than INT junctions; default: 4
--junctions.corner-detail <INT> Generate INT intermediate points to smooth out intersection corners; default: 5
--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
--junctions.limit-turn-speed <FLOAT> Limits speed on junctions to an average lateral acceleration of at most FLOAT (m/s^2); default: 5.5
--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.; default: 15
--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.; default: 35
--junctions.limit-turn-speed.warn.straight <FLOAT> Warn about turn speed limits that reduce the speed of straight connections by more than FLOAT; default: 5
--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; default: 22
--junctions.small-radius <FLOAT> Default radius for junctions that do not require wide vehicle turns; default: 1.5
--junctions.higher-speed <BOOL> Use maximum value of incoming and outgoing edge speed on junction instead of average; default: false
--junctions.minimal-shape <BOOL> Build junctions with minimal shapes (ignoring edge overlap); default: false
--internal-junctions.vehicle-width <FLOAT> Assumed vehicle width for computing internal junction positions; default: 1.8
--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

Pedestrian#

Option Description
--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
--walkingareas.join-dist <FLOAT> Do not create a walkingarea between sidewalks that are connected by a pedestrian junction within FLOAT; default: 15

Bicycle#

Option Description
--bikelanes.guess <BOOL> Guess bike lanes based on edge speed; default: false
--bikelanes.guess.max-speed <FLOAT> Add bike lanes for edges with a speed equal or below the given limit; default: 22.22
--bikelanes.guess.min-speed <FLOAT> Add bike lanes for edges with a speed above the given limit; default: 5.8
--bikelanes.guess.from-permissions <BOOL> Add bike lanes for edges that allow bicycles on any of their lanes regardless of speed; default: false
--bikelanes.guess.exclude <STRING[ ]> Do not guess bikelanes for the given list of edges

Railway#

Option Description
--railway.signals.discard <BOOL> Discard all railway signal information loaded from other formats than plain-xml; default: false
--railway.topology.repair <BOOL> Repair topology of the railway network; default: false
--railway.topology.repair.minimal <BOOL> Repair topology of the railway network just enough to let loaded public transport lines to work; default: false
--railway.topology.repair.connect-straight <BOOL> Allow bidirectional rail use wherever rails with opposite directions meet at a straight angle; default: false
--railway.topology.repair.stop-turn <BOOL> Add turn-around connections at all loaded stops.; default: false
--railway.topology.repair.bidi-penalty <FLOAT> Penalty factor for adding new bidi edges to connect public transport stops; default: 1.2
--railway.topology.all-bidi <BOOL> Make all rails usable in both direction; default: false
--railway.topology.all-bidi.input-file <FILE> Make all rails edge ids from FILE usable in both direction
--railway.topology.direction-priority <BOOL> Set edge priority values based on estimated main direction; default: false
--railway.topology.extend-priority <BOOL> Extend loaded edge priority values based on estimated main direction; default: false
--railway.signal.guess.by-stops <BOOL> Guess signals that guard public transport stops; default: false
--railway.access-distance <FLOAT> The search radius for finding suitable road accesses for rail stops; default: 150
--railway.max-accesses <INT> The maximum road accesses registered per rail stops; default: 5
--railway.access-factor <FLOAT> The walking length of the access is computed as air-line distance multiplied by FLOAT; default: 1.5

Formats#

Option Description
--discard-params <STRING[ ]> Remove the list of keys from all params
--ignore-change-restrictions <STRING[ ]> List vehicle classes that may ignore lane changing restrictions ('all' discards all restrictions); default: authority
--osm.skip-duplicates-check <BOOL> Skips the check for duplicate nodes and edges; default: false
--osm.elevation <BOOL> Imports elevation data; default: false
--osm.layer-elevation <FLOAT> Reconstruct (relative) elevation based on layer data. Each layer is raised by FLOAT m; default: 0
--osm.layer-elevation.max-grade <FLOAT> Maximum grade threshold in % at 50km/h when reconstructing elevation based on layer data. The value is scaled according to road speed.; default: 10
--osm.oneway-spread-right <BOOL> Whether one-way roads should be spread to the side instead of centered; default: false
--osm.lane-access <BOOL> Import lane-specific access restrictions; default: false
--osm.bike-access <BOOL> Import bike lanes and fix directions and permissions on bike paths; default: false
--osm.sidewalks <BOOL> Import sidewalks; default: false
--osm.crossings <BOOL> Import crossings; default: false
--osm.turn-lanes <BOOL> Import turning arrows from OSM to help with connection building; default: false
--osm.stop-output.length <FLOAT> The default length of a public transport stop in FLOAT m; default: 25
--osm.stop-output.length.bus <FLOAT> The default length of a bus stop in FLOAT m; default: 15
--osm.stop-output.length.tram <FLOAT> The default length of a tram stop in FLOAT m; default: 25
--osm.stop-output.length.train <FLOAT> The default length of a train stop in FLOAT m; default: 200
--osm.all-attributes <BOOL> Whether additional attributes shall be imported; default: false
--osm.extra-attributes <STRING[ ]> List of additional attributes that shall be imported from OSM via osm.all-attributes (set 'all' to import all); default: all
--osm.speedlimit-none <FLOAT> The speed limit to be set when there is no actual speed limit in reality; default: 39.4444
--matsim.keep-length <BOOL> The edge lengths given in the MATSIM-file will be kept; default: false
--matsim.lanes-from-capacity <BOOL> The lane number will be computed from the capacity; default: false
--shapefile.street-id <STRING> Read edge ids from column STR
--shapefile.from-id <STRING> Read from-node ids from column STR
--shapefile.to-id <STRING> Read to-node ids from column STR
--shapefile.type-id <STRING> Read type ids from column STR
--shapefile.laneNumber <STRING> Read lane number from column STR
--shapefile.speed <STRING> Read speed from column STR
--shapefile.length <STRING> Read custom edge length from column STR
--shapefile.width <STRING> Read total edge width from column STR
--shapefile.name <STRING> Read (non-unique) name from column STR
--shapefile.node-join-dist <FLOAT> Distance threshold for determining whether distinct shapes are connected (used when from-id and to-id are not available); default: 0
--shapefile.add-params <STRING[ ]> Add the list of field names as edge params
--shapefile.use-defaults-on-failure <BOOL> Uses edge type defaults on problems; default: false
--shapefile.all-bidirectional <BOOL> Insert edges in both directions; default: false
--shapefile.guess-projection <BOOL> Guess the proper projection; default: false
--shapefile.traditional-axis-mapping <BOOL> Use traditional axis order (lon, lat); default: false
--dlr-navteq.tolerant-permissions <BOOL> Allow more vehicle classes by default; default: false
--dlr-navteq.keep-length <BOOL> The edge lengths given in the DLR Navteq-file will be kept; default: false
--vissim.join-distance <FLOAT> Structure join offset; default: 5
--vissim.default-speed <FLOAT> Use FLOAT as default speed; default: 50
--vissim.speed-norm <FLOAT> Factor for edge velocity; default: 1
--vissim.report-unset-speeds <BOOL> Writes lanes without an explicit speed set; default: false
--visum.language-file <FILE> Load language mappings from FILE
--visum.use-type-priority <BOOL> Uses priorities from types; default: false
--visum.use-type-laneno <BOOL> Uses lane numbers from types; default: false
--visum.use-type-speed <BOOL> Uses speeds from types; default: false
--visum.connector-speeds <FLOAT> Sets connector speed; default: 100
--visum.connectors-lane-number <INT> Sets connector lane number; default: 3
--visum.no-connectors <BOOL> Excludes connectors; default: true
--visum.recompute-lane-number <BOOL> Computes the number of lanes from the edges' capacities; default: false
--visum.verbose-warnings <BOOL> Prints all warnings, some of which are due to VISUM misbehaviour; default: false
--visum.lanes-from-capacity.norm <FLOAT> The factor for flow to no. lanes conversion; default: 1800
--opendrive.import-all-lanes <BOOL> Imports all lane types; default: false
--opendrive.ignore-widths <BOOL> Whether lane widths shall be ignored.; default: false
--opendrive.curve-resolution <FLOAT> The geometry resolution in m when importing curved geometries as line segments.; default: 2
--opendrive.advance-stopline <FLOAT> Allow stop lines to be built beyond the start of the junction if the geometries allow so; default: 0
--opendrive.min-width <FLOAT> The minimum lane width for determining start or end of variable-width lanes; default: 1.8
--opendrive.internal-shapes <BOOL> Import internal lane shapes; default: false
--opendrive.position-ids <BOOL> Sets edge-id based on road-id and offset in m (legacy); default: false
--opendrive.lane-shapes <BOOL> Use custom lane shapes to compensate discarded lane types; default: false
--opendrive.signal-groups <BOOL> Use the OpenDRIVE controller information for the generated signal program; default: false
--opendrive.ignore-misplaced-signals <BOOL> Ignore traffic signals which do not control any driving lane; default: false

Report#

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 or selected topics; 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", "local", "auto" or "always"); default: local
--xml-validation.net <STRING> Set schema validation scheme of SUMO network inputs ("never", "local", "auto" or "always"); default: never
-W <BOOL>
--no-warnings <BOOL>
Disables output of warnings; default: false
--aggregate-warnings <INT> Aggregate warnings of the same type whenever more than INT occur; default: -1
-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
--log.timestamps <BOOL> Writes timestamps in front of all messages; default: false
--log.processid <BOOL> Writes process ID in front of all messages; default: false
--language <STRING> Language to use in messages; default: C
--ignore-errors <BOOL> Continue on broken input; default: false
--ignore-errors.connections <BOOL> Continue on invalid connections; default: false
--show-errors.connections-first-try <BOOL> Show errors in connections at parsing; default: false
--ignore-errors.edge-type <BOOL> Continue on unknown edge types; default: false

Random Number#

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

Lefthand Networks#

By default, netconvert assumes networks to follow right-hand traffic rules. When importing importing/building a network for a jurisdiction wiht left-hand traffic, the option --lefthand must be set.

Note, that this also influences geometries if the edges which make up a two-directional road are defined using the road-center-line as geometry. In right-hand networks the lane shapes will be placed to the right of the center line whereas in left-hand networks they will be placed to the left. This means that for some edges, the same input geometries can be used to build right-hand as well as left-hand networks. However, if the edge geometries are defined using the center-line of the directional edge (attribute {{XML|1=spreadType="center"/>) then the geometries are only useable for a specific type of jurisdiction (networks with the wrong setting for --lefthand will look strange).

Warnings during Import#

Several types of warnings and errors with different levels of severity may be issued during network building.

Message Explanation Recommended Action
Error: Could not set connection ... A connection definition could not be applied because the lanes do not exist or do not share a common junction Check your input files
Warning: Removed a road without junctions ... Isolated road is removed from the network
Warning: Not joining junctions ... because the cluster is too complex The heuristic for option --junctions.join cannot handle a complex junction Inspect the mentioned nodes and provide a join-description manually.
Warning: Found angle of ... degrees An edge has an unusually sharp turn somewhere in the middle Inspect the mentioned edge for correctness. Warning may be suppressed using option --geometry.max-angle.
Warning: Warning: Found sharp turn with radius ... An edge has an unusually sharp turn where entering or leaving an intersection Inspect the mentioned edge for correctness. Problems may be corrected automatically by setting option --geometry.min-radius.fix. Warning may be suppressed by setting option --geometry.min-radius.
Warning: Intersecting left turns at junction ... The junction is very small so that left-turning vehicles from opposite directions obstruct each other Inspect the mentioned junction shape for correctness. Warning is not critical because the right-of-way model will be adapted to the conflict.
Warning: Lane '...' is not connected from any incoming edge at junction '...'. The connection layout at the junction is suspicious Inspect the mentioned junction's connections for correctness.
Warning: Lane '...' is not connected to outgoing edges at junction '...'. The connection layout at the junction is suspicious Inspect the mentioned junction's connections for correctness.
Warning: Edge / Connection '...' has a grade of ...%. There is a sharp jump in elevation in the edge or connection geometry Inspect the z values for correctness
Warning: Speed of ... connection '...' reduced by ... due to turning radius of ... (length=... angle=...) There is an unusually sharp turn relative to the road speed Check edge speed limit and junction geometry for correctness. Warning may be suppressed by setting higher threshold via option --junctions.limit-turn-speed.warn.turn <FLOAT>, --junctions.limit-turn-speed.warn.straight <FLOAT>.
Warning: For node '...': could not compute shape. The shape of the junction area could not be computed Inspect the mentioned node and maybe provide a custom node shape.
Warning: Junction shape for '...' has distance ... to its given position. The shape and location of the junction area is suspicious. Inspect the mentioned node and maybe provide a custom node shape. Warning may be suppressed by setting option --geometry.junction-mismatch-threshold.
Warning: The traffic light '...' does not control any links; it will not be build. The traffic light at the given node sits at a junction without connections or the node was removed altogether. Inspect the mentioned node if it still exists. Can usually be ignored.
Warning: Splitting vector close to end ... A geometry computation somewhere deep in the code is suspicious. Often related to computation of internal lanes at intersections with bad shape. Ignore for lack of sufficient information (or try to narrow down the problem by building smaller sections of the network).