Eclipse SUMO 1.20.0 Is Now Available!

Tuesday, May 7, 2024 - 06:55 by Angelo Banse

Dear friends and users,
we are happy to announce the release of SUMO version 1.20.0.
The download links are at https://sumo.dlr.de/Download.
If you cite the new release in your publications, please use the DOI
10.5281/zenodo.11120728 https://zenodo.org/records/11120728

This release brings improvements in modelling temporary blockages and OSM data handling. It also fixes a regression in netedit that was causing missing connections.
The most surprising fix was for giant motorway ring roads, mistakenly classified as roundabouts.

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 https://sumo.dlr.de/Changelog.

### Enhancements
- sumo
  - Added new vClasses: subway, scooter, aircraft, cable_car, wheelchair, drone, container 
  - chargingStation now supports attribute "parkingArea". When set, vehicles will only charge after reaching that parkingArea. 
  - Sumo now allows specifying departure and arrival positions in network or geo-coordinates
  - carFollowModel "Rail" now permits loading custom model curves for traction and resistance 
  - It is now possible to set the vehicle routing mode via xml input or option. This allows ignoring permission changes from rerouters.
  - A personFlow with depart="triggered" can now be distributed over a flow of vehicles 
  - vTypes and parkingAreas now support attribute 'parkingBadges' to control access 

- netedit
  - Improved rendering speed for large networks. 
  - Added option for selective hiding of short edges when zoomed out (enabled by default to increase frame rate) 

- sumo-gui
  - Hotkey B now sets a breakpoint at the current time. Alt+B ahead of the current time. 
  - It is now possible to set a distinct image file for each train carriage using param 'carriageImages'. 

netconvert
  - Added option -junctions.endpoint-shape to compute the junction shape based on custom edge endpoints instead of the usual geometry heuristics. 
  - Edge widths are now imported from OSM. The new option --ignore-widths can be used to restore legacy behavior.
  - OSM import now support importing restricted turn lane information (i.e. turn:bus:lanes) 
  - More rail signals are imported from OSM and option --osm.railsignals can be used for fine grained control of signal interpretation. 
  - OSM import now exports subways as vClass "subway" and aerialway as "cable_car" 
  - Now importing access="no" from OSM 

polyconvert
  - Option --osm.merge-relations now handles "holes" 
  - Improved import of waterbodies and harbours from OSM 

- duarouter: Added option --weights.tls-penalty to improve reliability of travel time. 

- TraCI / libsumo
  - Function vehicle.replaceStop(..., teleport=1) is now usable without enabling teleports (by using a "jump" to move the vehicle)
  - inductionloop.getIntervalOccupancy, getIntervalMeanSpeed and getIntervalVehicleNumber are now retrievable in meso
  - in mesosim, lane.setMaxSpeed now only affects a single queue when running with --meso-lane-queue 
  - Added functions edge.getFromJunction, edge.getToJunction, junction.getIncomingEdges, junction.getOutgoingEdges to query the network topology. 
  - The routing mode value ROUTING_MODE_INGNORE_TRANSIENT_PERMISSIONS can now be used to ignore temporary permission changes from rerouters. 
  - Added function trafficlight.getSpentDuration 

- Tools
  - added createScreenshotSequence.py to help with creating videos from a simulation with scripted view movements. 
  - tileGet.py supports downloading rendered tiles from OSM. 
  - matsim_importPlans.py now supports loading input with coordinates 
  - osmWebWizard now takes into account traffic lights for intermodal routing to avoid persons missing their ride 
  - osmWebWizard now runs with option --tls.actuated.jam-threshold 30 to improve the capabilities (and efficiency) of traffic lights 
  - ptlines2flows.py supports option --join to concatenate lines which serve opposite directions. This reduces conflict on single-track rail lines


### Bugfixes
- sumo
  - chargingstations-output no longer records charging when battery is full 
  - Fixed undefined behavior during opposite direction driving 
  - Fixed crash when loading NEMA controller with pedestrian crossings. 
  - Fixed bug where person enters the wrong vehicle on looped public transport line 
  - Fixed emergency braking in roundabout. 
  - Fixed invalid traffic demand when defining poission flows with rate below 0.001 
  - Fixed invalid pedestrian jam warning 
  - Fixed several taxi related bugs related to idling and dispatch
  - Fixed several railway related bugs related to reversal and portion working

- netedit
  - Lane markings are rendered below the junction bubble again (regression in 1.12.0)
  - The unsupported attribute "lines" is no longer written for a personTrip (regression in 1.15.0)
  - Fixed crash on undo (regression in 1.15.0)
  - Fixed invalid "save" dialog after loading additionals from file. (regression in 1.16.0)
  - The size and position of the settings dialog are now stored across sessions. (regression in 1.16.0)
  - Fixed missing connections after adding edge (regression in 1.19.0)
  - Fixed invalid warning when creating poiGeo (regression in 1.9.0)
  - Alt+Hotkeys for menus are working again (regression in 1.19.0)
  - Fixed superfluous scrollbars in combo boxes (regression in 1.19.0)
  - Fixed numerical errors in poisson flow rate (regression in 1.19.0)
  - Fixed crash when loading vTypeDistribution (regression in 1.19.0)
  - Fixed crash when trying to define ride between busStops 
  - Fixed use of python tools and saving of tool config involving space in paths 

- netcovert
  - Fixed crash when importing incomplete OSM data (regression in 1.15.0)
  - Signal state sequences (green-yellow-green) is no longer generated. 
  - Roundabouts defined explicitly in OSM now have correct right-of-way regardless of geometry. 
  - Several fixes related to NEMA controllers
  - Fixed invalid route in ptline-output. 
  - Fixed missing bus connection in OSM import. 
  - Large circular network structures are no longer misclassified as roundabout.
  - Fixed invalid walking area shape and node shapes
  - Preventing oversized junction join 
  - Increased available width on large walkingareas (avoids jamming on shared-space) 

- sumo-gui
  - Fixed wrong context menu when clicking on lane in mesosim (regression in 1.15.0)
  - Fixed visible grid in satellite background image tiles. 

- meso
  - Fixed bug where taxi fails to pick up person on the current segment. 
  - traci functions edge.setMaxSpeed and lane.setMaxSpeed now work correctly when increasing speed 
  - Fixed invalid error during intermodal routing 
  - Fixed bug where vehicles skip ahead after lane speed update 

- duarouter: Fixed invalid intermodal route on looped public transport (also affects routing in sumo) 
- od2trips: Fixed extremely high running time when loading large TAZ. 

- TraCI
  - Fixed error in trafficlight.setProgramLogic when loading actuated logic with default minDur and maxDur (regression in 1.12.0)
  - Fixed result of vehicle.getLeader for junction leaders 
  - Fixed invalid behavior after removing a stop with vehicle.replaceStop 
  - Stops are no longer lost when calling vehicle.changeTarget 
  - Fix for wrong lane occupancy calculation when minGap of vehicles is changed 

### Miscellaneous
  - Plexe: Improved whole-platoon lane change procedure. 
  - Added 6 new configuration files for the MMPEVEM model. 
  - The battery device now uses param "rotatingMass" instead of "internalMomentOfInertia". The old value has been deprecated. The default value was changed to improve realism. 


Have fun with the new release,
Johannes, Jakob, Yun-Pang, Pablo, Mirko, Benjamin, Angelo, Micha and Robert