9

I'm trying to remove all the dead-end roads in a road dataset (lines) that are less than 100m long.

How do I identify roads that are dead-ends (no exit)?

The 100m part is easy.

I know how to use ArcGIS for Desktop proficiently and can use GRASS.

1

4 Answers 4

11

I had to do this just recently. Using ArcGIS 10:

If you only want to symbolise the dead ends you can just set up a Topology on the roads featureclass and set the rule "Must not have dangles". this will put a marker on every feature that has a dead end.

Alternatively, run the "Feature Vertices to Points" Tool (Located in Data Management Tools --> Features) and select "Dangle" as the point type. You can then use "Select by location" to pick up all lines that touch those dangle points.

Voila, all dead-end streets are selected.

1
  • Thanks Loz, I ended up using the Feature Vertices to Points tool and selecting the lines that touched the remaining vertices. Commented Jan 17, 2013 at 21:50
11

A general way of solving this problem is to find all polylines having a node whose valence = 1.

A valence table may be created either in memory or on disk, using a key that is the hash of the x&y of each end point of each polyline. You may wish to truncate x and y may be truncated if polylines are not snapped.

enter image description here

Each node is labeled by its degree (or valence).

2
  • Great to bring some wider theory into the mix. Unfortunately however, I'm struggling to follow your methodology. Could you please explain how to create this table? Commented Jan 18, 2013 at 0:38
  • 1
    Phil, you just do what Kirk described: looping over the polylines, add both endpoints to the table, incrementing their counts. Afterwards, output all points in the table having a count of 1: those are the dangles. You can augment the table to record polyline lengths, too (you only need the last length entered): use those to screen the short dangles.
    – whuber
    Commented Feb 7, 2013 at 23:04
6

GRASS method:

v.clean in={your input vector} tool=rmdangle thresh={your threshold} out={output vector}
2
  • Thanks @Micha, this will come in helpful as I try to use GRASS first these days because it is easier in many respects; I just don't know my way around it well yet. Commented Jan 17, 2013 at 21:47
  • The learning curve is steep, but the rewards are worth it... Just keep reading the manual pages and asking here or on the maillist.
    – Micha
    Commented Jan 18, 2013 at 10:31
6

In ArcGIS Standard or Advanced, you can put your road network into a Feature Dataset in a Geodatabase. You can then set up a topology on the network and create a topology rule which identifies "dangles". This will identify all roads which do not connect to something at one or both ends. Note, this will also identify potential errors in your network which have dangles and are not cul-de-sacs. They'll need to be fixed first.

To select the dangling features, open the Error Inspector, highlight the errors, right click and choose "select features". This will create a normal selection on your feature class and you can then select those features from that selection which are less than 100m.

Hope this is what you're after.


EDIT:

Just saw this ESRI blog post about a new feature in ArcGIS 10.1 which allows you to export topology errors as feature classes. This might be useful for some.

2
  • Cheers Fezter, unfortunately I couldn't get the topology toolbar in ArcMap to activate (even after adding the topology layer to the map) and therefore could not access "Error Inspector". What did I miss? Commented Jan 17, 2013 at 21:49
  • 2
    Essentially, when you correct the topology, you are editing the layer. So, you need to be in edit mode. Once you're editing the layer, the topology tools become active.
    – Fezter
    Commented Jan 17, 2013 at 22:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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