Question

Finding dead-end roads along a bike race route

  • 8 February 2013
  • 7 replies
  • 6 views

Badge
Hi all,

 

 

Please forgive my long explaination but I don't know how else to describe the problem.

 

 

We have a bike race occurring soon that requires letters to be sent to residents that will be impacted by road closures along the route. I have a shapefile of the roads used for the route that I intend to buffer, then intersect with the adjoining property boundaries to get the postal information for those who live along the route.

 

 

The issue I have is that a simple buffer of the route is not enough. For those people who live in dead-end roads who's only exit point is onto the closed road I need to ensure all those residents receive a letter too. 

 

 

Therefore I need to be able to select all dead-end roads that intersect the bike route so that I can also buffer them... I have no idea how to achieve this!

 

 

The road data is topologically correct so I imagine it it some form of network analysis.

 

 

Any ideas?

 

 

Thanks in advance,

 

Bazza

7 replies

Badge
I've added some more information in another forum that I posted this problem to... https://sites.google.com/site/ausqgis/home?place=topic%2Faustralian-qgis-user-group%2F88pZ1ZR0M94%2Fdiscussion
Badge +21
I would use tour method to buffer the road as suggested - then I would REMOVE those roads which belongs to the bicycle race from the network. Then I would run the NetworkTopologyCreator to separate the different networks and handle these 1 by 1. Ie. One network will be completely outside your race (the biggest?), another network will be some "islands" within your network, and yet other ones would be "dead-ends". Then you can buffer out those wanted networks and do the same as in the beginning (buffer them to find out which owners are around them).

 

 

 

Hi Bazza,

 

 

would it be possible to attach an attribute to the dead ends, then filter the dead ends and in the last step buffer them and do an intersection?

 

 

Best regards,

 

Stefan
Userlevel 5
Badge +25
An alternative solution to finding dead-end roads:

 

1: Use a GeometryExtractor to store the original geometry in an attribute.

 

2: Replacing each road by it's start- and endpoint. (CoordinateExtractor and 2DPointReplacer, twice)

 

3: Do a PointOnPointOverlay with all those points, the ones that don't overlap any other point are the end points of dead ends.

 

4: Use a GeometryReplacer to bring the original road geometry back

 

5: Intersect those with your bike race buffer.

 

 

That should do the trick.
Over the weekend I played a bit with SigTill's solution (just for fun), and it seems to work. I don't have a complete working workbench yet, but it seems you want ALL islands as people on those roads also can't leave by any way without crossing the race route.
Badge
I have also used SigTill's solution to come up with something that works very well. The only issue that I would like to resolve is getting rid of the 'biggest' network (as mentioned in SigTill's post) in an automated way. All of the small networks that I want to keep intersect with the bike route but I can't use this as a means of selecting the networks that I want without getting rid of the main network first as it also intersects the bike route.

 

 

If possible I would like to get to a point where I can just feed any bike race route into this workspace and have it write out a set of property owner details that need to be contacted... we have a lot of bike races in this area!

 

 

Thanks for all your suggestions, especially SigTill, I appreciate all the suggestions.

 

 

Cheers,

 

Bazza
Badge +21
Hi Bazza!

 

 

Happy to help. By using the SpatialRelator between the Networks you might be able to automatically figure out which network is the outer network. 

 

 

For instance:

 

- Create ONE boundingbox of ALL networks

 

- Create ONE boundingbox PER network (including biggest, islands,deadends etc)

 

Use spatialRelator to see which network-boundingbox intersects or touches the boundingbox of ALL-networks. This network will be the "outside/biggest"-network to throw-away. The rest will be the ones you need?

 

Reply