I have a set of pedestrian streets for a city. I would like to assign all of the streets that can be reached to one another along a continuous network to a unique group. I am wondering if there’s an off the shelf method (QGIS, ArcGIS, PgRouting) that can do this.

I have an image of roughly what I would like to accomplish. Basically, I have a set of roads on an “island” that are broken up barriers that make walking impossible (Interstates, Rivers, etc.). I want the continuous part of each network to be assigned to its own group. For reference, I am trying to create "T-Communities" described in Grannis, Rick. "T‐Communities: Pedestrian Street Networks and Residential Segregation in Chicago, Los Angeles, and New York." City & Community 4.3 (2005): 295-321.

enter image description here


You are looking for what is called the "strongly connected components" in graph theory jargon.

These network islands can be computed in QGIS with the grass plugin - See v.net.components.

  • Thank you for the response. This solution worked in places my network was completely closed but failed in instances where the roads were not closed (e.g. the image). I posted a simple workflow that ended up giving me the results I wanted. – mech Oct 22 '14 at 15:49

I ended up using this workflow in Arc.:

  1. Buffer road lines by a trivial distance (e.g. 1 Foot)
  2. Select the “Dissolve All” options in Arc to merge all overlapping road buffers.
  3. Convert multi-part to single part.
  4. Convert feature to line.
  5. Collapse dual lines to center lines.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.