<?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: Create a points grid for each polygon in a polygon file in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402787#M13647</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Kevin,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Are the extents of your polygons (not the polygons) overlapping or are they completely disjoint?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cedric&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 Jun 2010 16:49:43 GMT</pubDate>
    <dc:creator>CedricWannaz</dc:creator>
    <dc:date>2010-06-08T16:49:43Z</dc:date>
    <item>
      <title>Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402786#M13646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have found the following python script (Generate Lattice - &lt;/SPAN&gt;&lt;A href="http://arcscripts.esri.com/details.asp?dbid=14398"&gt;http://arcscripts.esri.com/details.asp?dbid=14398&lt;/A&gt;&lt;SPAN&gt;) that will create a points grid.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have run the script for a small area and it works very well.&amp;nbsp; however I was wondering if anyone could advise on how I could modify the script for my purposes?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have been given a polygon file that contains many polygons covering a very large area, however there is a much larger area that does not contain any polygons at all.&amp;nbsp; I have been asked to add a point grid to each of the polygons.&amp;nbsp; One way I thought of doing this would be to use the script and then select only the points that fall within the polygons - however the problem I have is that the extent of the file is so large I end up creating thousands of points that I don't need, plus this process of creating the initial grid takes many hours to run.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can understand that the way to approach this would be as below, I'm just not sure about what steps I need to take to achieve this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Go the first polygon in my polygon file&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) extract the min x and min y coords of that features envelope&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3) create a points grid from the origin of the the min x and y coords&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4) move to the next polygon.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Could anyone give any advice on how I might be able to achieve this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help would be appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Kevin&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Jun 2010 10:33:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402786#M13646</guid>
      <dc:creator>KevinCressy</dc:creator>
      <dc:date>2010-06-08T10:33:12Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402787#M13647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Kevin,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Are the extents of your polygons (not the polygons) overlapping or are they completely disjoint?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cedric&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Jun 2010 16:49:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402787#M13647</guid>
      <dc:creator>CedricWannaz</dc:creator>
      <dc:date>2010-06-08T16:49:43Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402788#M13648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If you are interested in an un-elegant solution, I spent 20 minutes and wrote what follows. It is certainly possible to do everything in a few smart operations using the Desktop interface, but I am not that smart, and elegance is not always mandatory &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code produces the output that is attached to this post. I was not sure whether you wanted one single point feature class in the end or as many as there are polygons, so I didn't implement the union..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cedric&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
