Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[sumo-announce] SUMO 1.9.0 released

Dear friends and users,
we are happy to announce the release of SUMO version 1.9.0.
The download links are at

This release brings you a wide array of new options, input elements
and tools. It also brings the long-promised compatibility of sublane-model and
opposite-direction driving, fixing many bugs related to both topics in the
process. Another area with improvements is taxi/DRT simulation.

There are many more features and fixes in this release and the most important ones are listed below. For a full list of changes, as always see

=== Enhancements ===

- Simulation
  - Sublane model can now be used together with overtaking through the opposite direction.
  - Added new option --collision-output to write information on collisions to an XML file.
  - Added option --fcd-output.attributes to set the list of attributes which are included in fcd-output.
  - Taxi device now supports option [stop|randomCircling] to control the behavior of idle taxis.
  - Added vehicle attribute 'arrivalEdge' and 'departEdge' which can be used to start/end the route with an edge index offset
  - Now supporting element <containerFlow> to define multiple containers.
  - PersonFlow now supports attribute begin="triggered" number="..." to start a number of persons in the same vehicle.
  - Added option --device.battery.track-fuel to track fuel level for other fuels besides electricity
  - Added option --stop-output.write-unfinished to write stops that are not ended at simulation end.
  - Vehicle Class specific speed limits are now interpolated onto junctions.
- sumo-gui
  - Vehicle lengths will now be scaled according to custom edge lengths to avoid confusing visual overlap. A new vehicle visualization setting checkbox 'scale length with geometry' is provided to disable scaling.
  - Asymmetrical lane-change restrictions are now indicated by a combination of broken and unbroken divider lines.
  - Add vehicle drawing style 'draw as circles'.
  - BusStop parameter dialog now includes a summary of lines which are being waited for.
  - Improved visualization of containers waiting at containerStop.
- netedit
  - In move mode, exact coordinates for a geometry point can be set via right-click menu.
  - Selected edges and junctions can now be moved in z-direction (absolutely or relatively) via move mode frame controls.
  - Shapes of selected edges can now be shifted orthogonally to their driving direction via move mode frame controls.
  - Polygons can now be moved without changing their shape (with new move mode checkbox).
  - Lane attribute 'type' can now be edited.

- netconvert
  - Lanes and connections now support attributes 'changeLeft' and 'changeRight' to configure lane-change restrictions.
  - Lane changing restrictions are now imported from OSM. To achieve legacy behavior, set option --ignore-change-restrictions all.
  - Element <laneType> is now supported in an edge <type> to pre-configure speed, width and permissions for individual lanes.
  - Using options --junctions.join-same --edges.join can now be used to merge overlapping networks with modified ids
  - Public transport edges that are disconnected from the main road network (in particular railways) are now included in the output when using option --keep.edges.components 1 as long as they have public transport stops that are written via option --ptstop-output.
  - The behavior of option --geometry.remove (merging subsequent edges with common attributes) no longer depends on written --ptstop-output (stops will be remapped onto merged edges). To enable legacy behavior, the option --geometry.remove.keep-ptstops may be set.
  - Added option --osm.extra-attributes to import additional edge attributes (osm tags) as generic parameters.
  - Option --output.street-names is now working for  VISUM network.
- marouter has new option --ignore-taz to route individual trips written by od2trips between their assigned edges.
- od2trips has new option --junctions which interprets the loaded source and sink ids as fromJunction and toJunction ids.
- dfrouter has new option --vclass to filter eligible edges in a multi-modal network.

