<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to make this extraction process faster in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9422#M776</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt; Thanks for the narative.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;So I think you can:&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;1. Buffer your points&amp;nbsp; &lt;BR /&gt;2. Run an Identity (or Intersect) tool on your points and buffer polygon - This will "tag" each point with what point buffer it is within - be carefull because you will end up with duplicate points where the buffer polygons overlap!!!&amp;nbsp;&amp;nbsp; &lt;BR /&gt;3. In a cursor (maybe helpfull to use a Python dictionary to sort out some of the realtionships) - use the Intersect/Identity tabular information (x/y/point_id/buffer_id) to analyze the realtionships.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;Run a small sample area of your point and point buffers through the Identity or Intersect tools to see what can be done with the output table info.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;A recursive SelectByLocation will be extreemly slow compared with the convetional Intersect or Identity tools.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code using Intersect_analysis instead of SelectLayByLocation &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, time
arcpy.env.workspace = r'C:\TempArcGISCalculate\TempFile\TestforReadingFile'
arcpy.env.overwriteOutput=True
ptfc = 'Section01_SplitedTrips.shp'
t0=time.clock() 
arcpy.Buffer_analysis(ptfc,'in_memory/Section01Buffer','4 meters')


arcpy.MakeFeatureLayer_management('in_memory/Section01Buffer','S1buffer')

ptCurs=arcpy.SearchCursor('S1buffer')
ptcur = ptCurs.next()
count = 1
while ptcur:
&amp;nbsp;&amp;nbsp;&amp;nbsp; selPoly=arcpy.SelectLayerByAttribute_management('S1buffer',"NEW_SELECTION","\"FID\"="+str(ptcur.FID))
&amp;nbsp;&amp;nbsp;&amp;nbsp; themeList=['S1buffer',ptfc]
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Intersect_analysis(themeList,'in_memory/points_within_buffers')
&amp;nbsp;&amp;nbsp;&amp;nbsp; bufPts = 'in_memory/points_within_buffers'
&amp;nbsp;&amp;nbsp;&amp;nbsp; PtCount = arcpy.GetCount_management(bufPts)
&amp;nbsp;&amp;nbsp;&amp;nbsp; curs = arcpy.SearchCursor(bufPts)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print PtCount
&amp;nbsp;&amp;nbsp;&amp;nbsp; for cur in curs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print count, cur.getValue('LON_X')," ", cur.getValue('LAT_Y')

&amp;nbsp;&amp;nbsp;&amp;nbsp; del cur,curs
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptcur = ptCurs.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp; count = count + 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; if count&amp;gt;10:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break

del ptcur, ptCurs
print "Elapsed time: " , time.clock() - t0
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use 10 sample data points for both script. the results are same. However, &lt;/SPAN&gt;&lt;STRONG style="color: &amp;quot;#FF0000&amp;quot;;"&gt;the Intersect takes 39.5106703156 secs&lt;/STRONG&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN style="color:&amp;quot;#00FF00&amp;quot;;"&gt;&lt;STRONG&gt;SelectLayByLocation takes 9.16266229449 sec&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you please have a look at the Intersect one, please?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 Dec 2021 20:23:15 GMT</pubDate>
    <dc:creator>zhengniu1</dc:creator>
    <dc:date>2021-12-10T20:23:15Z</dc:date>
    <item>
      <title>How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9417#M771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a point shapefile wihch has 527k data points. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1st step: I am trying to create a 4 meters buffer at each points to find its neighbours and corresponding information (such as X, Y, direction) within the buffer. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2nd step: To identify the points which fall in the overlapping area of two or more buffer, and assign them to their real buffer by comparing distances to each buffer's center&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3rd step:&amp;nbsp; Using all points (including the focal point) within the buffer to calculate average position (avg_X and avg_Y) and avg_Direction. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4th step: change the buffer point's x, y and direction to the avg_X, avg_Y, and avg_Direction.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Following code is for the 1st step &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, math
arcpy.env.workspace = r'C:\TempArcGISCalculate\TempFile\TestforReadingFile'
arcpy.env.overwriteOutput=True
ptfc = 'Section01_SplitedTrips.shp'
arcpy.MakeFeatureLayer_management(ptfc,'section01pts')
arcpy.Buffer_analysis(ptfc,'in_memory/Section01Buffer','4 meters')

arcpy.MakeFeatureLayer_management('in_memory/Section01Buffer','S1buffer')
#Cut out points inside each buffer
rows = arcpy.SearchCursor('in_memory/Section01Buffer')
row = rows.next()
count = 1

