Take a look at the Find Overlapping Features tool
How can I change the FID to OBJECTID???
I need to transform these numbers into primary key FID
Thks in advance!
From there you drag the command to an existing toolbar. Once you exit the Customize dialog, the tool is available.
Adding a command to a toolbar or the main menu—Help | ArcGIS Desktop
Thanks Ken Buja
I have download and install it and it is listed in the addin manager. If I go to customize and choose commands I can follow the path of Biogeography Tools and I can see the tool there. From there I have not been able to figure out how to actually use it.
Thanks bixb0012
I am using ArcGIS for Desktop 10.3 standard version, the Tabulate Intersect tool seems to be very useful, the challenge is because i don't have the Advanced licence .
If you have an Advanced license, Tabulate Intersection will tell you everything you need to know and more.
Well this doesn't quite do what you want, but makes a condensed version of the union output with each poly now recording the count of overlaps and a list of the original polygons that went into them.
<SPAN class="keyword token">import</SPAN> sys<SPAN class="punctuation token">,</SPAN> os<SPAN class="punctuation token">,</SPAN> arcpy <SPAN class="keyword token">from</SPAN> arcpy <SPAN class="keyword token">import</SPAN> env HomeDir <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"path to directory"</SPAN> scratchFgdb <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>HomeDir<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"scratch.gdb"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="comment token"># input fgdb</SPAN> fc <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Input_Union"</SPAN> <SPAN class="comment token"># input polygons (result of a union)</SPAN> env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> scratchFgdb env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN> <SPAN class="comment token"># check the sr of the input</SPAN> desc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>fc<SPAN class="punctuation token">)</SPAN> sr <SPAN class="operator token">=</SPAN> desc<SPAN class="punctuation token">.</SPAN>spatialReference poly_dict <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN> <SPAN class="comment token"># union has "ORIG_FID" as part of its output</SPAN> <SPAN class="keyword token">with</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>SearchCursor<SPAN class="punctuation token">(</SPAN>fc<SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"ORIG_FID"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"SHAPE@"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"SHAPE@XY"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> Cur<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> Cur<SPAN class="punctuation token">:</SPAN> <SPAN class="comment token"># read in the data</SPAN> origFid <SPAN class="operator token">=</SPAN> row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN> geom <SPAN class="operator token">=</SPAN> row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">01</SPAN><SPAN class="punctuation token">]</SPAN> cent <SPAN class="operator token">=</SPAN> row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="comment token"># making a Key variable, just round off the centroid</SPAN> x <SPAN class="operator token">=</SPAN> round<SPAN class="punctuation token">(</SPAN>cent<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN> y <SPAN class="operator token">=</SPAN> round<SPAN class="punctuation token">(</SPAN>cent<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">)</SPAN> Key <SPAN class="operator token">=</SPAN> <SPAN class="string token">"{:.1f}/{:.1f}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">,</SPAN> y<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">if</SPAN> Key <SPAN class="keyword token">in</SPAN> poly_dict<SPAN class="punctuation token">:</SPAN> poly_dict<SPAN class="punctuation token">[</SPAN>Key<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">+=</SPAN> <SPAN class="number token">1</SPAN> poly_dict<SPAN class="punctuation token">[</SPAN>Key<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">.</SPAN>append<SPAN class="punctuation token">(</SPAN>origFid<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN> poly_dict<SPAN class="punctuation token">[</SPAN>Key<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN>geom<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">[</SPAN>origFid<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="comment token"># output polygon</SPAN> outFc <SPAN class="operator token">=</SPAN> <SPAN class="string token">"tmpOverlapPoly"</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>CreateFeatureclass_management<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"in_memory"</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"POLYGON"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> sr<SPAN class="punctuation token">)</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>AddField_management<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"in_memory"</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Key"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"TEXT"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">50</SPAN><SPAN class="punctuation token">)</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>AddField_management<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"in_memory"</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"COUNT"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"SHORT"</SPAN><SPAN class="punctuation token">)</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>AddField_management<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"in_memory"</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"FidList"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"TEXT"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">255</SPAN><SPAN class="punctuation token">)</SPAN> inCur <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>InsertCursor<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"in_memory"</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"Key"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"COUNT"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"FidList"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"SHAPE@"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> k<SPAN class="punctuation token">,</SPAN> v <SPAN class="keyword token">in</SPAN> poly_dict<SPAN class="punctuation token">.</SPAN>items<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN> Key <SPAN class="operator token">=</SPAN> k geom <SPAN class="operator token">=</SPAN> v<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN> cnt <SPAN class="operator token">=</SPAN> v<SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN> fids <SPAN class="operator token">=</SPAN> v<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN> fidStr <SPAN class="operator token">=</SPAN> <SPAN class="string token">","</SPAN><SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>str<SPAN class="punctuation token">(</SPAN>f<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">for</SPAN> f <SPAN class="keyword token">in</SPAN> fids<SPAN class="punctuation token">)</SPAN> data <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN>Key<SPAN class="punctuation token">,</SPAN> cnt<SPAN class="punctuation token">,</SPAN> fidStr<SPAN class="punctuation token">,</SPAN> geom<SPAN class="punctuation token">]</SPAN> inCur<SPAN class="punctuation token">.</SPAN>insertRow<SPAN class="punctuation token">(</SPAN>data<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">del</SPAN> inCur arcpy<SPAN class="punctuation token">.</SPAN>CopyFeatures_management<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"in_memory"</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> outFc<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Looks like this :
Intersect is the right way to get overlapping features. but your problem is output. so
After using Intersect tool for polygon feature class only , you can make Spatial Join to get the table the you want.
Join the Original polygon feature class and the output from Intersect. And Make Join Operation (one to many) and
Match Option (Intersect).
I have tried intersect, but the problem is the output.
I think the output will be Poly #1 overlaps with Polys 2 & 3. also Poly # 2 also overlaps 1....
Because they are all in the same layer, but if there is a solution for Poly #1 overlaps with Polys 2 & 3. only it will be much better.
Thanks for your response.
But, then again....
Would you want each overlap poly referring back to others.
ie in your example...
Poly #1 overlaps with Polys 2 & 3. Therefore Poly # 2 also overlaps 1....
Might be trickier than I think to get what you want.
I have used in the past a fairly simple script just to output the polygon, with a count of the overlaps for that piece.
Well the start would be a Union in the Analysis / Overlay tool box.
That gives you multiple polygon pieces overlying each other where there was once an overlap.
After that, to get the output you want, I think you would have to do some arcpy / python scripting.
Not too difficult.
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.