ECLIPSE(1)

Eclipse ๐Ÿ’– aka ECLIPSE(1), a User Commands page

okay bestie, sit down, hydrate, because this is your road network importer / builder for the traffic simulation SUMO and it's a LOT. it's literally netconvert, and there's a whole manual for it. we're doing this together ๐Ÿซถ


๐ŸŽ€ NAME ๐ŸŽ€

Eclipse โ€” the road network importer / builder for the traffic simulation SUMO. that's the whole vibe. that's the job.


โœจ SYNOPSIS โœจ

netconvert [OPTION]*

that's it. that's the incantation. give it options, get a network ๐Ÿ‘‘


๐ŸŒธ DESCRIPTION ๐ŸŒธ

Eclipse SUMO netconvert 1.27.1
Copyright (C) 2001-2026 German Aerospace Center (DLR) and others; https://sumo.dlr.de

Network importer / builder for the microscopic, multi-modal traffic simulation SUMO.

like. it takes all your road data โ€” from OSM, from shapefiles, from Navteq, whatever โ€” and it builds you an actual simulation-ready network. main character energy fr.


๐Ÿ’… Configuration Options:

the "how do we even remember all these flags" section. iconic honestly.

  • -c, --configuration-file FILE โ€” loads up the named config for you the moment you start ๐Ÿ“‚
  • -C, --save-configuration FILE โ€” saves whatever config you've currently got going into FILE
  • --save-configuration.relative โ€” forces relative paths when it's saving a config, no absolute-path drama ๐Ÿ™ˆ
  • --save-template FILE โ€” saves an empty config template into FILE
  • --save-schema FILE โ€” saves the configuration schema into FILE
  • --save-commented โ€” adds comments to whatever you just saved (template, config, or schema). cute AND helpful โœจ

๐Ÿš— Input Options:

where the roads come from. so many glow-ups available here.

  • -s, --sumo-net-file FILE โ€” reads a SUMO-net from FILE
  • -n, --node-files FILE โ€” reads XML-node defs from FILE
  • -e, --edge-files FILE โ€” reads XML-edge defs from FILE
  • -x, --connection-files FILE โ€” reads XML-connection defs from FILE
  • -i, --tllogic-files FILE โ€” reads XML-traffic light defs from FILE ๐Ÿšฆ
  • -t, --type-files FILE โ€” reads 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 so they can be embedded into the network wherever that actually applies
  • --shapefile-prefix FILE โ€” reads shapefiles (ArcView, Tiger, ...) out of the files that start with 'FILE'
  • --dlr-navteq-prefix FILE โ€” reads converted Navteq GDF data (the unsplitted Elmar-network) from the path 'FILE'
  • --osm-files FILE โ€” reads an OSM-network from the path 'FILE(s)' ๐Ÿ—บ๏ธ
  • --opendrive-files FILE โ€” reads an OpenDRIVE-network from FILE
  • --visum-file FILE โ€” reads a VISUM-net from FILE
  • --vissim-file FILE โ€” reads a VISSIM-net from FILE
  • --robocup-dir FILE โ€” reads a RoboCup-net from DIR
  • --matsim-files FILE โ€” reads a MATSim-net from FILE
  • --itsumo-files FILE โ€” reads an ITSUMO-net from FILE
  • --heightmap.shapefiles FILE โ€” reads the heightmap from an ArcGIS shapefile โ›ฐ๏ธ
  • --heightmap.geotiff FILE โ€” reads the heightmap from a GeoTIFF

๐Ÿ‘‘ Output Options:

