2

I am unable to find duplicate nodes in a Road network through my program.

I have a polyline feature class as Road, and i want to find duplicates nodes in it. How can I generate a report of duplicate nodes from this Road?

1

I'm not a developer, so I'm unable to tell you how I would do this with code and/or arcobjects. However, this is something I have done manually / in model builder many times. I've explained my logic below. Hopefully you can then replicate this in ArcObjects.

1 - Run "Feature vertices to points" on your polylines.

2 - Add 3 new columns to your point dataset (the one created in step 1) - one called "X" (Double), one called "Y" (Double) and one called "XY" (Text)

3 - Calculate the X and Y values into the relevant columns on the point dataset.

4 - Amalgamate the X and Y values into the XY field on the point dataset so that it looks something like this "xxxxxx.xx yyyyyy.yy". This might have more digits depending on your default accuracy.

5 - Do a table summary of the points dataset, summarising by the XY column, so you get a count of each different value in this column.

6 - Do a 1 to Many join between this summary table and the point dataset based on the XY column (Make a Query Table, making sure you transfer over the "Shape" column from the point dataset and the "Count" column from the Summary table).

7 - Now, your points dataset has a count column, so select all points where count > 2 and export them to a new dataset. These are all your replicated nodes.

EDIT: Below are some screenshots to explain the process in ModelBuilder.

The Model The Whole Model

The CalculateField tool

CalculateField

The Frequency Tool

Frequency

The Make Query Table tool (2 images)

MakeQueryTable_Part1

MakeQueryTable_Part2

The select by attribute tool

SelectLayerByAttribute

I've tested this model on a line dataset I just made up and it picked up all the duplicate nodes. I hope this helps :)

  • hey dan, can you please tell me how to calculate x and y value as there are no such field in the polyline feature and also it contains features in lakhs. – cynthia Jan 8 '14 at 4:52
  • Hi Cynthia, you're calculating the X and Y values for the points dataset you created in step 1 above. Not on the polylines. In the sequence above, the only time you do anything with the polylines is when you convert them to points on step 1. After that, everything is done on the points dataset. I've made some edits to my answer to try to make this clearer. – Dan_h_b Jan 8 '14 at 9:30
  • hey i gt that,calculated X and Y value and updated it in XY coulmn(text).now, i am confused..summarising by XY column and then next step not getting..plz help – cynthia Jan 8 '14 at 10:00
  • Calculated-: Summary statistics>summarise by XY column and statistics type "Count" but it gives output that provides total count of records in point dataset.So, i am confused and not able to go to next step. – cynthia Jan 8 '14 at 10:10
  • Ah ok, try using the Frequency tool (Analysis tools > Statistics > Frequency). This will give you a count of each individual value in the XY column. – Dan_h_b Jan 8 '14 at 10:53
0

there is a built in tool called "find identical" that does it http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000054000000 , unfortunately it requires an "advanced" licence.

  • that tool is for finding identical features ,i have to find duplicate nodes in polyline featurclass and i wish to do it through program in VB.net and arcobject .Is there anyway to do it?? – cynthia Jan 7 '14 at 8:46
  • Even if this is not the best solution, geoprocessing tools can also be used in .Net (see help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/… ). – radouxju Jan 7 '14 at 8:54
  • Also I tought that the nodes came from your "junction" point feature class. Again, you could use "Feature vertices to points" to extract all vertices as points. – radouxju Jan 7 '14 at 8:59
  • extractes all vertices using features vertices to points.Now if i run find identical tool and select all field it does not provide correct result. – cynthia Jan 8 '14 at 4:48
  • you should only select the "shape" field – radouxju Jan 8 '14 at 6:14
0

Off the top of my head, you could loop through each node in your featureclass using a featurecursor (or you may have to create a point collection and loop through that), and within each loop iteration perform a second loop through your featureclass / point collection to compare x/y values in all other features with your current feature. Then make a note of any duplicate values (there will always be at least one duplicate because the feature will be compared with itself at some point during the loop, but just ignore any matches that have the same index). Might not be the simplest method but it might give you an idea of where to start.

edit: this is something I've done in vb.net and arcobjects before

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.