2

I am using ArcGIS 10.1 and have a polygon shapefile with 16000 records. There are many polygons that are overlapping and my goal is

  1. to determine the overlap portions
  2. fix the problem, so that there is no overlap between adjacent polygons (likely using dissolve)
  3. ideally that the overlapped portion between the polygons is assigned to the polygon that has the older date, taken from the date column of the attribute table.

The graphic shows the details:

enter image description here

So far, I have succeeded with 1, detecting the overlap by using either union or running intersect on the original file (upper right portion in graphic).

Next I ran dissolve with the goal of merging the overlapped portion with the polygon that shares the same ID:100. This does not work; it does not dissolve the boundaries between the original overlap and the polygons. This really puzzles me, because if there are polygons with shared boundaries that have the same attributes and you use dissolve, should they not become the same polygon? All the attributes of the overlap and one of the polygons are identical, and I have used several different fields as well as all fields for the dissolve, all with the same result.

Using another approach, I created a separate shapefile that contains only the overlapped polygons. I then used erase on the original file to stamp out the overlap portion, which left me with a hole where the overlap was. I then tried to combined these 2 files (I tried merge, union, and update), thinking that I could then use dissolve on that result. However, the output from that dissolve is still the same, it does not dissolve the boundaries.

Because I did not succeed in the dissolve, I don’t even know how to attack 3, assigning the overlap to the polygon with the older data.

  • I don't have time to investigate this right now, but I am certain this particular problem has been addressed in one or more questions before. If you do some searching on related terms you might find some of the solutions. – Chris W Jul 24 '15 at 18:21
  • This is similar to this question. gis.stackexchange.com/questions/154263/add-overlapping-polygons and I think the solution offered there closely matches one that might work for you. – jbchurchill Jul 24 '15 at 20:15
5

The Union will create duplicate polygons on top of each other (older one + newer one) at areas where they overlap (the selected polygons below have 2 overlapping).

Stacked Polygons

You could deduplicate these by running Find Identical (use the [SHAPE] field and check "Output only duplicate records".

Find Identical

Then Join your union polygons based on [OBJECTID] and [IN_FID] and "keep only matching records".

Join

You'll obtain all the duplicate pairs based on [FEAT_SEQ].

Duplicates with Older Timestamp

Export these dupes out separately. To deduplicate these, run a Dissolve on the exported dupes, specifying either the [FEAT_SEQ] or nothing for the Dissolve Fields and the [Date] field and "Min" type in the Statistics Fields. Once the exported dupes are deduplicated, you can join/merge/append/data load/etc. to reconcile the two feature classes together. @Chris W suggested this bit.

Dissolve on Dupes

Then your main Dissolve on the whole feature class should work.

enter image description here

And the result.

Final Output

Let me know if this doesn't do it for you.

  • @jbchurchill Beat me to the punch, great suggestion ;) You can also develop a workflow with Intersect like he suggested in the link, which would bypass the Find Identical tool (which requires the Advanced license). – John Jul 24 '15 at 20:23
  • Just an untested idea, but rather than manually sorting which of the identical polys had the newer date, I would try exporting all the selected duplicate polygons to a separate file and then dissolve them there. During the dissolve (which would not be based on a field) and not allowing multiparts, set a statistic field in the tool to use the min method on the date field. The resulting dissolve should have the older date for all polys, and could be used with a join/selection/whatever to grab the correct duplicate for merging back in. Assuming date isn't a string that is. – Chris W Jul 25 '15 at 0:19
  • Brilliant! @Chris W. It never occurred to me you could use Dissolve to deduplicate polygons. Edited your contribution into the main answer. Thanks =) – John Jul 25 '15 at 2:52
  • Thanks, every one. Prior to trying out the above solution, a colleague suggested that after the union step, I could select all the overlaps and then use Eliminate to get rid of the overlaps, which worked. I have not tested out the dissolve based on min to get the older date, but this sounds feasible. – Andrea Jul 28 '15 at 22:23

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.