what you get out the other side. this is where you get to be picky.

  • --write-license โ€” drops license info into every single output file you make
  • --write-metadata โ€” writes parsable metadata (configuration and whatnot) instead of comments
  • --output-prefix STR โ€” a prefix slapped onto all your output files. the special string 'TIME' gets swapped out for the current time ๐Ÿ•
  • --output-suffix STR โ€” a suffix slapped onto all your output files. the special string 'TIME' gets swapped out for the current time
  • --precision INT โ€” sets how many digits after the comma you get for floating point output
  • --precision.geo INT โ€” sets how many digits after the comma you get for lon,lat output
  • --output.compression STR โ€” defines the standard compression algorithm (currently only a thing for parquet output)
  • --output.format STR โ€” defines the standard output format when it can't just be figured out from the file name ('xml', 'csv', 'parquet')
  • --output.column-header STR โ€” how column headers get derived from attribute names ('none', 'tag', 'auto', 'plain')
  • --output.column-separator STR โ€” the separator used in CSV output
  • -H, --human-readable-time โ€” writes time values as hour:minute:second or day:hour:minute:second instead of just seconds. so much more readable, no cap
  • -o, --output-file FILE โ€” the generated net gets written to FILE
  • -p, --plain-output-prefix FILE โ€” prefix of the files that the plain xml nodes, edges and connections get written to
  • --plain-output.lanes โ€” writes out all lanes and their attributes, even the ones that aren't customized
  • --junctions.join-output FILE โ€” writes info about joined junctions into FILE (you can load that right back in as an extra node-file to reproduce the joins)
  • --prefix STR โ€” sets a prefix for edge and junction IDs
  • --prefix.junction STR โ€” sets a prefix just for junction IDs
  • --prefix.edge STR โ€” sets a prefix just for edge IDs
  • --amitran-output FILE โ€” the generated net gets written to FILE using Amitran format
  • --matsim-output FILE โ€” the generated net gets written to FILE using MATSim format
  • --opendrive-output FILE โ€” the generated net gets written to FILE using OpenDRIVE format
  • --dlr-navteq-output FILE โ€” the generated net gets written to dlr-navteq files with the given PREFIX
  • --dlr-navteq.version STR โ€” which dlr-navteq output format version to write
  • --dlr-navteq.precision INT โ€” the network coordinates get written at the output precision level you specify
  • --output.street-names โ€” street names get included in the output (when they're available) ๐Ÿ›ฃ๏ธ
  • --output.original-names โ€” writes original names as a parameter, if they were given
  • --output.removed-nodes โ€” writes the IDs of nodes removed via --geometry.remove into an edge param
  • --street-sign-output FILE โ€” writes street signs as POIs into FILE
  • --ptstop-output FILE โ€” writes public transport stops into FILE
  • --ptline-output FILE โ€” writes public transport lines into FILE
  • --ptline-clean-up โ€” cleans up pt stops that no line actually serves ๐Ÿงน
  • --parking-output FILE โ€” writes parking areas into FILE
  • --railway.topology.output FILE โ€” analyzes the topology of the railway network ๐Ÿš†
  • --polygon-output FILE โ€” writes the shapes that got embedded in the network input and that polyconvert doesn't support (OpenDRIVE)
  • --opendrive-output.straight-threshold FLOAT โ€” builds parameterized curves any time the angular change between straight segments goes over FLOAT degrees
  • --opendrive-output.lefthand-left โ€” writes lanes in lefthand networks on the left side (positive indices)
  • --opendrive-output.shape-match-dist FLOAT โ€” matches loaded shapes to the closest edge within FLOAT and exports them as road objects

๐ŸŒˆ Projection Options:

because the earth is round and your coordinate system is Not, and something has to give.

  • --simple-projection โ€” uses a simple method for projection
  • --proj.scale FLOAT โ€” scaling factor for input coordinates
  • --proj.rotate FLOAT โ€” rotation (in clockwise degrees) for input coordinates
  • --proj.utm โ€” figures out the UTM zone (for a universal transversal mercator projection based on the WGS84 ellipsoid)
  • --proj.dhdn โ€” figures out the DHDN zone (for a transversal mercator projection based on the bessel ellipsoid, aka "Gauss-Krueger")
  • --proj STR โ€” uses STR as the proj.4 definition for projection
  • --proj.inverse โ€” inverses the projection ๐Ÿ™ƒ
  • --proj.dhdnutm โ€” converts from Gauss-Krueger to UTM
  • --proj.plain-geo โ€” writes geo coordinates in plain-xml

๐Ÿ”ฅ Processing Options:

the glow-up section. this is where the raw data becomes a real, drivable network.

  • --speed-in-kmh โ€” vmax gets parsed as if it were given in km/h
  • --construction-date STR โ€” use a YYYY-MM-DD date to figure out the readiness of features that are under construction ๐Ÿšง
  • --flatten โ€” removes ALL the z-data. flat. periodt
  • --plain.extend-edge-shape โ€” if edge shapes don't end at the node positions, extends them
  • --numerical-ids โ€” remaps alphanumerical IDs of nodes and edges so that every ID is an integer
  • --numerical-ids.node-start INT โ€” remaps node IDs to integers starting at INT
  • --numerical-ids.edge-start INT โ€” remaps edge IDs to integers starting at INT
  • --reserved-ids FILE โ€” makes sure generated IDs don't collide with any of the typed IDs from FILE (sumo-gui selection file format)
  • --kept-ids FILE โ€” makes sure that objects with typed IDs from FILE (sumo-gui selection file format) don't get renamed
  • --dismiss-vclasses โ€” removes vehicle class restrictions from the imported edges
  • --geometry.split โ€” splits edges across geometry nodes
  • -R, --geometry.remove โ€” replaces nodes that only define edge geometry with geometry points (this joins edges together)
  • --geometry.remove.keep-edges.explicit STR[] โ€” makes sure the given list of edges is left completely unmodified
  • --geometry.remove.keep-edges.input-file FILE โ€” makes sure the edges in FILE are left unmodified (each id on its own line. selection files from sumo-gui also work here)
  • --geometry.remove.keep-ptstops โ€” makes sure edges that have public transport stops on them are left unmodified
  • --geometry.remove.min-length FLOAT โ€” allows merging edges that have differing attributes when their length is below min-length
  • --geometry.remove.width-tolerance FLOAT โ€” allows merging edges with differing lane widths when the difference is below FLOAT
  • --geometry.remove.max-junction-size FLOAT โ€” prevents removal of junctions whose size is above FLOAT, as defined by custom edge endpoints
  • --geometry.max-segment-length FLOAT โ€” splits geometry to restrict segment length
  • --geometry.min-dist FLOAT โ€” reduces geometry points that are too similar to each other
  • --geometry.max-angle FLOAT โ€” warns you about edge geometries that have an angle above DEGREES in successive segments
  • --geometry.max-angle.fix โ€” straightens out edge geometries that have an angle above max-angle between successive segments
  • --geometry.min-radius FLOAT โ€” warns you about edge geometries with a turning radius less than METERS at the start or the end
  • --geometry.min-radius.fix โ€” straightens edge geometries so you don't get turning radii under geometry.min-radius
  • --geometry.min-radius.fix.railways โ€” straightens edge geometries so you don't get turning radii under geometry.min-radius (railways only)
  • --geometry.junction-mismatch-threshold FLOAT โ€” warns you if the junction shape has drifted too far from the original node position
  • --geometry.check-overlap FLOAT โ€” warns you if edges overlap by more than the given threshold value
  • --geometry.check-overlap.vertical-threshold FLOAT โ€” ignores overlapping edges when they're separated vertically by the given threshold
  • --geometry.avoid-overlap โ€” modifies edge geometries to dodge overlap at junctions
  • --join-lanes โ€” joins adjacent lanes that have the same permissions and that don't allow lane-changing (think sidewalks and disallowed lanes)
  • --ptline.match-dist FLOAT โ€” matches stops that sit outside the road network to the pt line they reference, when they're below the given distance

and yeah, that's not even all of it bestie ๐Ÿ˜ญ

  • --ptstop-output.no-bidi โ€” skips automatic generation of stops on the bidi-edge of a loaded stop, bestie.
  • --geometry.max-grade FLOAT โ€” Warns you about edge geometries with a grade in % above FLOAT.
  • --geometry.max-grade.fix โ€” Smoothes edge geometries with a grade above the warning threshold. fix it, periodt ๐Ÿ’…
  • --offset.disable-normalization โ€” Turns 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. mirror moment ๐Ÿชž
  • --roundabouts.guess โ€” Enables roundabout-guessing. no cap ๐ŸŒ€
  • --roundabouts.guess.max-length FLOAT โ€” Structures with a circumference above the FLOAT threshold are not classified as roundabout.
  • --roundabouts.visibility-distance FLOAT โ€” Default visibility when approaching a roundabout.
  • --opposites.guess โ€” Enables guessing of opposite direction lanes usable for overtaking.
  • --opposites.guess.fix-lengths โ€” Ensures that opposite edges have the same length.
  • --fringe.guess โ€” Enables guessing of network fringe nodes.
  • --fringe.guess.speed-threshold FLOAT โ€” Guesses disconnected edges above the given speed as outer fringe.
  • --lefthand โ€” Assumes left-hand traffic on the network. UK/Japan main character energy ๐Ÿ‡ฌ๐Ÿ‡ง
  • --edges.join โ€” Merges edges which connect the same nodes and are close to each other. Recommended for VISSIM import, iykyk.
  • --speed.offset FLOAT โ€” Modifies all edge speeds by adding FLOAT.
  • --speed.factor FLOAT โ€” Modifies all edge speeds by multiplying by FLOAT.
  • --speed.minimum FLOAT โ€” Modifies all edge speeds to at least FLOAT.
  • --edges.join-tram-dist FLOAT โ€” Joins tram edges into road lanes with similar geometry, within FLOAT distance.

๐ŸŽ€ 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.
  • -j, --default.junctions.type STR โ€” Determines default junction type from this iconic list: [traffic_light|priority|right_before_left|left_before_right|traffic_light_right_on_red|priority_stop|allway_stop|...]. See docs/Networks/PlainXML#node_types for the deets.
  • --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'.

๐Ÿšฆ TLS Building Options ๐Ÿšฆ

  • --tls.discard-loaded โ€” Does not instantiate traffic lights loaded from other formats than plain-XML.
  • --tls.discard-simple โ€” Does not instantiate traffic lights at geometry-like nodes loaded from other formats than plain-XML.
  • --tls.set STR[] โ€” Interprets STR[] as a list of junctions to be controlled by TLS.
  • --tls.unset STR[] โ€” Interprets STR[] as a 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.taz-nodes โ€” Sets district nodes as tls-controlled.
  • --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 a 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. risky but nostalgic ๐Ÿ˜ญ
  • --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.guess-signals โ€” Interprets tls nodes surrounding an intersection as signal positions for a larger TLS. This is typical pattern for OSM-derived networks.
  • --tls.guess-signals.dist FLOAT โ€” Distance for interpreting nodes as signal locations.
  • --tls.guess-signals.slack INT โ€” Number of uncontrolled entry edges to accept and still consider the central node as a traffic light.
  • --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. glow-up time โœจ

๐Ÿ›ฃ๏ธ Ramp Guessing Options ๐Ÿ›ฃ๏ธ

  • --ramps.guess โ€” Enable ramp-guessing.
  • --ramps.guess-acceleration-lanes โ€” Guess on-ramps and mark acceleration lanes if they exist but do not add new lanes.
  • --ramps.max-ramp-speed FLOAT โ€” Treat edges with speed > FLOAT as no ramps.
  • --ramps.min-highway-speed FLOAT โ€” Treat edges with speed < FLOAT as no highways.
  • --ramps.ramp-length FLOAT โ€” Use FLOAT as ramp-length.
  • --ramps.min-weave-length FLOAT โ€” Use FLOAT as minimum ramp-length.
  • --ramps.set STR[] โ€” Tries to handle the given edges as ramps.
  • --ramps.unset STR[] โ€” Do not consider the given edges as ramps.
  • --ramps.no-split โ€” Avoids edge splitting.

๐Ÿ—‘๏ธ 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.postload โ€” Remove edges after loading, patching and joining.
  • --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-edges.by-vclass STR[] โ€” Only keep edges which allow one of the vclasses in STR[].
  • --remove-edges.by-vclass STR[] โ€” Remove edges which allow only vclasses from STR[].
  • --keep-edges.by-type STR[] โ€” Only keep edges where type is in STR[].
  • --keep-edges.components INT โ€” Only keep the INT largest weakly connected components.
  • --remove-edges.by-type STR[] โ€” Removes every edge whose type is in STR[]. ๐Ÿ’… bye bye, edge bestie
  • --remove-edges.isolated โ€” Removes isolated edges โ€” like, no connections? not on my watch ๐Ÿซถ
  • --keep-lanes.min-width FLOAT โ€” Only keeps lanes with width in meters greater than FLOAT. โœจ skinny lanes can go

Unregulated Nodes Options ๐Ÿ’–

  • --keep-nodes-unregulated โ€” All nodes will be unregulated. literally every single one, no cap ๐Ÿ‘‘
  • --keep-nodes-unregulated.explicit STR[] โ€” Do not regulate the 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</p> FLOAT (m/s). ๐Ÿšฆ
  • --junctions.left-before-right โ€” Build left-before-right junctions instead of right-before-left junctions. plot twist ๐Ÿ’…
  • --no-internal-links โ€” Omits internal links. poof, gone โœจ
  • --no-turnarounds โ€” Disables building turnarounds. periodt ๐Ÿ›‘
  • --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 junctions with a dedicated turning lane. ๐Ÿ›ฃ๏ธ
  • --no-turnarounds.fringe โ€” Disables building turnarounds at fringe junctions. ๐ŸŒฟ
  • --no-left-connections โ€” Disables building connections to left. left? denied ๐Ÿ™…โ€โ™€๏ธ
  • --junctions.join โ€” Joins junctions that are close to each other (recommended for OSM import). bestie, this is the OSM import glow-up ๐Ÿซถ
  • --junctions.join-dist FLOAT โ€” Determines the maximal distance for joining junctions (defaults to 10). ๐Ÿ“
  • --junctions.join.parallel-threshold FLOAT โ€” The angular threshold in degrees for rejection of parallel edges when joining junctions. ๐Ÿ“
  • --junctions.join-exclude STR[] โ€” Interprets STR[] as list of junctions to exclude from joining. ๐Ÿšซ
  • --junctions.join-same FLOAT โ€” Joins junctions that have similar coordinates even if not connected. twin flames but for coordinates ๐Ÿ‘ฏ
  • --junctions.join-reset โ€” Reset connections for joined junctions. fresh start โœจ
  • --junctions.attach-removed FLOAT โ€” Attach junction to the closest edge within FLOAT distance that has its id in param removedNodeIDs (for joining networks). ๐Ÿ”—
  • --max-join-ids INT โ€” Abbreviate junction or TLS id if it joins more than INT junctions. short king behavior ๐Ÿ‘‘
  • --junctions.corner-detail INT โ€” Generate INT intermediate points to smooth out intersection corners. soft corners, soft life ๐ŸŒธ
  • --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. s-curve slay ๐Ÿ
  • --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. โš ๏ธ tradeoffs, bestie
  • --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. max it out ๐Ÿ’…
  • --junctions.minimal-shape โ€” Build junctions with minimal shapes (ignoring edge overlap). minimalism era ๐ŸŽ€
  • --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). roundabout chaos theory ๐ŸŒ€
  • --check-lane-foes.all โ€” Allow driving onto a multi-lane road if there are foes on other lanes (everywhere). everywhere, bestie ๐Ÿ˜ญ

