NETCONVERT
Contents |
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 <OUTPUT_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 Formats
NETCONVERT is able to import road networks from the following formats:
- "SUMO native" XML descriptions (*.edg.xml, *.nod.xml, *.con.xml)
- OpenStreetMap (*.osm.xml), including shapes (see OpenStreetMap import)
- VISUM, including shapes and demands
- Vissim, including demands
- openDRIVE
- MATsim
- SUMO (*.net.xml)
- Shapefiles (.shp, .shx, .dbf), e.g. ArcView and newer Tiger networks
- Robocup Rescue League, including shapes
- a DLR internal variant of Navteq's GDF (Elmar format)
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 | Default Value | Description |
|---|---|---|
| -c <FILE> --configuration-file <FILE> | Loads the named config on startup | |
| --save-configuration <FILE> | Saves current configuration into FILE | |
| --save-template <FILE> | Saves a configuration template (empty) into FILE | |
| --save-schema <FILE> | Saves the configuration schema into FILE | |
| --save-commented <BOOL> | false | Adds comments to saved template, configuration, or schema |
Input
| Option | Default Value | 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 | |
| --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 |
Output
| Option | Default Value | Description |
|---|---|---|
| -o <FILE> --output-file <FILE> | The generated net will be written to FILE | |
| --plain-output-prefix <FILE> | Prefix of files to write plain xml nodes, edges and connections to | |
| --junctions.join-output <FILE> | Writes information about joined junctions to FILE (can be loaded as additional node-file to reproduce joins | |
| -M <FILE> --map-output <FILE> | Writes joined edges information to FILE | |
| --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. | |
| --output.street-names <BOOL> | false | Street names will be included in the output (if available). |
| --output.original-names <BOOL> | false | Writes original names, if given, as parameter. |
| --street-sign-output <FILE> | Writes street signs as POIs to FILE. |
Projection
| Option | Default Value | Description |
|---|---|---|
| --simple-projection <BOOL> | false | Uses a simple method for projection |
| --proj.scale <INT> | 0 | Number of places to shift decimal point to right in geo-coordinates |
| --proj.utm <BOOL> | false | Determine the UTM zone (for a universal transversal mercator projection based on the WGS84 ellipsoid) |
| --proj.dhdn <BOOL> | false | Determine the DHDN zone (for a transversal mercator projection based on the bessel ellipsoid) |
| --proj <STRING> | ! | Uses STR as proj.4 definition for projection |
| --proj.inverse <BOOL> | false | Inverses projection |
| --proj.plain-geo <BOOL> | false | Write geo coordinates in plain-xml |
Tls Building
| Option | Default Value | Description |
|---|---|---|
| --tls.discard-loaded <BOOL> | false | Does not instatiate traffic lights loaded from other formats than XML |
| --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> | false | Turns on TLS guessing |
| --tls.taz-nodes <BOOL> | false | Sets district nodes as tls-controlled |
| --tls-guess.joining <BOOL> | false | Includes node clusters into guess |
| --tls.join <BOOL> | false | Tries to cluster tls-controlled nodes |
| --tls.green.time <INT> | 31 | Use INT as green phase duration |
| -D <FLOAT> --tls.yellow.min-decel <FLOAT> | 3 | Defines smallest vehicle deceleration |
| --tls.yellow.patch-small <BOOL> | false | Given yellow times are patched even if being too short |
| --tls.yellow.time <INT> | Set INT as fixed time for yellow phase durations | |
| --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 |
Ramp Guessing
| Option | Default Value | Description |
|---|---|---|
| --ramps.guess <BOOL> | false | Enable ramp-guessing |
| --ramps.max-ramp-speed <FLOAT> | -1 | Treat edges with speed > FLOAT as no ramps |
| --ramps.min-highway-speed <FLOAT> | 21.9444 | Treat edges with speed < FLOAT as no highways |
| --ramps.ramp-length <FLOAT> | 100 | Use FLOAT as ramp-length |
| --ramps.set <STRING> | Tries to handle the given edges as ramps | |
| --ramps.no-split <BOOL> | false | Avoids edge splitting |
Edge Removal
| Option | Default Value | Description |
|---|---|---|
| --keep-edges.min-speed <FLOAT> | Only keep edges with speed in meters/second > FLOAT | |
| --remove-edges.explicit <STRING> | Remove edges in STR | |
| --keep-edges.explicit <STRING> | Only keep edges in STR | |
| --keep-edges.input-file <FILE> | Only keep edges in FILE | |
| --keep-edges.postload <BOOL> | false | Remove edges after joining |
| --keep-edges.in-boundary <STRING> | 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.by-vclass <STRING> | Only keep edges which allow one of the vclasss 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 | |
| --remove-edges.by-type <STRING> | Remove edges where type is in STR | |
| --remove-edges.isolated <BOOL> | false | Removes isolated edges |
Unregulated Nodes
| Option | Default Value | Description |
|---|---|---|
| --keep-nodes-unregulated <BOOL> | false | All nodes will be unregulated |
| --keep-nodes-unregulated.explicit <STRING> | Do not regulate nodes in STR | |
| --keep-nodes-unregulated.district-nodes <BOOL> | false | Do not regulate district nodes |
Processing
| Option | Default Value | Description |
|---|---|---|
| --ignore-errors <BOOL> | false | Continue on broken input |
| --ignore-errors.connections <BOOL> | false | Continue on invalid connections |
| --show-errors.connections-first-try <BOOL> | false | Show errors in connections at parsing |
| --lanes-from-capacity.norm <FLOAT> | 1800 | The factor for flow to no. lanes conversion. |
| --speed-in-kmh <BOOL> | false | vmax is parsed as given in km/h (some) |
| --plain.extend-edge-shape <BOOL> | false | If edge shapes do not end at the node positions, extend them |
| --matsim.keep-length <BOOL> | false | The edge lengths given in the MATSIM-file will be kept. |
| --matsim.lanes-from-capacity <BOOL> | false | The lane number will be computed from the capacity. |
| --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.use-defaults-on-failure <BOOL> | false | Uses edge type defaults on problems |
| --shapefile.all-bidirectional <BOOL> | false | Insert edges in both directions |
| --shapefile.guess-projection <BOOL> | false | Guess the proper projection |
| --vissim.join-distance <FLOAT> | 5 | Structure join offset |
| --vissim.default-speed <FLOAT> | 50 | Use FLOAT as default speed |
| --vissim.speed-norm <FLOAT> | 1 | Factor for edge velocity |
| --vissim.report-unset-speeds <BOOL> | false | Writes lanes without an explicit speed set. |
| --visum.use-type-priority <BOOL> | false | Uses priorities from types |
| --visum.use-type-laneno <BOOL> | false | Uses lane numbers from types |
| --visum.use-type-speed <BOOL> | false | Uses speeds from types |
| --visum.connector-speeds <FLOAT> | 100 | Sets connector speed |
| --visum.connectors-lane-number <INT> | 3 | Sets connector lane number |
| --visum.no-connectors <BOOL> | false | Excludes connectors |
| --visum.recompute-lane-number <BOOL> | false | Computes the number of lanes from the edges' capacities |
| --visum.verbose-warnings <BOOL> | false | Prints all warnings, some of which are due to VISUM misbehaviour |
| --osm.skip-duplicates-check <BOOL> | false | Skips the check for duplicate nodes and edges. |
| --no-internal-links <BOOL> | false | Omits internal links |
| --dismiss-vclasses <BOOL> | false | Removes vehicle class restrictions from imported edges. |
| --no-turnarounds <BOOL> | false | Disables building turnarounds |
| --no-turnarounds.tls <BOOL> | false | Disables building turnarounds at tls-controlled junctions |
| --no-left-connections <BOOL> | false | Disables building connections to left |
| --geometry.split <BOOL> | false | Splits edges across geometry nodes |
| -R <BOOL> --geometry.remove <BOOL> | false | Replace nodes which only define edge geometry by geometry points (joins edges) |
| --geometry.max-segment-length <FLOAT> | 0 | splits geometry to restrict segment length |
| --offset.disable-normalization <BOOL> | false | Turn off normalizing node positions |
| --offset.x <FLOAT> | 0 | Adds FLOAT to net x-positions |
| --offset.y <FLOAT> | 0 | Adds FLOAT to net y-positions |
| --flip-y-axis <BOOL> | false | Flips the y-coordinate along zero |
| --roundabouts.guess <BOOL> | false | Enable roundabout-guessing |
| --lefthand <BOOL> | false | Assumes left-hand traffic on the network |
| --junctions.join <BOOL> | false | Joins junctions that are close to each other (recommended for OSM import) |
| --junctions.join-dist <FLOAT> | 10 | Determines the maximal distance for joining junctions (defaults to 10) |
| --junctions.join-exclude <STRING> | Interprets STR as list of junctions to exclude from joining | |
| --speed.offset <FLOAT> | 0 | Modifies all edge speeds by adding FLOAT |
| --speed.factor <FLOAT> | 1 | Modifies all edge speeds by multiplying FLOAT |
| --tls.join-dist <FLOAT> | 20 | Determines the maximal distance for joining traffic lights (defaults to 20) |
Building Defaults
| Option | Default Value | Description |
|---|---|---|
| -L <INT> --default.lanenumber <INT> | 1 | The default number of lanes in an edge |
| -S <FLOAT> --default.speed <FLOAT> | 13.9 | The default speed on an edge (in m/s) |
| -P <INT> --default.priority <INT> | -1 | The default priority of an edge |
Report
| Option | Default Value | Description |
|---|---|---|
| -v <BOOL> --verbose <BOOL> | false | Switches to verbose output |
| -p <BOOL> --print-options <BOOL> | false | Prints option values before processing |
| -? <BOOL> --help <BOOL> | false | Prints this screen |
| -V <BOOL> --version <BOOL> | false | Prints the current version |
| -X <BOOL> --xml-validation <BOOL> | false | Enable schema validation of XML inputs |
| -W <BOOL> --no-warnings <BOOL> | false | Disables output of warnings |
| -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 |
Random Number
| Option | Default Value | Description |
|---|---|---|
| --random <BOOL> | false | Initialises the random number generator with the current system time |
| --seed <INT> | 23423 | Initialises the random number generator with the given value |