Eclipse SUMO - Simulation of Urban MObility
Netbuild

netbuild stores a representation of the road graph (edges/nodes/...) and offers classes and methods for transferring this representation into loadable sumo networks.

The internal representation is meant to be filled by classes from the Netimport or Netgen modules.

The process of building networks is encapsulated in NBNetBuilder::compute(). Here, the following steps are performed:

  1. Removing self loops
    Removes edges which end at the node they start at using NBNodeCont::removeSelfLoops().
  2. Joining double connections
    Joins edges between same nodes using NBNodeCont::recheckEdges().
  3. Finding isolated roads (optional)
  4. Removing empty nodes and geometry nodes (optional)
    Removed nodes with no incoming/outgoing edges and nodes which can be transformed into geometry point using NBNodeCont::removeUnwishedNodes().
  5. Removing unwished edges (optional)
    If "keep-edges.postload" and "keep-edges.explicit" are set, the edges not within "keep-edges.explicit" are removed from the network using NBEdgeCont::removeUnwishedEdges().
  6. Rechecking nodes after edge removal (optional)
    If any of the edge removing options was set ("keep-edges.explicit", "remove-edges.explicit", "keep-edges.postload", "keep-edges.by-vclass", "keep-edges.input-file"), the now orphaned nodes are removed using NBNodeCont::removeUnwishedNodes().
  7. Splitting geometry edges (optional)
    If "geometry.split" is set, edge geometries are converted to nodes using NBEdgeCont::splitGeometry().
  8. Normalising/transposing node positions
    If "offset.disable-normalization", "offset.x", and "offset.y" are not set, the road graph's instances are moved to the origin.
  9. Guessing and setting on-/off-ramps
  10. Guessing and setting TLs
  11. Computing turning directions
  12. Sorting nodes' edges
  13. Guessing and setting roundabouts
  14. Computing Approached Edges
  15. Computing Approaching Lanes
  16. Dividing of Lanes on Approached Lanes
  17. Appending Turnarounds (optional)
  18. Rechecking of lane endings
  19. Computing node shapes
  20. Computing edge shapes
  21. Computing tls logics
  22. Computing node logics
  23. Computing traffic light logics

    Todo:

    Removing unwished edges: Recheck whether this can be done during loading - whether this option/step is really needed.

    Finding isolated roads: Describe

    Bug:
    Removing empty nodes and geometry nodes: Ok, empty nodes should be removed, uh? But this is only done if "geometry.remove" is set.