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 have two polygon shape files of the same region from two different years (1985 and 1997) and I need to analyse the differences between the two shapes resulting in a third polygon shape file displaying only differences.

The shapes cover an inner-city area with buildings, parks, sealed/unsealed areas and water areas. I need to find out for example if a building was de-/constructed or if a park was moved or closed or similar things. Any differences between the shapes.

I need the output to be in a third, new shape file. Is there an automated way to achieve this?

I am working with the proprietery file-geodatabase in ArcGIS 10.1, so I'd prefer solutions in ArcGIS. But if there is an easy way doing this in QGIS, I would welcome it, too.

I thought it might be possible to work with topology analysis in ArcGIS but I'm not quite sure for example how to compare shapes by attributes: Each shape has a field "type" in the attribute table and I need to compare not only the shapes but the types of the polygons.

Note, this question sounds similar, but I'm looking for an output in a polygon shape file format.


Update: Yes, this is a change detection process on vector data (no remote sensing issue). There are some nice comments in this answer but no solutions at all.

share|improve this question
1  
When you say difference, do you mean the difference in geometry, attribute or both? Is this a change detection process? –  Ryan Garnett Mar 12 '13 at 15:41
    
Yes this is a change detection process. First I need the changes in geometry, secondary I need changes in attributes. But geometry is more important as the output should be visualized in some way. –  vertoe Mar 12 '13 at 15:45

3 Answers 3

up vote 1 down vote accepted

While I think that Ryan's Answer is the most reasonable course of action, you could use the Intersect Geoprocessing Tool using both your featureclasses as input.

The output that you get, will contain attributes from both inputs. You could check for features having different values in the two 'type' fields.

There are a few limitations to this process:

  • Firstly the Intersect Tool like all overly tools can only operate on a limited amount of vertices. If you have too many vertices in your data, you would have to tile your data and run the process in stages.

  • You will find many sliver polygons in the output.

  • This requires that your feature classes entirely cover your area of Interest, and that there are no Gaps.

share|improve this answer
    
This does the job, thanks! It's a quite basic solution but that's something I can work with. –  vertoe Mar 14 '13 at 15:11

There are a few ways to do this. I have completed this in the past with great results using a combination of attributes and raster processing. The premise of the process is to assign each feature with a value of n (1, 2, 4, 8, 16, 32, 64, etc.). Assigning these values ensures that when you subtract layer one (1985) from layer 2 (1997) you get a unique value, which identifies what it changed to. For example, if 1 = buildings, 2 = parks, 4 = seal/unsealed and 8 = water; by subtracting the values, there is no way to get the same value. When you add this column of values you are going to want to convert the polygons to a raster, using either ArcGIS or QGIS. I would recommend that you set the raster pixel size to a small value (ie: if the data was collected from Quickbird imagery, then set it to the pixel size of the Quickbird imagery). Using Raster Calculator (in ArcGIS or QGIS) subtract Layer2 from Layer1. This will result in Layer3, the changed to layer. You can convert this data back to a polygon layer for further GIS analysis. If you want further information, or specifics, I can share a more with you.

share|improve this answer
    
This is a very nice approach, but I'm not going to convert my shapes to raster data and back as I will lose too much information. Is this anyhow possible to achieve with vector layers only? –  vertoe Mar 12 '13 at 16:11
    
You could do something similar with the vectors, but it does not use the value approach. You may want to play with the Symmetric Difference tool available in ArcGIS and QGIS. I am unaware of a vector based approach that mimics the approach I outlined. –  Ryan Garnett Mar 12 '13 at 16:39
    
your approache reminds me of using bitwise operations like described here blog.millermedeiros.com/… –  geogeek Mar 12 '13 at 16:44
    
Does ARCGIS 9.2 have symmetric difference tool. I cann't find. Which version of ARCGIS can be used to this symmetric difference analyze? –  Bandrush Barda Oct 7 '13 at 9:45
    
I believe you need an ArcInfo license. If you do not have that license type, you can download ETGeoWizards. Symmetrical Difference is an available tool in the Geoprocessing tab. QGIS also has Symmetrical Difference in the Vector tools, which is free. –  Ryan Garnett Oct 7 '13 at 14:47

To do change detection in ArcGIS, from two polygon files, use overlay operation (UNION). That gives you the transition matrix showing the details of the changes (may be in land cover).

share|improve this answer

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.