try:
&amp;nbsp;&amp;nbsp;&amp;nbsp; while row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; selPoly =arcpy.SelectLayerByAttribute_management('S1buffer',"NEW_SELECTION","\"FID\"="+str(row.FID))

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; selPts = arcpy.SelectLayerByLocation_management('section01pts',"WITHIN",selPoly, 0, "NEW_SELECTION")

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curs = arcpy.SearchCursor(selPts)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for cur in curs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print count, cur.getValue('LON_X')," ", cur.getValue('LAT_Y')," ", cur.getValue('InitialBea')," ", cur.getValue('Trace')," ", row.getValue('LON_X'), " ", row.getValue('LAT_Y'), " ", row.getValue('Trace')

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del cur,curs
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row =rows.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = count + 1

&amp;nbsp;&amp;nbsp; del row, rows&amp;nbsp;&amp;nbsp;&amp;nbsp; 
except Exception, e:
&amp;nbsp;&amp;nbsp;&amp;nbsp; #If an error occurred, print line number and error message
&amp;nbsp;&amp;nbsp;&amp;nbsp; import traceback, sys
&amp;nbsp;&amp;nbsp;&amp;nbsp; tb = sys.exc_info()[2]
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "line %i" % tb.tb_lineno
&amp;nbsp;&amp;nbsp;&amp;nbsp; print e.message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 


&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Q1: Is it possible to make this process faster? it is ok for dataset which has row less than 1000, but takes longer as more date involved&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Q2: When I add " print arcpy.AddMessage("Elapsed time: " + str(time.clock() - beginTime))" before "del row, rows", It always tells below. This command used to be ok for my previous script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Traceback (most recent call last):&lt;BR /&gt;&amp;nbsp; File "C:\Python26\ArcGIS10.0\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 312, in RunScript&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exec codeObject in __main__.__dict__&lt;BR /&gt;&amp;nbsp; File "C:\TempArcGISCalculate\PythonScript\SelectbyLocation.py", line 31, in &amp;lt;module&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Elapsed time: " + str(time.clock() - beginTime))&lt;BR /&gt;NameError: name 'time' is not defined&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:23:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9417#M771</guid>
      <dc:creator>zhengniu1</dc:creator>
      <dc:date>2021-12-10T20:23:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9418#M772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Anything is possible...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you give a narative description of what this code is doing? Looks like it is attempting to define some sort of 'spatial association' - like identifying the points within the buffer of a polygon.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe a conventional overlay tool would better serve this purpose... For example, Intersect (Intersect tool) your polygons buffers with your points and cursor through that output.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2012 23:14:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9418#M772</guid>
      <dc:creator>ChrisSnyder</dc:creator>
      <dc:date>2012-03-08T23:14:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9419#M773</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;And you need to import the time module to get time.clock() to work&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code jive_text_macro"&gt;import time&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2012 23:16:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9419#M773</guid>
      <dc:creator>ChrisSnyder</dc:creator>
      <dc:date>2012-03-08T23:16:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9420#M774</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Anything is possible...&lt;BR /&gt;&lt;BR /&gt;Can you give a narative description of what this code is doing? Looks like it is attempting to define some sort of 'spatial association' - like identifying the points within the buffer of a polygon.&lt;BR /&gt;&lt;BR /&gt;Maybe a conventional overlay tool would better serve this purpose... For example, Intersect (Intersect tool) your polygons buffers with your points and cursor through that output.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sorry for making you confuse. I restate my problem again.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2012 23:45:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9420#M774</guid>
      <dc:creator>zhengniu1</dc:creator>
      <dc:date>2012-03-08T23:45:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9421#M775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the narative.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I think you can:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Buffer your points&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Run an Identity (or Intersect) tool on your points and buffer polygon - This will "tag" each point with what point buffer it is within - be carefull because you will end up with duplicate points where the buffer polygons overlap!!! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. In a cursor (maybe helpfull to use a Python dictionary to sort out some of the realtionships) - use the Intersect/Identity tabular information (x/y/point_id/buffer_id) to analyze the realtionships.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Run a small sample area of your point and point buffers through the Identity or Intersect tools to see what can be done with the output table info.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A recursive SelectByLocation will be extreemly slow compared with the convetional Intersect or Identity tools.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Mar 2012 23:56:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9421#M775</guid>
      <dc:creator>ChrisSnyder</dc:creator>
      <dc:date>2012-03-08T23:56:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9422#M776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt; Thanks for the narative.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;So I think you can:&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;1. Buffer your points&amp;nbsp; &lt;BR /&gt;2. Run an Identity (or Intersect) tool on your points and buffer polygon - This will "tag" each point with what point buffer it is within - be carefull because you will end up with duplicate points where the buffer polygons overlap!!!&amp;nbsp;&amp;nbsp; &lt;BR /&gt;3. In a cursor (maybe helpfull to use a Python dictionary to sort out some of the realtionships) - use the Intersect/Identity tabular information (x/y/point_id/buffer_id) to analyze the realtionships.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;Run a small sample area of your point and point buffers through the Identity or Intersect tools to see what can be done with the output table info.&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;A recursive SelectByLocation will be extreemly slow compared with the convetional Intersect or Identity tools.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code using Intersect_analysis instead of SelectLayByLocation &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, time