Pedestrian Options ๐Ÿšถโ€โ™€๏ธ๐Ÿ’–

  • --sidewalks.guess โ€” Guess pedestrian sidewalks based on edge speed. psychic sidewalk vibes ๐Ÿ”ฎ
  • --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. permissions said yes, so we say yes ๐Ÿซถ
  • --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. crossing couture โœจ
  • --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. roundabout royalty ๐Ÿ‘‘
  • --walkingareas โ€” Always build walking areas even if there are no crossings. walking area main character energy ๐Ÿšถโ€โ™€๏ธ
  • --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. bike lane intuition ๐Ÿ”ฎ
  • --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. permission granted, bestie โœ…
  • --bikelanes.guess.exclude STR[] โ€” Do not guess bikelanes for the given list of edges. ๐Ÿšซ

Railway Options ๐Ÿš‚๐Ÿ’œ

  • --railway.signals.discard โ€” Discard all railway signal information loaded from other formats than plain-xml. plain-xml only, periodt ๐Ÿ“ฆ
  • --railway.topology.repair โ€” Repair topology of the railway network. glow-up time ๐Ÿ› ๏ธ
  • --railway.topology.repair.minimal โ€” Repair topology of the railway network just enough to let loaded public transport lines to work. minimal effort, maximal function ๐Ÿ’…
  • --railway.topology.repair.connect-straight โ€” Allow bidirectional rail use wherever rails with opposite directions meet at a straight angle. straight angle? bidirectional. slay ๐Ÿ“
  • --railway.topology.repair.stop-turn โ€” Add turn-around connections at all loaded stops. ๐Ÿ”„
  • --railway.topology.repair.bidi-penalty FLOAT โ€” Penalty factor for adding new bidi edges to connect public transport stops. โš–๏ธ
  • --railway.topology.all-bidi โ€” Make all rails usable in both direction. both ways, no cap ๐Ÿš‚๐Ÿš‚
  • --railway.topology.all-bidi.input-file FILE โ€” Make all rails edge ids from FILE usable in both direction. ๐Ÿ“„
  • --railway.topology.direction-priority โ€” Set edge priority values based on estimated main direction. main character direction ๐Ÿ‘‘
  • --railway.topology.ptline-priority STR[] โ€” Set edge priority values based on public transport lines for the given list of vClasses. vClasses besties ๐ŸšŒ
  • --railway.topology.extend-priority โ€” Extend loaded edge priority values based on estimated main direction. extend it, periodt โœจ
  • --railway.geometry.straighten โ€” Move junctions to straighten a sequence of rail edges. no more wonky rails ๐Ÿ“
  • --railway.signal.guess.by-stops โ€” Guess signals that guard public transport stops. ๐Ÿ”ฎ
  • --railway.signal.guess.by-stops.split โ€” Split edges to improve positioning of guessed signals and prevent switches as rail_signals. rail_signals stays iconic ๐Ÿšฆ
  • --railway.signal.permit-unsignalized STR[] โ€” List rail classes that may run without rail signals. no signals? allowed for these classes ๐ŸŽ€
  • --railway.access-distance FLOAT โ€” The search radius for finding suitable road accesses for rail stops. ๐Ÿ”Ž
  • --railway.max-accesses INT โ€” The maximum road accesses registered per rail stops. maxxed out ๐Ÿšง
  • --railway.access-factor FLOAT โ€” The walking length of the access is computed as air-line distance multiplied by FLOAT. ๐Ÿšถโ€โ™€๏ธ๐Ÿ“

