Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I keep on having this issue and I can't find the "perfect answer":

First of all, I work in ArcGIS 9.3.1. I have 2 layers: roads1950, roads2000. I need to make a layer with roads which were built/changed between 1950-2000. The most perfect thing was to have a "erase-like" tool that would cut out the identical to roads1950 features in roads2000. The problem is that the erase tool only works with polygon layers. I could do a merge and sow out the doubles but it's a (very) long process and it isn't accurate.

Do you know of a tool/method that could help me ?

share|improve this question
    
Symmetrical difference in ArcGIS 10 works on points lines & polygons. However in 9.x I just did an intersect of the old data and new data. Then if you take away the intersect from the old layer and then from the new layer, you will create additions & deletions. I'm doing an MSc dissertation and looking for ways to do change detection on vector features. i think SymDiff may be my solution... –  user3512 Jun 29 '11 at 19:01

5 Answers 5

up vote 2 down vote accepted

If the older roads (the ones you want to "erase") have exactly the same geometry as the older roads in the 2000 dataset, you can do a Select by Location with the choice "are identical to" in order to select the pre1950 road features in the 2000 road dataset. Start the edit session before your selection, then just delete the selected set and you're left with post1950 road features.

share|improve this answer
    
+1 for like-mindedness. I was wondering if a Spatial Join might be of any use, myself. –  Nathanus Mar 29 '11 at 15:07
    
The easiest and fastest way, shamed to admit that I didnt know "are identical to" option exists. The downside is that any 1-mm movement makes the method detect it wrong (but then again, it's the digitizer's fault, not the method's). –  jonatr Mar 31 '11 at 6:54
    
You could always consider throwing a small buffer around each feature, dissolving the intermediate boundaries, and then Select By Location (within) if you are worried about avoiding very small digitizing changes like mentioned above. Consider building this in ModelBuilder so you can automate this task and use it for the future. –  RyanDalton Jun 30 '11 at 15:48

For the Erase tool, only the erase features must be polygons. Input features can be point, lines or polygons. How about buffering a few meters the roads2000 layer and using it as the erase features on the roads1950.
As a side note, in ArcGIS Desktop 10, erase features can be of any type.

Ref:

share|improve this answer
    
It is indeed a option, but if the layer has thousands of features it can be a long and tiresome process (and it might crash because of buffer polygons intersecting. –  jonatr Mar 29 '11 at 9:51

Think you are looking for Symmetrical Difference

http://webhelp.esri.com/arcgiSDEsktop/9.3/index.cfm?TopicName=How%20Symmetrical%20Difference%20%28Analysis%29%20works

Features or portions of features in the input and update features that do not overlap will be written to the output feature class.

share|improve this answer
    
Ok, this might be a answer, but as I have only ArcEditor (and not ArcInfo), I don't have Symmetrical Difference - any way there is a "free Symmetrical Difference tool" out there? –  jonatr Mar 29 '11 at 11:18
    
jonatr downvoted as you didn't specify license level. QGIS GIS is a free alternative with "free Symmetrical Difference" tool –  Mapperz Mar 29 '11 at 13:51
    
serves me right... but thanks for the tip on the tool, another reason (added to a lot more)to upgrade the license level... –  jonatr Mar 29 '11 at 18:59

If by "method" you mean arcobjects, then consider the ITopologicalOperator.Difference method. It works with lines, but they need to precisely coincide. enter image description here

share|improve this answer
    
sorry, don't work (yet) with arcOBjects... –  jonatr Mar 29 '11 at 11:19

You might try creating a topology with both datasets and set a rule saying roads1950 must be overlapped by roads2000. The errors would be roads abandoned since 1950.

Then set a different rule saying roads2000 must be overlapped by roads1950. The errors would be the roads built since 1950.

share|improve this answer
    
Nice approach. Didn't work for me this time, but as I was only made aware to this tool weeks ago, I like your use of it. –  jonatr Mar 31 '11 at 6:55

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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