eclipse-sumo / sumo

Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
https://eclipse.dev/sumo
Eclipse Public License 2.0
2.48k stars 1.41k forks source link

Seemingly connected edges unreachable in network imported from OSM #15203

Closed 1BlattPapier closed 1 month ago

1BlattPapier commented 1 month ago

Importing OSM data for the a part of Berlin results in a network that contains many edges that are connected by junctions but are still not reachable. When using the provided script to import the OSM data, many edges are unusable as no traffic can flow between them and any other edge. Right clicking an exemplary edge using sumo gui and selecting "select reachable > pedestrian/passenger" shows no connected edges.

I do understand that converting the imported data is complex but I do not know how to handle that many edges which are not connected. Using the option "--keep-edges.components 1" does not solve the problem as it apparently viewes the edges as connected.

SUMO-version: 1.20

operating system: Mac OS 14 or Rocky Linux 8.9

Steps to reproduce:

  1. Run script
  2. Check edges (examplary edge: 671369232#1)

Script: setup_wedding_net.txt

Thanks for a fix or an existing solution to this!

namdre commented 1 month ago

The discrepancy comes from the fact that the component search is done in the node/edge graph whereas "select reachable" is done in the lane/connection graph.

Furthermore pedestrian simulation has two modes:

If you don't need the pedestrian network at all, you can get rid of it by setting netconvert option --remove-edges.by-vclass pedestrian. Otherwise, set option --crossings.guess to build detailed connectivity.

The same goes for rail edges: If you want to get rid of them, add the relevant classes to option --remove-edges.by-vclass .

If you only need cars you can just set --keep-edges.by-vclass passenger instead.