We are happy to announce the release of SUMO version 1.25.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.17594250 (https://doi.org/10.5281/zenodo.17594250)
This release brings new features for routing (preferences, thresholds) and makes it easier to build small road networks that can be extended later. It also fixes many bugs.
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
- Additional files now support element <preference> which can be used to influence routing preference for different vClasses and vTypes (also for duarouter)
- Added options --device.rerouting.threshold.factor and --device.rerouting.threshold.constant to avoid routing if the improvement in travel time is too low
- Added option --person-fcd-output to separate the outputs of vehicles and persons. This also leads to cleanar tabular outputs (csv, parqet)
- edgeData output now includes attribute 'flow'
- netedit
- Gui setting 'show route index' and 'show stop info' now works for inspected routes and vehicles
- tazRelation width can now be scaled by attribute
- Data coloring (and scaling) settings can now be saved and loaded
- Saving files now supports 'apply to all'
- meanData mode now permits setting edgeData type (i.e. to create edge-emission-output)
- Implemented Dialog for a subset of crashes to simplify reporting from end user to developer.
- duarouter
- Added option --keep-flows to avoid expanding flows into individual vehicles
- Option --weights.reversal-penalty can now be used to configure a penalty for train reversal when routing. A negative value disables reversals (also applies to sumo)
- netconvert
- Added option --output.removed-nodes which preserves ids of nodes that were removing during simplification with --geometry.remove
- Added option --junctions.attach-removed which can be used to merge networks that were processed with option --output.removed-nodes and correctly re-attach at removed junctions
- Option --junctions.join-same now supports setting the matching distance for joining
- Added new edge attribute routingType which can be used to influence routing together with the new <preference> element
- Element <split> now supports attribute offset to customize the lateral offset of newly created lanes
- Node attribute roundabout="0" can now be used to declare that a junction shall not be classified as a roundabout
- tools
- randomTrips.py: options --flows and --route-file now writes flows and runs much faster
- generateDetectors.py: Added option --edge-probability to allow randomization per edge
- instantOutToEdgeData.py: new tool to convert induction loop output to edgeData
- createOvertakingReroutes.py: new tool for building railway rerouters
- tazRel2POI.py: new tool for visualizing taz relations
## Bugfixes
- sumo
- Fixed invalid consumption/emissions when loading and unloading persons/containers (regression in 1.22.0)
- Fixed inflated density in lane/edgeData output
- Fixed cases where vehicles would repeatedly fail to decide between overtaking left or right when the middle lane is blocked.
- Fixed bug where taxi dispatcher creates invalid route
- Left-turning vehicles no longer slow down for outgoing crossing when in a protected (green major) phase
- Fixed emergency braking at junctions
- netedit
- Fixed invalid Id when joining traffic light junctions multiple times (regression in 1.11.0)
- Removed invalid elements from additional-mode element selector (regression in 1.11.0)
- Fixed missing 'allow="authority' attribute in closingReroute (regression in 1.11.0)
- Rectangle selection of edges no longer selects additional objects (regression in 1.20.0)
- Hints when moving/creating geometry points are working again (regression in 1.20.0)
- Fix invalid contour of rerouter intervals when inspecting (regression in 1.20.0)
- Fixed inconsistencies when using 'mark as front element' (regression in 1.22.0)
- POI locator sorts IDs again (regression in 1.22.0)
- E2 detectors can be moved again (regression in 1.22.0)
- Tool tip in inspect mode and create-object mode for mouse-over-attribute are working again (regression in 1.22.0)
- Adding members to a vTypeDistribution is workign again (regression in 1.23.0)
- Turnaround connections are now visible for bidi-rail edges (again) (regression in 1.23.1)
- Fixed invalid file contents when saving a vTypeDistribution under a new demand file name (regression in 1.24.0)
- netgenerate dialog no longer fails when the output file path contains spaces
- netconvert
- Fixed crash when importing OSM data with public transport relations that reference unknown nodes (regression in 1.24.0)
- Fixed invalid roundabout detection at junction cluster (regression in 1.24.0)
- Fixed inconsistent behavior involving spreadType
- Sidewalks and bike-lanes are now discounted when computing junctionPriorities
- Fixed invalid ptstop-output when loading stops and splits
- Fixed bug where intersection rules changed on re-import
- sumo-gui
- Rerouter notification edges are visible again for rerouters created in netedit (with attribute 'pos') (regression in 1.22.0)
- Fixed bug where an unrelated vehicle becomes selected after a selected vehicle has left the simulation
- Fixed crash when running while having network parameter window open (meso)
- Settings dialog now cancels changes on ESC
- Vehicles on edges that are shorter than their geometrical length are no longer exaggerated lengthwise
- Rerouter ids are now shown
- meso
- edgeData with withInternal="true" no longer contains internal edges (regression in 1.6.0)
- Fixed invalid edgeData output with aggregated="true"
- Fixed invalid speed in edgeData when using a speed calibrator
- duarouter
- Fixed inconsistent default personTrip arrivalPos
- Fixed invalid error when using option --bulk-routing
- Option --ignore-errors can now filter out loaded routes that violate edge permissions
- option --keep-vtype-distributions ist now working for flows
- TraCI: Fixed exaggerated slowDown after the end of the desired slowDown duration (regression in 1.23.0)
- tools: abstractRail.py: fixed multiple issues that were causing invalid geometry
## Miscellaneous
- Option --junctions.join-same whas changed from type BOOL to type FLOAT and now requires a distance argument. The previous behavior can be approximated by setting a value of 0.01
- Command line output under Windows now uses UTF charset
- Automatic rerouting will no longer take place if the new route has the same travel time as the old route.
- Vehicles with the bluelight device no longer set prefered lateral alignment to 'arbitrary'
- flowrouter.py option --vclass now defaults to 'passenger' (to avoid invalid routes in multimodal networks)
- duaIterate.py: option --gzip is enabled by default. Option --no-gzip may be used for the old behavior.
Have fun with the new release,
Micha, Robert, Jakob, Yun-Pang, Pablo and Angelo