- TraCI
  - libtraci is now the "officially supported" library for the Java, Python and C++ TraCI clients, providing (functional) identical interfaces for all three languages. TraaS and the old C++ TraCI API are considered deprecated.
  - Added function 'traci.simulation.getCollisions' to retrieve a list of collision objects for the current time step.
  - vehicle.dispatchTaxi now supports re-dispatching a taxi that is already in pickup or occupied mode.
  - Vehicles that are accumulating insertion delay can now be retrieved using the functions 'traci.simulation.getPendingVehicles', 'traci.edge.getPendingVehicles' and 'traci.lane.getPendingVehicles.
  - Taxi customers (including those that shall be picked up but are not yet on board) can now be retrieved using traci.vehicle.getParameter(vehID, "").
  - The reservation objects returned by traci.person.getTaxiReservations now includes persons that are eligible for re-dispatch and includes the state of the reservation (new, assigned, on board).
  - Added function 'traci.person.splitTaxiReservation' to transport pre-made groups with multiple vehicles.

- Tools
  - Added tools to support GTFS import.
  - The tool can be used to generated a grid of districts (TAZs) for a given network.
  - Added new tool to split route files into random subsets.
  - Added new tool to add/change/remove xml attributes.
  - Added new tool to compute running occupancy of parking ares from stop-output.
  - now supports SSAM trajectories.

=== Bugfixes ===
- Simulation
  - Many sublane model fixes and opposite-direction-driving fixes (collisions, deadlocks, ...)
  - Fixed collisions between pedestrians and vehicles on shared space
  - Fixed emergency stop when vehicles are caught in the "Yellow Light Dilemma Zone".
  - Fixed bug where an emergency vehicle does not advance in the rescue lane.
  - Fixed emergency braking when approaching zipper link.
  - Vehicle type attribute containerCapacity is now supported when using taxi device for container logistics
  - Fixed invalid chargingSstation-output in subsecond simulation
  - Fixed invalid jam-front back-propagation speed in meso simulation. (Regression in 1.7.0)
- netedit
  - Fixed invalid E2 detector shape  (Regression in 1.7.0)
  - Fixed invalid rendering layer of polygons below roads.  (Regression in 1.7.0)
- netconvert
  - Fixed duplicate public transport stops when importing public transport lines from OSM.
  - Fixed high running time when using option --geometry.remove on large networks.
  - Fixed missing bus-permissions when importing OSM.
- dfrouter now supports intermodal networks
- now generates multi-stage plans when combining option --intermediate with options that generated persons (i.e. --persontrips).
- Fixed "Error: Cannot get file attributes" when loading large files on Windows and macOS.
- sumo-gui: Fixed long pause on right-click in large networks. (Regression in 1.4.0)
- TraCI
  - Fixed several crashes
  - Fixed several problems when calling simulation.loadState
  - Function 'vehicle.getSpeedWithoutTraCI' now returns original model speeds after calling moveToXY.
  - Fixed location and speed when using person.moveToXY
  - Function vehicle.getNeighbors now correctly handles neighbors that changed lane after the ego vehicle in the same simulation step.
  - Function 'trafficlight.setProgramLogic' new resets phase duration.
  - Function 'trafficlight.setPhaseDuration' now works for actuated traffic lights.
  - Fixed failure to add stop when close to the stop position (but not quite too close). Also affected taxi re-dispatch.
  - Looped taxi-dispatch now picks up persons in the intended order.
  - Fixed bug where traci.vehicle.dispatchTaxi could generate non-continuous routes.
  - Fixed invalid traceFile output.

=== Other ===

- Python3 is now the default and recommended python
- netedit: When using rectangle selection, junctions of selected edges are now added to the selection by default.
- netconvert: Parallel turn lanes are no longer written as distinct edges but are instead written as multi-lane edge with different lane lengths. As before, lane-changing on an intersection is not permitted on a turn lane.

- Tools
  - Some obsolete tools were moved to tools/purgatory (let us know if you were using them).
  - Several tools were renamed/relocated to help new users in finding the right tool and to provide an egg-hunt for long-time users (full list at
  - option -c is no longer a shortcut for option --vclass. Instead it is used to load a configuration file (written via -C).
  - option -c is no longer a shortcut for option --vehicle-classes. Instead it is used to load a configuration file (written via -C).

Have fun with the new release,
Johannes, Matthias, Michael, Yun-Pang, Angelo, Laura, Pablo, Jakob, Robert, Giuliana and Melanie.

Back to the top