Fixed crash when using rail signal on shared lane #16219 (regression in 1.22.0)
Fixed invalid waitingTime in personinfo output #16164
Fixed failure to overtake two parallel stopped leaders #16232
Fixed invalid error when departing with fixed speed and large offset from best lane #16244
netedit
Fixed invalid connections after using reset connections#16127
netconvert
Fixed invalid link state when straight connection passes a crossing after internal junction #16167
Option --bikelanes.guess no longer impacts loaded connection attributes #16196
Fixed invalid right of way rules / junction type when shared tram lanes crosses another tram line #16215
Fixed bug where stops loaded with option --ptstop-files were renamed #16220
failure to map elevation to a network with z-data #16235
TraCI
Setting vehicle parameter 'lcContRight' is now working #16147
Fixed bug where traci.vehicle.moveToXY matched onto the wrong internal lane #15282
Fixed bug where vehicle.slowDown require and additional simulation step to reach the taget speed and vehicle.setAcceleration was achieving the wrong acceleration #7361
Fixed invalid active person count after person removal #16192
person.removeStage now works for a taxi-driving stage if the taxi is already en route to pick-up #11620
departPos=stop now works for any departLane on the stop edge #16133
Pedestrians are now included in full output #16159
Added stop attribute jumpUntil to set a minimum time for the end of a jump #16153
Tram insertion automatically uses moving-block mode when there are no rail signals for tram in the network #16208
netconvert
Added option --junctions.join.parallel-threshold DEGREES to increase user control over joining junctions (with --junctions.join) #16140
Added option --osm.annotate-defaults to document whether speed and lane number were based on OSM data or typemap default values #16094
Trams now use safe and efficient zipper merging where possible when no tram rail signals are defined. Option ** --railway.signal.permit-unsignalized** can be used to configure other vClasses that are subject to this behavior #16216
Added warning when a taz has no source or sinks #16112
TracI
vehicle.setSpeedMode now supports a 7th bit to control adherence to the road speed limit #3811
traci.start now supports argument traceGetters="print". When this is set, the generated traceFile will print the outputs of all get commands when replayed. #16156
netcheck.py: Added option --right-of-way to find selected cases of faulty right-of-way rules (currently only on-ramps are check) #16036
jtcrouter.py: Added option --additional-files which are passed to [jtrrouter.md] #16191
csv2xml.py: Added option --flat to convert arbitrary csv files without a schema #16204
plotXMLAttributes.py: Added option --xstr and --ystr to force data interpretation as category #16205
sumolib: function xml.parse is now useful when loading nested elements and not providing argument element_names. The new attribute outputLevel (default 1) controls which elements to retrieve #16211
remap_additionals.py: convert infrastructure from one network to another network (which may differ in geometry, lanes and edge splits) #16206
ptlines2flows.py: now sorts written routes and flows by id #16222
Fixed crash when route contains internal edge #15667
Fixed invalid error when using jump after stopping twice on the same edge #15635
Fixed invalid value of diagnostic param 'caccVehicleMode' when using carFollowModel CACC#15682
Fixed invalid speedErr computation for carFollowModel CACC#15683
Actuated traffic light that use the next attribute to skip phases now work correctly if the targeted green phase serves no traffic but leads to a subsequent phase which does #15716
Fixed invalid approach speed at allway_stop when setting lane-stopOffset #15449
Fixed crash when using stop with coordinates and option --mapmatch.junctions#15740
Fixed emergency braking at allway_stop in subsecond simulation #15728
Configuring number of doors now takes effect for JuPedSim #15562
Fixed collision between vehicles and pedestrians involving lanes of different widths #15770
Fixed train collision in network without rail signals #15797
Pedestrians no longer walk onto rail_crossing at yellow #15808
Selection mode function 'select parents' now selects incoming and outgoing lane of selected connections #15968
Fixed invalid weights loading values of TAZ source/sinks #16037
Fixed "freezing" when handling very large TAZ #15844
Fixed bug when saving toolcfg where the tool uses positional arguments #16075
Reloading a demand file now raises warnings rather than errors #16027
Deleting one edge no longer removes crossings from other edges #16017
Fixed selecting TAZ edges with a small selection #16100
Command line options --new -o OUTPUT_FILE is now working together. #14989
sumo-gui
Fixed framerate drop when zoomed in very far #15666
Fixed missing elements in settings dialog when switching to another viewing scheme while the dialog is open #15637
Hotkey ALT no longer has the effect of rendering all POIs and polygons at layer 0. Instead, the layer can be customized in the settings dialog #15558
Fixed invalid breakpoints when clicking time stamps on messages in meso #15780
Fixed invalid travel time when computing pedestrian reachability in a non-pedestrian network #15792
Fixed invalid travel times when computing pedestrian and bicycle reachability #15793
Saving and loading of meso edge scaling scheme is now working #15902
edgedata-file parsing no longer aborts after encountering a single non-numerical attribute #15903
The rainbow colorscheme is now properly stored in gui settings #16080
netconvert
Fixed invalid extra connections from edge where input specifies "no connections" #15944 (regression in 1.2.0)
Fixed invalid sign of geo-coordinate offset in OpenDRIVE input and output #15624
Fixed bug where right-of-way rules could create deadlock at a traffic light #15150
Fixed bug when removing narrow lanes during import #15718
No longer generating invalid signal plan when giving invalid argument --tls.green.time#15719
Fixed invalid linkState for left turns from the major road at junction type allway_stop#15737
Fixed invalid tlLogic after processing net with --keep-edges#15798
No longer building bicycle left turns from a straight-only vehicle lane (starting from a left-turn lane instead) #15943
Fixed invalid handling of negative stop position in ptstop-files #12183
Option --sidewalks.guess.by-permissions no longer puts sidewalks onto paths that are shared between pedestrians and bicycles #16060
OSM: loading typemap osmNetconvertPedestrians.typ.xml no longer puts sidewalks on both sides of oneway streets (i.e. in the middle of a divided road). Legacy behavior can be restored with option --osm.oneway-reverse-sidewalk#16063
OSM: fixed missing vehicle lane where access=yes and busway:right=lane #16061
Added option --chargingstations-output.aggregated.write-unfinished to include still running charging process in charging station output #15677
The new vType attribute lcContRight can be used to configure lane choice at a lane split where all lanes have equal strategic value. #15579
Added option --insertion-checks to set global defaults for vehicle attribute insertionChecks#15149
Added option --pedestrian.striping.jamfactor to configure the speed of jammed pedestrians (default 0.25) #15610
GLOSA Device now looks several phases into the future and can also take queues into account #15614
Added new vType attributes jmAdvance and jmExtraGap to configure the behavior on junctions for crossing and merging streams of traffic #15654
Added new attribute jmStopLineGapMinor to set the distance from the stop line at non-prioritized links #15442
vType attriubte jmStopLineGap now applies to allway_stop #15448
Added new vType attribute lcStrategicLookahead for configuring the lookahead distance when computing strategic best lanes #14718
Added new vType attribute lcSpeedGainRemainTime which controls the minimum time a vehicle can drive on the new lane after a tactical lane change (formerly hard-coded to 20s) #12109
Added new insertion behavior departLane="best_prob" to increase throughput on multi-lane roads #15661
Stationfinder device now supports state saving and loading #15607
Traffic lights now supports the special value offset="begin" which lets the logic start in cycle-second 0 regardless of simulation begin time #15248
Traffic lights of type actuated can now use the next attribute to switch into fixed-duration phases (and the corresponding lanes will obtain detectors to trigger the switch) #15714
Traffic lights of type actuated can now react to a pedestrian crossing #1746
The new option --railsignal.max-block-length can be used to customized the threshold for warnings / driveway truncation #15819
The new option --railsignal-vehicle-output can be used to record entry and exit times of vehicles into signal blocks #14990
The new option --time-to-teleport.railsignal-deadlock can be used to detect signal based deadlocks #15561
The new option --time-to-teleport.remove-constraint can be used to resolve detected deadlocks which are caused by a signal constraint by deactivating a responsible constraint #14543
The new option --deadlock-output can be use to log detected deadlocks and also their method of resolution
Logged deadlocks can be loaded as additional file to prevent them in a subsequent simulation #15569
A warning is given for unreasonable combinations of --time-to-teleport options #15816
netedit
Additional output now writes chargingStation after parkingArea elements #15628
Removed "invert edges" from GNECrossingFrame #15129
Undo-redo functionality can now optionally be disabled to improve operational speed #15663
Undo-redo functionality can now be temporary disabled while loading a file to improve loading speed #15668
street-sign-output now sets the sign angle corresponding to road geometry #15671
Traffic lights now supports the special value offset="begin" which lets the logic start in cycle-second 0 regardless of simulation begin time #15248
Actuated pedestrian crossings are now actuated by pedestrians rather than vehicles #7637
Pedestrian crossings created by option --crossings.guess are now given priority. The old behavior can be obtained by setting option --crossings.guess.roundabout-priority false#15833
Option --plain-output-prefix now also saves a .netccfg-file for rebuilding the network from plain-xml files #12998
Improved geometry of pedestrian crossings when a footpath crosses a road #15975
Removed warning about sharp angles on service roads #16062
routeStats.py: Added option --edges-file for counting the number of times per route that a specific edge (i.e. a counting) location was passed) #15900
routeSampler.py: Added option --verbose.timing to print wall-clock-time performance statistics #15910
routeSampler.py: Major increase in processing speed for long routes #15911
routeSampler.py: Added option --depart-distribution to distribute departures within the counting data intervals #15909
routeSampler.py: now warn about duplicate counting data #15997
routeSampler.py: now includes GEH in mismatch-output #16000
routeSampler.py: Added option --geh-scale to permit custom scaling for GEH value (i.e. to avoid averaging daily counts over 24 hours) #16001
routeSampler.py: Options that set attributse to parse (i.e. --edgedata-attribute) now support a list of comma separated attributes (values are added) #16020
routeSampler.py: Added option --init-input.remove-overflow to downsample demand from a given route file where traffic exceeds counts (and keeping as many of the routes as possible) #15971
edgeDataDiff.py: Added option --geh-scale to permit custom scaling for GEH value and otherwise scaling data to hourly values automatically #16002
edgeDataDiff.py: Added option --attributes to allow comparing files with differing attribute names #15898
xml2csv.py: Added option --keep-attributes to limit the attributes exported to csv #15915
plotXMLAttributes.py: Added options --split-x and --split-y for plotting attributes with list values #15934
sumolib: Geometry helper functions for rotation at offset is now available #15445
duaIterate.py: When loading trips with taz or junction-taz, vehicles may change their depart and arrival edge in each iteration #15983
filterDistricts.py: New options --remove-ids and --remove-ids-file allow filtering out explicit edges #16038
countEdgeUsage.py: Now issues a warning when encountering attributes fromJunction or toJunction #15804
countEdgeUsage.py: print output on number loaded / filtered routes when option --verbose is set #16040
countEdgeUsage.py: New option --subpart.via allow filtering subparts with gaps (i.e. via edges) #16041
netdiff.py: Modified file extension for generated polygons to simplify file filtering in netedit #16042
poly2edgedata.py: Added new tool to transform traffic data from polygons (i.e. from geojson) to edgedata (i.e. for routeSampler.py) #16051
edgesInDistrict.py: now supports .xml.gz inputs #16066
edgeDepartDelay.py: New tool for edge-wise analysis of departDelay from tripinfo-output #16021
geoTrip2POI.py: New for visualizing geoTrips #16028
duaIterate_routeCosts.py: New tool to analyze route choice in a finished duaIterate run in an interactive manner #15912
Added analysis on the effects of attribute departLane on insertion capacity.
Fixed compatibility issues with Ubuntu 24 affecting geo-projections #15618
Option --device.rerouting.railsignal is now inactive by default #15597
If a turning movement has more than one lane and may wait within the intersection, the lanes after the internal junction are now joined into the same internal edge #14776
The new option --emission-output.attributes can now be used to customize the output #12850
Jupedsim pedestrian model now waits at pedestrian crossings #15012
EIDM model now has a fixed upper boundary to drivererror-intensity to avoid issues for vehicles with high acceleration. #15066
GLOSA device now uses speedFactor to set it's target speed when slowing down to improve interaction with carFollowModels #15067
Reduced redundant vClass warnings from taxi device #15090
Added extra penalty for turnarounds during routing, configurable with option --weights.turnaround-penalty#4966
Individual speedFactor is now adjusted when switching vehicle type (with calibrators, devices or TraCI) #15076
Added GLOSA options to increase or reduce safety. #15152
Added vType-attribute jmStopSignWait to customize required waiting time at stop sign #15163
Actuated traffic lights now support phase attributes earlyTarget="DEFAULT" and finalTarget="DEFAULT". This simplifies combining default switching rules (gap based) with custom conditions #14669
chargingStation default power is now 22kW (instead of 0) #15144
Added warning for unusual distribution definitions #15146
fcd-output now contains the vtype for pedestrians #15210
Added option --chargingstations-output.aggregated to write output that is more compact #15240
vType attribute jmAllwayStopWait can now be used to customize required waiting time at allwayStop #15428
time-to-teleport.disconnected may now be higher than time-to-teleport #15494
Stop attribute index can now be used to encode stopping on a later edge of a looped route #15503
The battery model now records depletion events in tripinfo output #15529
netedit
Junctions and edges now have the virtual attribute isRoundabout. This makes it easy to select and find all roundabouts in a network #14865
Mode for editing overhead wires now warns about experimental state #14974
Using check boxes in submenu now keeps the menu open #15009
Loading a single file without options now supports .sumocfg files #15015
Shapefile import now respects option --default.spreadtype#14984
Added option --geometry.max-angle.fix for removing sharp angles within edge #15221
Added option --default.connection.cont-pos to change the default internal junction position (or disable internal junctions) #13642
marouter
Loaded trip attributes (i.e. departLane and departSpeed) are now preserved #15049
duarouter
Added extra penalty for turnarounds during routing, configurable with option --weights.turnaround-penalty#4966
traci
The new sumo option --keep-after-arrival TIME keeps vehicle objects in memory for a configurable time after their arrival. This makes it possible to retrieve properties of their trip. #9891
Fixed missing leader/follower information in lanechange output after forced change. #14912
chargingStation attributes can now be modified #12772
Added functions edge.getBidiEdge and lane.getBidiLane#15186
Added functions getMass and setMass to the vehicle, person and vehicletype domains #15258
Added person stages now support all stopping places and not only busStops #15281
Meso simulation now supports functions vehicle.getSegmentIndex and vehicle.getSegmentID#14681
Meso simulation with option --meso-lane-queue now supports vehicle.getLaneIndex#15341
tools
plotXMLAttributes.py: can now use special attribute @FILE to simplify plotting of multiple files where each file provides one value #14843
plotXMLAttributes.py: added option --robust-parser which handles files without linebreak after each element #15340
gtfs2pt.py: Now warns if no valid GTFS inside the network boundaries has been found #14876
addStops2Routes.py: Can now create waypoints by setting option --speed. #14895
traceExporter.py now supports options -c and -C for loading and saving configuration files #14934
generateRailSignalConstraints.py: Added missing constraint for parking vehicles with 'ended' value. #14609
generateRailSignalConstraints.py: Added option --abort-unordered.keep-actual which keeps stops after a detected overtaking as valid if they have started/ended values #15065
generateRailSignalConstraints.py: Added option --all-inactive for setting all constraints as inactive #15312
createVehTypeDistribution.py: now automatically writes speedDev when only speedFactor is defined by the user to avoid a wider distribution than may be expected #15025
mapDetectors.py: Option --max-radius can now be used to configure maximum mapping radius #15118
mapDetectors.py: Can now handle CSV with BOM #15116
net2geojson.py: can now optionally include numLanes and speed as properties #15109
distributeChargingStations.py: this is a new tool for adding chargingStations to a network with parkingAreas #14667
configuration file root elements are now application-specific #7700
Unknown vehicle classes are now ignored by sumo to ensure upwards compatibility when adding classes in the future. Netconvert and duarouter support this behavior by setting option --ignore-errors#14993
Saving config files now handles environment variables as absolute path #15022
sumolib.checkBinary now finds sumo binaries installed via pip #14982
SUMO game language switch is now working in the downloadable zip #13440
Fixed inconsistent edgeData and laneData emissions. #14209
Fixed crash with SSM device and incomplete routes. #14201
Fixed invalid handling of jumps after stopping twice in the same spot. #14324
Teleported vehicles are no longer moved onto restricted lanes. Issue #14168
Speeds imposed by variable speed signs (VSS) or TraCI now take precedence of vClass-restricted speeds (this was said to be fixed in 1.19 but didn't work) #13652
Fixed crash when using --lateral-resolution with --no-internal-links#14460
chargingstations-output no longer records charging when battery is full #14473
Fixed undefined behavior during opposite direction driving #14475
Fixed crash when loading NEMA controller with pedestrian crossings. #14474
NEMA controller now warns about missing green phase #14502
Fixed bug where person enters the wrong vehicle on looped public transport line #14526
Routes with jumps now support attribute repeat#14549
Fixed crash when a person plan contains walks or personTrips where origin equals destination #14558
bike lane default width is now applied to both directions in OSM import #14560
Fixed missing bus connection in OSM import. #14507
Fixed bug where attribute allowed and disallowed were not minimal #14632
Large circular network structures are no longer misclassified as roundabout. The size threshold can be configured with option --roundabouts.guess.max-length#14634
Motorway ramp building no longer fails when the default IDs for new junctions and edges are already in the network. #14658
Access elements support pos="doors" to change the algorithm for placing passengers that exit the vehicle. #14336
chargingStation now supports attribute "parkingArea". When set, vehicles will only charge after reaching that parkingArea. #13596
Persons and containers that continue in a train after split/join no longer incur boarding or loading delay. #14360
Added new attribute departPos="splitFront" which causes a train with depart="split" to be created at the front rather than the rear of the original train. #14358
vType attribute mass is now used within carFollowModel="Rail". #13055
Option --fcd-output.attributes now supports the value 'arrivalDelay' #14447
Sumo now allows specifying departure and arrival positions in network or geo-coordinates #2182
carFollowModel "Rail" now permits loading custom model curves for traction and resistance #14258
speedFactorPremature can now make use of stop parameter "flexArrival" if a reference time other than the scheduled arrival is needed. #14503
Using jumps together with 'via' is now supported. #14585
Option --weights.tls-penalty now also applies to tls-controlled pedestrian crossings. #14653
Option --vehroute-output.cost now applies to routed persons #14655
Stages generated from <personTrip> now inherit params from the personTrip. #14513
Actuated traffic lights are now more flexible when controlling minor links (reduced warnings of type "... has no controlling detector" warnings) #14692
It is now possible to set the vehicle routing mode via <param key="device.rerouting.mode" value="..."/> either in the vType or the vehicle/trip/flow. Setting it to value of 8 lets a vehicle ignore rerouter-induced permission changes on insertion and rerouting. The default routing mode for all vehicles can be set with option --device.rerouting.mode (even for vehicles that do not have such a device). #13494, #14815
A personFlow with depart="triggered" can now be distributed over a flow of vehicles #14806
vTypes and parkingAreas now support attribute 'parkingBadges' to control access #14482
personInfo (in tripinfo-output) now include data that aggregates over all stages of the plan #14823
tranship to stopping place other than containerStop can now be defined #15399
netedit
Now sidewalk and bikelane width can be edited in create edge mode. #9725
Added new netedit option --ignore-missing-inputs. #12395
Add color legend in person and container modes. #13139
Now netedit checks if repeated routes are valid before saving. #13503
Disable stopOffsetException row if stopOffset is 0. #14065
Improved rendering speed for large networks. #13894
The maximum number of rows for a combo box can now be configured in the gui settings (persistent across sessions) #14412
Added option for selective hiding of short edges when zoomed out (enabled by default to increase frame rate) #14487
POIs and polygons now support "show-cursor position / geo-position" in the context menu #14812
sumo-gui
Hotkey B now sets a breakpoint at the current time. Alt+B ahead of the current time. #10400
Train visualization param locomotiveLength now supports value 0, to prevent rendering of a locomotive. #14351
The new train visualization param carriageImages accepts a comma-separated list of image files to enable distinct images for the different carriages. #14403
Reduced exaggerated size of long vehicles (i.e. trains) when zoomed out. Issue #14423
Reduced the number of bike markings being rendered to increase realism and reduce clutter. #14545
Added more information to stop info in vehicle parameter dialog #15395
netconvert
Edge widths are now imported from OSM. The new option --ignore-widths can be used to restore legacy behavior. #4392
Added option -junctions.endpoint-shape to compute the junction shape based on custom edge endpoints instead of the usual geometry heuristics. #14341
Option --output.street-names is now enabled by default if --shapefile.name is set. #14399
OSM import now support importing restricted turn lane information (i.e. turn:bus:lanes) #14476
More rail signals are imported from OSM and option --osm.railsignals can be used for fine grained control of signal interpretation. #14483
Rail signal direction is now imported from OSM #14512
Option --keep-edges.postload now applies to permission and speed based edge filters. This is useful when these values are updated with patches or public transport processing. #14528
Loaded ptLine period can now be patched by loading the same id in ptline-files#14586
OSM import now exports subways as vClass "subway" and aerialway as "cable_car" #14644
Added 6 new configuration files for the MMPEVEM model. #14499
The battery device now uses param "rotatingMass" instead of "internalMomentOfInertia". The old value has been deprecated. The default value was changed to improve realism. #12513, #13422
The network now contains outline shapes for pedestrian crossings #11668
stop-output has slightly reordered attributes to easier see the busStop-id without horizontal scrolling #14542
extractTest.py now works for netdiff.py tests #14725
duarouter: adapted Gawron default values to make them consistent with duaIterate.py. #14772