arcpy.env.workspace = r'C:\TempArcGISCalculate\TempFile\TestforReadingFile'
arcpy.env.overwriteOutput=True
ptfc = 'Section01_SplitedTrips.shp'
t0=time.clock() 
arcpy.Buffer_analysis(ptfc,'in_memory/Section01Buffer','4 meters')


arcpy.MakeFeatureLayer_management('in_memory/Section01Buffer','S1buffer')

ptCurs=arcpy.SearchCursor('S1buffer')
ptcur = ptCurs.next()
count = 1
while ptcur:
&amp;nbsp;&amp;nbsp;&amp;nbsp; selPoly=arcpy.SelectLayerByAttribute_management('S1buffer',"NEW_SELECTION","\"FID\"="+str(ptcur.FID))
&amp;nbsp;&amp;nbsp;&amp;nbsp; themeList=['S1buffer',ptfc]
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Intersect_analysis(themeList,'in_memory/points_within_buffers')
&amp;nbsp;&amp;nbsp;&amp;nbsp; bufPts = 'in_memory/points_within_buffers'
&amp;nbsp;&amp;nbsp;&amp;nbsp; PtCount = arcpy.GetCount_management(bufPts)
&amp;nbsp;&amp;nbsp;&amp;nbsp; curs = arcpy.SearchCursor(bufPts)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print PtCount
&amp;nbsp;&amp;nbsp;&amp;nbsp; for cur in curs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print count, cur.getValue('LON_X')," ", cur.getValue('LAT_Y')

&amp;nbsp;&amp;nbsp;&amp;nbsp; del cur,curs
&amp;nbsp;&amp;nbsp;&amp;nbsp; ptcur = ptCurs.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp; count = count + 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; if count&amp;gt;10:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break

del ptcur, ptCurs
print "Elapsed time: " , time.clock() - t0
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use 10 sample data points for both script. the results are same. However, &lt;/SPAN&gt;&lt;STRONG style="color: &amp;quot;#FF0000&amp;quot;;"&gt;the Intersect takes 39.5106703156 secs&lt;/STRONG&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN style="color:&amp;quot;#00FF00&amp;quot;;"&gt;&lt;STRONG&gt;SelectLayByLocation takes 9.16266229449 sec&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you please have a look at the Intersect one, please?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:23:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9422#M776</guid>
      <dc:creator>zhengniu1</dc:creator>
      <dc:date>2021-12-10T20:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: How to make this extraction process faster</title>
      <link>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9423#M777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;No need to loop - just this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, time
arcpy.env.workspace = r'C:\TempArcGISCalculate\TempFile\TestforReadingFile'
arcpy.env.overwriteOutput=True
ptfc = 'Section01_SplitedTrips.shp'
t0=time.clock()
bufferFC = 'in_memory/Section01Buffer'
arcpy.Buffer_analysis(ptfc, bufferFC,'4 meters')
identityFC = r"in_memory\identity"
arcpy.Identity_analysis(ptfc, bufferFC, identityFC, "ALL", "", "")&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I think all the info you should need is it the attribute table of&amp;nbsp; identityFC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe add/populate an X andY field. Beware that you will now have poiuts that will overlap n times in areas that have n overlapping buffer polygons. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Then use a searchcursor and a python dictionary. You can key the dictionary by (x,y) coordinate pairs. Might have to build a few different dictionaries to keep track of everything.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Dec 2021 20:23:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-make-this-extraction-process-faster/m-p/9423#M777</guid>
      <dc:creator>ChrisSnyder</dc:creator>
      <dc:date>2021-12-10T20:23:17Z</dc:date>
    </item>
  </channel>
</rss>