def buildSubArray( fc, extent, dist_x, dist_y ):

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Determine the number of points that can fit in the x and y directions
&amp;nbsp;&amp;nbsp;&amp;nbsp; # in the extent of the polygon, and create a centered grid in this extent.

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Note: points are equidistant in the chosen coordinate system (and NOT
&amp;nbsp;&amp;nbsp;&amp;nbsp; # on ground, unless you are working with an equidistant - hence rather 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # local - coordinate system).

&amp;nbsp;&amp;nbsp;&amp;nbsp; range_x&amp;nbsp;&amp;nbsp; = extent.xmax-extent.xmin
&amp;nbsp;&amp;nbsp;&amp;nbsp; nPoints_x = (int) (range_x / dist_x)
&amp;nbsp;&amp;nbsp;&amp;nbsp; start_x&amp;nbsp;&amp;nbsp; = extent.xmin + 0.5 * (range_x - nPoints_x * dist_x)

&amp;nbsp;&amp;nbsp;&amp;nbsp; range_y&amp;nbsp;&amp;nbsp; = extent.ymax-extent.ymin
&amp;nbsp;&amp;nbsp;&amp;nbsp; nPoints_y = (int) (range_y / dist_y)
&amp;nbsp;&amp;nbsp;&amp;nbsp; start_y&amp;nbsp;&amp;nbsp; = extent.ymin + 0.5 * (range_y - nPoints_y * dist_y)

&amp;nbsp;&amp;nbsp;&amp;nbsp; point&amp;nbsp; = gp.CreateObject( 'POINT' )
&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = gp.InsertCursor( fc )
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i_y in range( nPoints_y ) :
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i_x in range( nPoints_x ) :
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature = cursor.NewRow()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; point.x = start_x + i_x * dist_x
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; point.y = start_y + i_y * dist_y
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; feature.shape = point
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.InsertRow( feature )
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; del feature
&amp;nbsp;&amp;nbsp;&amp;nbsp; del cursor
&amp;nbsp;&amp;nbsp;&amp;nbsp; del point
&amp;nbsp;&amp;nbsp;&amp;nbsp; 


print '--- Start.\n'


# -- Initialization.

# Create and initialize the Geoprocessor.
import arcgisscripting

gp = arcgisscripting.create( 9.3 )
gp.SetProduct( 'ArcInfo' )
gp.Workspace = r'C:\Users\wannaz\Documents\Projects\ArcGIS General\CreateArrayOfPoints\project.gdb'
gp.OverwriteOutput = 1

# Define setup-specific parameters.
polygon_fc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'polygons'
temporary_fc&amp;nbsp;&amp;nbsp;&amp;nbsp; = '__points'
clipped_fc_base = 'clippedPoints_'

xSpacing&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 5
ySpacing&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = xSpacing

# Create a layer from the polygon feature class for select() purpose.
polygon_layer = 'polygons_layer'
gp.MakeFeatureLayer_management( polygon_fc, polygon_layer )

# Extract the OBJECTID field name.
polygon_desc = gp.Describe( polygon_layer )
polygon_OIDFieldName = polygon_desc.OIDFieldName


# -- Loop over polygons.

rows = gp.SearchCursor( polygon_layer ) 
row&amp;nbsp; = rows.Next()

while row :
&amp;nbsp;&amp;nbsp;&amp;nbsp; oid = row.GetValue( polygon_OIDFieldName )&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; print ' Processing polygon', oid, '..',&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; # - Create array of points that covers the extent of current polygon.
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.CreateFeatureclass( gp.Workspace, temporary_fc, "POINT", polygon_fc, "", "", polygon_desc.SpatialReference )
&amp;nbsp;&amp;nbsp;&amp;nbsp; extent = row.shape.Extent
&amp;nbsp;&amp;nbsp;&amp;nbsp; buildSubArray( temporary_fc, extent, xSpacing, ySpacing )
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # - Select current polygon and clip.

&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = polygon_OIDFieldName + " = " + str( oid )
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.SelectLayerByAttribute_management( polygon_layer, "NEW_SELECTION", whereClause ) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; clipped_fc = clipped_fc_base + str( oid )
&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.Clip_analysis( temporary_fc, polygon_layer, clipped_fc )

&amp;nbsp;&amp;nbsp;&amp;nbsp; print "done."
&amp;nbsp;&amp;nbsp;&amp;nbsp; row&amp;nbsp; = rows.Next()

del rows
del row&amp;nbsp;&amp;nbsp;&amp;nbsp; 


# -- Union?

# If you were interested in the union of sub grids but not in the sub grids
# themselves, you could create them in_memory to be faster. In such case, you
# could create a list of sub grid names in the loop above, that you would pass
# to the Union_analysis() tool/method. You would have to delete the temporary
# sub grids afterwards.&amp;nbsp; 
# PS: it would take about two minutes for me to update this script for it to
#&amp;nbsp;&amp;nbsp;&amp;nbsp; perform the union, so let me know if it would help.


# -- Mr. Proper.

gp.Delete_management( temporary_fc )
gp.Delete_management( polygon_layer )


print '\n--- End of Job.'
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:21:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402788#M13648</guid>
      <dc:creator>CedricWannaz</dc:creator>
      <dc:date>2021-12-11T18:21:48Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402789#M13649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Cedric,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Unfortunately it appears that your solution requires an ArcInfo licence - I only have ArcView so have been unable to test this.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jun 2010 12:31:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402789#M13649</guid>
      <dc:creator>KevinCressy</dc:creator>
      <dc:date>2010-06-10T12:31:51Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402790#M13650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Did you try to run it after replacing "ArcInfo" with "ArcView" in the SetProduct() call ?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jun 2010 19:21:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402790#M13650</guid>
      <dc:creator>CedricWannaz</dc:creator>
      <dc:date>2010-06-10T19:21:04Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402791#M13651</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello all, not sure if someone can help here, I seem to be getting quite close now - but I am still struggling.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have put together the following script to create a grid of points within the boundaries of each polygon in my polygon file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am however getting an unexpected error in Python - which is telling me that it cannot find the created shapefile even though I see that these are created in the output directory. The error I am getting is below:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ERROR 000210: Cannot create output C:\Python_Test\outputBELppend_fishnet_pnt.shp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Failed to execute (Clip).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What seems strange is that the file path is not correct in the returned error. The file path should be:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C:\Python_Test\output\append_fishnet_pnt.shp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and NOT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;C:\Python_Test\outputBELppend_fishnet_pnt.shp&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;i.e. the work BEL seems to have replaced '\a'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any idea why this might be?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The full script is given below:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcgisscripting&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;gp = arcgisscripting.create(9.3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;gp.overwriteOutput = 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;inpolys = r'C:\Python_Test\Polygons.shp'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;infc = inpolys&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#dsc = gp.Describe(infc)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#sr = dsc.spatialreference&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#gp.outputCoordinateSystem = sr&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rows = gp.SearchCursor(infc)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; row = rows.next() # take me to first row&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; id = 0 # this index is used to rename the output for each iteration&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; while row:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; feat = row.shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ext = feat.Extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; xmin = ext.XMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; xmax = ext.XMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ymin = ext.YMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ymax = ext.YMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; origin = str(xmin) + " " + str(ymin)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; direction = ymin + float(100)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; opp_corner = str(xmax) + " " + str(ymax)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; y_axis = str(xmin) + " " + str(direction)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; outfc = r"C:\Python_Test\output\myfishnettemp.shp" # + str(i)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.CreateFishnet_management(outfc, origin, y_axis, "0.5", "0.5", "0", "0", opp_corner, 'LABELS') &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #fid = 0 # as it is a shapefile, it starts with zero for row in rows: # you are using just to iterate not to use the row object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; outIndivPolygonfc = r"C:\Python_Test\output\indiv_poly.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; where_clause = '"FID" = %i' % (id)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.Select_analysis(infc, outIndivPolygonfc, where_clause)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.Clip_analysis("C:\Python_Test\output\myfishnettemp_label.shp", "C:\Python_Test\output\indiv_poly.shp", "C:\Python_Test\output\append_fishnet_pnt.shp")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.Append_management('C:\Python_Test\output\append_fishnet_pnt.shp', "C:\Python_Test\output\final_fishnet_pnt.shp", "NO_TEST")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; row = rows.next() &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; id = id + 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;except:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print gp.GetMessages(2)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jun 2010 10:17:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402791#M13651</guid>
      <dc:creator>KevinCressy</dc:creator>
      <dc:date>2010-06-14T10:17:32Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402792#M13652</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Correct:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;input = &lt;/SPAN&gt;&lt;STRONG&gt;r&lt;/STRONG&gt;&lt;SPAN&gt;"C:\aProject\newFile.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;input = "C:&lt;/SPAN&gt;&lt;STRONG&gt;\\&lt;/STRONG&gt;&lt;SPAN&gt;aProject&lt;/SPAN&gt;&lt;STRONG&gt;\\&lt;/STRONG&gt;&lt;SPAN&gt;newFile.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;input = "C:&lt;/SPAN&gt;&lt;STRONG&gt;/&lt;/STRONG&gt;&lt;SPAN&gt;aProject&lt;/SPAN&gt;&lt;STRONG&gt;/&lt;/STRONG&gt;&lt;SPAN&gt;newFile.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Incorrect:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;input = "C:\aProject\newFile.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Using single or double quotes doesn't change the behavior.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;Note: &lt;/STRONG&gt;&lt;SPAN&gt;I wrote what follows initially but this is &lt;/SPAN&gt;&lt;STRONG&gt;wrong&lt;/STRONG&gt;&lt;SPAN&gt;; I didn't see your Select():&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;"""By the way, if the extent of a feature/polygon overlaps another polygon in your setup, your method will fail because the clip will keep overlapping points. This is why I asked about the extents on 06-08-2010 09:49 AM, and why the example code that I wrote above "isolates" each polygon before clipping""".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cedric&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Jun 2010 12:22:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402792#M13652</guid>
      <dc:creator>CedricWannaz</dc:creator>
      <dc:date>2010-06-14T12:22:48Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402793#M13653</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I eventually managed to crack this with help from Peter McDaid and Nobbir Ahmed, Craig and Cedric. Thank you everyone else who replied to my threads and emails!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I include my final code below. Note that I have also added additional functionality to the script which now creates square buffers from the point features.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcgisscripting&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;gp = arcgisscripting.create(9.3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;gp.overwriteOutput = 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Example Argument Inputs: C:\Python_Test\output\final_fishnet_pnt.shp C:\Python_Test\output\final_fishnet_sqr.shp 0.5 TRUE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;inPoints = sys.argv[1] #Input point feature class - must be shapefile&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;outPolys = sys.argv[2] #Output polygon feature class - must be shapefile&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;bufDist = float(sys.argv[3]) #Buffer distance&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;keepFields = sys.argv[4] #Boolean type: Maintain fields and field values of the input in the output &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#This is the input polygon&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;inpolys = r"C:\Python_Test\Polygons.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;infc = inpolys&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;rows = gp.SearchCursor(infc)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # take me to first row in polygon file&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; row = rows.next() &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # this index is used as the fid value in the where clause query&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; id = 0 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; while row:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; feat = row.shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ext = feat.Extent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; xmin = ext.XMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; xmax = ext.XMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ymin = ext.YMin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ymax = ext.YMax&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; origin = str(xmin) + " " + str(ymin)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; direction = ymin + float(100)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; opp_corner = str(xmax) + " " + str(ymax)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; y_axis = str(xmin) + " " + str(direction)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; outfc = r"C:\Python_Test\output\myfishnettemp.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.CreateFishnet_management(outfc, origin, y_axis, "5", "5", "0", "0", opp_corner, 'LABELS') &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; #fid = 0 # as it is a shapefile, it starts with zero for row in rows: # you are using just to iterate not to use the row object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; outIndivPolygonfc = r"C:\Python_Test\output\indiv_poly.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; where_clause = '"FID" = %i' % (id)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.Select_analysis(infc, outIndivPolygonfc, where_clause)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.Clip_analysis(r"C:\Python_Test\output\myfishnettemp_label.shp", r"C:\Python_Test\output\indiv_poly.shp", r"C:\Python_Test\output\append_fishnet_pnt.shp")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.Append_management(r"C:\Python_Test\output\append_fishnet_pnt.shp", r"C:\Python_Test\output\final_fishnet_pnt.shp", "NO_TEST")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; row = rows.next() &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; id = id + 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Prepare the output based on whether field and field values are desired in the output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if keepFields:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # Create empty output polygon feature class that includes fields of the input&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.CreateFeatureClass(os.path.dirname(outPolys), os.path.basename(outPolys), "POLYGON", inPoints, "", "", inPoints)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Create a short-list of fields to ignore when moving fields values from input to output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ignoreFields = []&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # Use Describe properties to identify the ShapeFieldName and OIDFieldName&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; desc = gp.Describe(inPoints)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ignoreFields.append(desc.ShapeFieldName)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ignoreFields.append(desc.OIDFieldName)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Create a list of fields to use when moving field values from input to output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; fields = gp.ListFields(inPoints)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #field = fields.Next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #fieldList = []&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #while field:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # if field.Name not in ignoreFields:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # fieldList.append(field.Name)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # field = fields.Next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; fieldList = []&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; for field in fields:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if field.Name not in ignoreFields:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; fieldList.append(field.Name)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # Create empty output polygon feature class without fields of the input&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gp.CreateFeatureClass(os.path.dirname(outPolys), os.path.basename(outPolys), "POLYGON", "", "", "", inPoints)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Open searchcursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; inRows = gp.SearchCursor(inPoints)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; inRow = inRows.Next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Open insertcursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; outRows = gp.InsertCursor(outPolys)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Create point and array objects&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pntObj = gp.CreateObject("Point")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; arrayObj = gp.CreateObject("Array")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; while inRow: # One output feature for each input point feature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; inShape = inRow.Shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pnt = inShape.GetPart(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # Need 5 vertices for square buffer: upper-right, upper-left, lower-left,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # lower-right, upper-right. Add and subtract distance from coordinates of&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # input point as appropriate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; for vertex in [0,1,2,3,4]:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pntObj.id = vertex&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if vertex in [0,3,4]:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pntObj.x = pnt.x + bufDist&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pntObj.x = pnt.x - bufDist&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if vertex in [0,1,5]:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pntObj.y = pnt.y + bufDist&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pntObj.y = pnt.y - bufDist&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; arrayObj.add(pntObj)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Create new row for output feature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; feat = outRows.NewRow()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Shift atttributes from input to output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if keepFields:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; for fieldName in fieldList:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; feat.SetValue(fieldName, inRow.GetValue(fieldName))&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Assign array of points to output feature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; feat.Shape = arrayObj&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; # Insert the feature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; outRows.InsertRow(feat)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Clear array of points&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; arrayObj.RemoveAll()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Get next feature in searchcursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; inRow = inRows.Next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; # Delete inputcursor&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; del outRows&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;except:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print gp.GetMessages(2)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Jun 2010 05:16:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/402793#M13653</guid>
      <dc:creator>KevinCressy</dc:creator>
      <dc:date>2010-06-15T05:16:13Z</dc:date>
    </item>
    <item>
      <title>Re: Create a points grid for each polygon in a polygon file</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/1313833#M26941</link>
      <description>&lt;P&gt;This is a pretty old post, but if you're still around I wouldn't mind seeing the union code. I was able to implement your code with some tweaks&lt;/P&gt;</description>
      <pubDate>Mon, 31 Jul 2023 20:03:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/create-a-points-grid-for-each-polygon-in-a-polygon/m-p/1313833#M26941</guid>
      <dc:creator>IanLane</dc:creator>
      <dc:date>2023-07-31T20:03:51Z</dc:date>
    </item>
  </channel>
</rss>