Formats Options ๐Ÿ“‚โœจ

  • --discard-params STR[] โ€” Remove the list of keys from all params. ๐Ÿ—‘๏ธ
  • --ignore-change-restrictions STR[] โ€” List vehicle classes that may ignore lane changing restrictions ('all' discards all restrictions). 'all' means chaos mode ๐Ÿ˜ญ
  • --ignore-widths โ€” Whether lane widths shall be ignored. widths? ignored ๐Ÿ‘€
  • --osm.skip-duplicates-check โ€” Skips the check for duplicate nodes and edges. duplicate? don't care, didn't ask ๐Ÿ™ˆ
  • --osm.elevation โ€” Imports elevation data. up and down vibes ๐Ÿ”๏ธ
  • --osm.layer-elevation FLOAT โ€” Reconstruct (relative) elevation based on layer data. Each layer is raised by FLOAT m. ๐Ÿ“š
  • --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. 50km/h core ๐Ÿš—
  • --osm.oneway-spread-right โ€” Whether one-way roads should be spread to the side instead of centered. side quest ๐Ÿ›ฃ๏ธ
  • --osm.lane-access โ€” Import lane-specific access restrictions. ๐Ÿšง
  • --osm.bike-access โ€” Import bike lanes and fix directions and permissions on bike paths. bike glow-up ๐Ÿšฒโœจ
  • --osm.sidewalks โ€” Import sidewalks. ๐Ÿšถโ€โ™€๏ธ
  • --osm.oneway-reverse-sidewalk โ€” Default to building two sidewalks on oneway streets (may affect divided roads). โš ๏ธ maybe affects divided roads, bestie
  • --osm.crossings โ€” Import crossings. ๐Ÿšธ
  • --osm.turn-lanes โ€” Import turning arrows from OSM to help with connection building. arrows slay โžก๏ธ
  • --osm.stop-output.length FLOAT โ€” The default length of a public transport stop in FLOAT m. ๐Ÿš
  • --osm.stop-output.length.bus FLOAT โ€” The default length of a bus stop in FLOAT m. ๐ŸšŒ
  • --osm.stop-output.length.tram FLOAT โ€” The default length of a tram stop in FLOAT m. ๐ŸšŠ
  • --osm.stop-output.length.train FLOAT โ€” The default length of a train stop in FLOAT m. ๐Ÿš†
  • --osm.railsignals STR[] โ€” Specify custom rules for importing railway signals. custom rules era ๐Ÿšฆ
  • --osm.all-attributes โ€” Whether additional attributes shall be imported. all the attributes, no cap ๐Ÿ’…
  • --osm.extra-attributes STR[] โ€” extra attributes bestie, like a whole list of them, that get imported from OSM through osm.all-attributes (set it to 'all' if you want literally everything imported ๐ŸŒ)
  • --osm.speedlimit-none FLOAT โ€” the speed limit to use when there's, uh, actually no real speed limit in reality
  • --osm.annotate-defaults โ€” do we want edges to carry info about whether typemap defaults got used? this says yes
  • --matsim.keep-length โ€” the edge lengths that came in the MATSim file stay exactly as they are, no touchy ๐Ÿšซ
  • --matsim.lanes-from-capacity โ€” the lane number gets computed from the capacity
  • --shapefile.street-id STR โ€” read edge ids from column STR
  • --shapefile.from-id STR โ€” read from-node ids from column STR
  • --shapefile.to-id STR โ€” read to-node ids from column STR
  • --shapefile.type-id STR โ€” read type ids from column STR
  • --shapefile.laneNumber STR โ€” read lane number from column STR
  • --shapefile.speed STR โ€” read speed from column STR
  • --shapefile.length STR โ€” read custom edge length from column STR
  • --shapefile.width STR โ€” read total edge width from column STR
  • --shapefile.name STR โ€” read that (non-unique) name from column STR
  • --shapefile.node-join-dist FLOAT โ€” distance threshold for deciding whether distinct shapes are connected (used when from-id and to-id aren't available)
  • --shapefile.add-params STR[] โ€” add that list of field names as edge params
  • --shapefile.use-defaults-on-failure โ€” falls back on edge type defaults when things go wrong
  • --shapefile.all-bidirectional โ€” insert edges in both directions, both ways, periodt
  • --shapefile.guess-projection โ€” guess the proper projection
  • --shapefile.traditional-axis-mapping โ€” use traditional axis order (lon, lat)
  • --dlr-navteq.tolerant-permissions โ€” allow more vehicle classes by default
  • --dlr-navteq.keep-length โ€” the edge lengths from the DLR Navteq-file stay untouched
  • --vissim.join-distance FLOAT โ€” structure join offset
  • --vissim.default-speed FLOAT โ€” use FLOAT as the default speed
  • --vissim.speed-norm FLOAT โ€” factor for edge velocity
  • --vissim.report-unset-speeds โ€” writes out lanes that don't have an explicit speed set
  • --visum.language-file FILE โ€” load language mappings from FILE
  • --visum.use-type-priority โ€” uses priorities from types
  • --visum.use-type-laneno โ€” uses lane numbers from types
  • --visum.use-type-speed โ€” uses speeds from types
  • --visum.connector-speeds FLOAT โ€” sets connector speed
  • --visum.connectors-lane-number INT โ€” sets connector lane number
  • --visum.no-connectors โ€” excludes connectors entirely ๐Ÿ™…
  • --visum.recompute-lane-number โ€” computes the number of lanes from the edges' capacities
  • --visum.verbose-warnings โ€” prints all the warnings, and some of those are literally just VISUM misbehaving ๐Ÿ˜ญ
  • --visum.lanes-from-capacity.norm FLOAT โ€” the factor for flow โ†’ number-of-lanes conversion
  • --opendrive.import-all-lanes โ€” imports all lane types
  • --opendrive.curve-resolution FLOAT โ€” the geometry resolution in m when importing curved geometries as line segments
  • --opendrive.advance-stopline FLOAT โ€” lets stop lines be built beyond the start of the junction, if the geometries allow it
  • --opendrive.min-width FLOAT โ€” the minimum lane width for figuring out the start or end of variable-width lanes
  • --opendrive.internal-shapes โ€” import internal lane shapes
  • --opendrive.position-ids โ€” sets edge-id based on road-id and offset in m (legacy, iykyk)
  • --opendrive.lane-shapes โ€” use custom lane shapes to compensate for discarded lane types
  • --opendrive.signal-groups โ€” use the OpenDRIVE controller information for the generated signal program
  • --opendrive.ignore-misplaced-signals โ€” ignore traffic signals that don't control any driving lane

๐Ÿ‘‘ Report Options

  • -v, --verbose โ€” switches to verbose output, so you see literally everything
  • --print-options โ€” prints option values before processing
  • -?, --help โ€” prints this screen, or selected topics if you give it topics
  • -V, --version โ€” prints the current version
  • -X, --xml-validation STR โ€” set the schema validation scheme for XML inputs ("never", "local", "auto" or "always")
  • --xml-validation.net STR โ€” set the schema validation scheme for SUMO network 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 of them show up
  • -l, --log FILE โ€” writes all messages to FILE (and yes, this implies verbose)
  • --message-log FILE โ€” writes all non-error messages to FILE (implies verbose too)
  • --error-log FILE โ€” writes all warnings and errors to FILE
  • --log.timestamps โ€” writes timestamps in front of all messages
  • --log.processid โ€” writes the process ID in front of all messages
  • --language STR โ€” language to use in messages ๐ŸŒ
  • --ignore-errors โ€” continue on broken input, we stay unbothered ๐Ÿ’…
  • --ignore-errors.connections โ€” continue on invalid connections
  • --show-errors.connections-first-try โ€” show errors in connections at parsing
  • --ignore-errors.edge-type โ€” continue on unknown edge types

๐ŸŽฒ 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

okay bestie, here's how it actually looks in the wild:

netconvert -c <CONFIGURATION>

generate net with options read from file โœจ

netconvert -n ./nodes.xml -e ./edges.xml -v -t ./owntypes.xml

generate net with given nodes, edges, and edge types doing verbose output


๐Ÿซถ REPORTING BUGS

Found a bug? That's on purpose so we can fix it (jk). Report bugs at https://github.com/eclipse-sumo/sumo/issues. ๐Ÿ’–

Get in contact via sumo@dlr.de.

Build features: Linux-6.8.0-139-generic x86_64 GNU 15.3.0 None FMI Proj GUI Intl SWIG Eigen GDAL FFmpeg OSG GL2PS

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


Eclipse SUMO netconvert 1.27.1 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


and that's the whole page, bestie ๐Ÿ’– this was Eclipse SUMO netconvert 1.27.1, dated August 2026, filed under ECLIPSE(1) โ€” go build some iconic networks, no cap ๐ŸŽ€โœจ

๐Ÿ“ฆ where this page comes from