I have county-level shapefile for South Caroline in 1880 and one for 1940. I would like to overlay these two files so that they do the union and indicate the percentage of the land in 1880 that went to form counties in 1940.

For example, McCormick county formed in 1914. Thus, it only appears in the 1940 shapefile. It formed from Edgefield and Greenwood. I want to know the percent of the land from Edgefield and Greenwood that went into forming McCormick. For example, is it 20%, 26.4 percent or some other percent of Edgefield County land that was lost to form McCormick?

I think I should be using overlay, and then within overlay using union.

However, I do not know how to pick the tolerance. How does that work? In addition, I cannot at all interpret the results. I cannot understand the columns being added and what they mean.

I am using ArcMap 10.1 within ArcGis.

  • 6
    You should note that doing this sort of thing can introduce large errors in your results because the population may not be evenly distributed. County boundaries might have moved precisely because there was no one living in one area of it. You should check out the Modifiable Areal Unit Problem and also here. Also see the ecological fallacy. Furthermore, you may want to tag your post with the software that you have available to you. – Fezter Aug 1 '12 at 5:20
  • 3
    Since the intention is to determine changes in land area between the two years in question, the MAU problem and ecological fallacies do not apply. If the author was to start comparing demographics/population statistics by county between the two years, then MAU and ecological fallacies would be a concern. – user3461 Oct 8 '12 at 11:19

These are the basic steps you need to run through (is this what you have done? Apologies if this is too basic)...

  • Make sure that your 1940 shapefile has an attribute containing county area (e.g. ‘Area1940’)

  • use the Union tool (ArcToolbox > Analysis Tools > Overlay > Union) with your 1880 and 1940 shapefiles as inputs.

  • Specify a new output shapefile.

  • In the 'JoinAttributes' option select 'ALL'.

  • Leave the XY tolerance option blank (see later).

  • Check 'Gaps allowed'

This should produce an output shapefile in which each polygon has attributes from both the 1880 and 1940 shapefiles. You will need to calculate the areas of your new polygons, so open the table and add a new field (of 'double' type), and use the field > calculate geometry to calculate the new areas (e.g. ‘ AreaUni’).

You can then add another field in which you can calculate percentages, which should be: (AreaUni/Area1940)*100

It might help to decide exactly which fields you will need in your output shapefile before you do the union. How many fields do your two input shapefiles have? For this analysis you really only need county names or Ids from each time and area for 1940. It might make things clearer if you make copies of your shapefiles and delete any unnecessary fields from them before doing the union.

But there are several issues which may complicate things. The biggest is probably how the two boundary sets were digitised. If boundaries that should be the same are slightly different you will end up with hundreds of small slither polygons along the edges of your union output. These can be dealt with during the union process by specifying an XY tolerance. Specifying a tolerance will snap together verticies that are within the tolerance, thereby eliminating slither polygons. I’m not sure that there is a guide for what value to use – you might have to do a bit of trial and error, and have a look at the differences between like boundaries.

|improve this answer|||||
  • When I follow those two steps, how do I merge the 1880 area with the unioned file. I want to know what share is each new polygon of the original 1880 area. I was following the 3rd post in: forums.arcgis.com/threads/… However, that is not merging in the correct area. – user1690130 Oct 10 '12 at 21:06
  • If you run the union as specified above, all the attributes from both the input files should be maintained in the output file. If you want your final values to be a % of the 1880 areas, then make sure your 1880 shapefile contains an area attribute (e.g. Area1880). you can the calculate the % in the same way - in the union file Area% = (AreaUni/Area1880)*100. If that's not working you could post exactly what fields each of your input shapefiles have, and what you end up with in your output. You shouldn't have to join in any additional information after the union to get the result you want. – Flo Harrison Oct 11 '12 at 8:15
  • I think @FloHarrison should be awarded the Answer and Bounty – PolyGeo Oct 15 '12 at 2:20

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.