<?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: Arcpy centroid within polygon in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728362#M56477</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you! It goes to show that taking a step back can lend some clarity. In the end, I had misdiagnosed my problem, but your example definitely helped.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem was in how I was re-writing the geometry. The major difference in my working script (below) and yours is that mine takes along all (an unknown number) of fields and writes them to the new geometry. I had been assigning the row[0].centroid coordinates to the SHAPE@XY token, but it was later overwritten by the shape value coming in with all fields ('*'). At least, I think that's what was going on...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14110715720456031" jivemacro_uid="_14110715720456031" modifiedtitle="true"&gt;
&lt;P&gt;# import libraries&lt;/P&gt;
&lt;P&gt;import arcpy, os&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set input/output parameters&lt;/P&gt;
&lt;P&gt;polyFC = arcpy.GetParameterAsText(0)&lt;/P&gt;
&lt;P&gt;outCentroids = arcpy.GetParameterAsText(1)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set overwrite environment&lt;/P&gt;
&lt;P&gt;arcpy.env.overwriteOutput = True&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# if the output file does not exist, create it. Add "ORIG_ID" field.&lt;/P&gt;
&lt;P&gt;if not arcpy.Exists(outCentroids):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(os.path.dirname(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.path.basename(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "POINT",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outCentroids,'ORIG_ID', 'LONG')&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# create an InsertCursor containing all the fields in ourCentroids, which are all the fields in polyFC plus "ORIG_ID"&lt;/P&gt;
&lt;P&gt;cursor = arcpy.da.InsertCursor(outCentroids, ['*'])&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# read all features in polyFC&lt;/P&gt;
&lt;P&gt;for row in arcpy.da.SearchCursor(polyFC, ["SHAPE@",'*','OID@']):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # create an array to hold a new, modified row&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray = []&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # read all the fields except "SHAPE@"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fieldnum in range(1,len(row)):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # if this is the second field [i.e. SHAPE], replace it with the centroid coordinates&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if fieldnum == 2:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[0].centroid)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[fieldnum])&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # write the new row to the cursor&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.insertRow(rowArray)&lt;/P&gt;
&lt;P&gt;del row&lt;/P&gt;

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 17 Sep 2014 23:55:02 GMT</pubDate>
    <dc:creator>DarrenWiens2</dc:creator>
    <dc:date>2014-09-17T23:55:02Z</dc:date>
    <item>
      <title>Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728353#M56468</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am attempting to make a script tool that&amp;nbsp; takes polygon input, and outputs centroid point (&lt;STRONG&gt;within&lt;/STRONG&gt; the polygon). &lt;A href="http://support.esri.com/cn/knowledgebase/techarticles/detail/41027"&gt;This &lt;/A&gt;knowledge base article seems to be incorrect, in that the SHAPE@XY token returns the center of gravity for the polygon, not the centroid within the polygon. Likewise, the centroid property in the &lt;A href="http://resources.arcgis.com/en/help/main/10.2/index.html#/Polygon/018z00000061000000/"&gt;Polygon class&lt;/A&gt;, used in the code below, returns the center of gravity rather than centroid within polygon. Any ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14109874901213232 jive_text_macro" jivemacro_uid="_14109874901213232"&gt;
&lt;P&gt;# import libraries&lt;/P&gt;
&lt;P&gt;import arcpy, os&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set input/output parameters&lt;/P&gt;
&lt;P&gt;polyFC = arcpy.GetParameterAsText(0)&lt;/P&gt;
&lt;P&gt;outCentroids = arcpy.GetParameterAsText(1)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set overwrite environment&lt;/P&gt;
&lt;P&gt;arcpy.env.overwriteOutput = True&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# if the output file does not exist, create it. Add "ORIG_ID" field.&lt;/P&gt;
&lt;P&gt;if not arcpy.Exists(outCentroids):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(os.path.dirname(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.path.basename(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "POINT",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outCentroids,'ORIG_ID', 'LONG')&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# collect all of the polygon centroids into an array&lt;/P&gt;
&lt;P&gt;pointArray = []&lt;/P&gt;
&lt;P&gt;for row in arcpy.da.SearchCursor(polyFC, ["SHAPE@",'*','OID@']):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray = []&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[0].centroid)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in range(1,len(row)):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[field])&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pointArray.append(rowArray)&lt;/P&gt;
&lt;P&gt;del row&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# write the centroids to the output file&lt;/P&gt;
&lt;P&gt;cursor = arcpy.da.InsertCursor(outCentroids, ["SHAPE@",'*'])&lt;/P&gt;
&lt;P&gt;for point in pointArray:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(point)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.insertRow(point)&lt;/P&gt;
&lt;P&gt;del cursor&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example output below:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="polys.JPG" class="jive-image image-1" src="https://community.esri.com/legacyfs/online/13226_polys.JPG" style="width: 620px; height: 616px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 21:00:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728353#M56468</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2014-09-17T21:00:55Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728354#M56469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have you tried using the polygon labelPoint? - this is supposed to be within the polygon:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN style="color: #4d4d4d; font-family: Arial, Helvetica, sans-serif; font-size: 12px;"&gt;The point at which the label is located. The labelPoint is always located within or on a feature.&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The documentation suggests that the labelPoint should be returned by centroid if the true centroid is not within the feature but this does not seem to be the case in your example.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 21:16:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728354#M56469</guid>
      <dc:creator>OwenEarley</dc:creator>
      <dc:date>2014-09-17T21:16:51Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728355#M56470</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.2/index.html#//018z00000061000000"&gt;labelpoint&lt;/A&gt; is what you are after ... me-thinks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 21:17:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728355#M56470</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2014-09-17T21:17:50Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728356#M56471</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the replies, but still "no."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is my understanding that "centroid" is supposed to return the labelPoint in the event that the first returned point does not fall inside the polygon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the updated, still not working, code:&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14109889715018487" jivemacro_uid="_14109889715018487"&gt;
&lt;P&gt;# import libraries&lt;/P&gt;
&lt;P&gt;import arcpy, os&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set input/output parameters&lt;/P&gt;
&lt;P&gt;polyFC = arcpy.GetParameterAsText(0)&lt;/P&gt;
&lt;P&gt;outCentroids = arcpy.GetParameterAsText(1)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set overwrite environment&lt;/P&gt;
&lt;P&gt;arcpy.env.overwriteOutput = True&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# if the output file does not exist, create it. Add "ORIG_ID" field.&lt;/P&gt;
&lt;P&gt;if not arcpy.Exists(outCentroids):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(os.path.dirname(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.path.basename(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "POINT",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outCentroids,'ORIG_ID', 'LONG')&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# collect all of the polygon centroids into an array&lt;/P&gt;
&lt;P&gt;pointArray = []&lt;/P&gt;
&lt;P&gt;for row in arcpy.da.SearchCursor(polyFC, ["SHAPE@",'*','OID@']):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray = []&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[0].labelPoint)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in range(1,len(row)):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[field])&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pointArray.append(rowArray)&lt;/P&gt;
&lt;P&gt;del row&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# write the centroids to the output file&lt;/P&gt;
&lt;P&gt;cursor = arcpy.da.InsertCursor(outCentroids, ["SHAPE@",'*'])&lt;/P&gt;
&lt;P&gt;for point in pointArray:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(point)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.insertRow(point)&lt;/P&gt;
&lt;P&gt;del cursor&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 21:22:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728356#M56471</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2014-09-17T21:22:59Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728357#M56472</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;labelpoint&lt;/STRONG&gt;&amp;nbsp; The point at which the label is located. The labelPoint is always located within or on a feature.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;centroid&amp;nbsp; &lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; The true centroid if it is within or on the feature; otherwise, the label point is returned. Returns a point object.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;truecentroid&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp; The center of gravity for a feature.&lt;/P&gt;&lt;P&gt;From the &lt;A href="http://resources.arcgis.com/en/help/main/10.2/index.html#//018z00000070000000"&gt;Geometry class&lt;/A&gt;, so I guess the most appropriate would be to specify truecentroid or labelpoint if centroid isn't up to snuff&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 21:36:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728357#M56472</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2014-09-17T21:36:48Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728358#M56473</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Dan, although I'm reading the exact same help files. &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...and I get the same result for centroid, trueCentroid, and labelPoint.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll admit I am not fully comfortable accessing geomtries with tokens - could this be the source of the issue? I've produced the same result (centroid outside of polygons) with both SHAPE@ and SHAPE@XY. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 21:39:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728358#M56473</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2014-09-17T21:39:08Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728359#M56474</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Darren...I figured as much...this was more for the benefit of those that aren't aware of the power of the &lt;A href="http://resources.arcgis.com/en/help/main/10.2/index.html"&gt;help files&lt;/A&gt; and how one can type in a keyword such as &lt;A href="http://resources.arcgis.com/search/?do=search&amp;amp;start=0&amp;amp;filter=0&amp;amp;lg=en&amp;amp;product=&amp;amp;version=10.2&amp;amp;collection=help-general&amp;amp;q=truecentroid"&gt;truecentroid&lt;/A&gt; and be given a list of appropriate links.&amp;nbsp; Similarily, on GeoNet, you can use the same &lt;A href="https://community.esri.com/t5/forums/searchpage/tab/message?q=truecentroid"&gt;truecentroid&lt;/A&gt; (2) and come up with a list of links some of which show that there have been &lt;A _jive_internal="true" href="https://community.esri.com/message/137944?sr=search&amp;amp;searchId=9069f52e-fdd1-43d6-a233-554a57e708bd&amp;amp;searchIndex=15#137944"&gt;errors in polygon geometry&lt;/A&gt; in the past&amp;nbsp; some have found &lt;A _jive_internal="true" href="https://community.esri.com/message/376722?sr=search&amp;amp;searchId=742431d3-ef00-4068-a4b9-4a4bd24fbacd&amp;amp;searchIndex=2#376722"&gt;other issues&lt;/A&gt; and if you search hard enough...you can&lt;A _jive_internal="true" href="https://community.esri.com/message/423253?sr=search&amp;amp;searchId=1e8eba96-92b6-418d-8048-4d136ab4a615&amp;amp;searchIndex=1#423253"&gt; find yourself again&lt;/A&gt; proving that you can never really get lost using the help files or GeoNet &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/laugh.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 22:04:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728359#M56474</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2014-09-17T22:04:14Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728360#M56475</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After running a similar test I am getting the expected results - they match what the documentation says should be happening:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="centroids.png" class="jive-image image-1" src="https://community.esri.com/legacyfs/online/13307_centroids.png" style="height: auto;" /&gt;&lt;/P&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14109934210631618" jivemacro_uid="_14109934210631618"&gt;
&lt;P&gt;cursor = arcpy.da.InsertCursor(outCentroids, ["SHAPE@",'ORIG_ID'])&lt;/P&gt;
&lt;P&gt;for row in arcpy.da.SearchCursor(polyFC, ["SHAPE@",'OID@']): &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.insertRow((row[0].centroid, row[1]))&lt;/P&gt;
&lt;P&gt;del row&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is the spatial reference defined on your input data?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 22:42:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728360#M56475</guid>
      <dc:creator>OwenEarley</dc:creator>
      <dc:date>2014-09-17T22:42:48Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728361#M56476</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you check my thread about geometry errors, you will find that, that was the conclusion, is SR is not set, single precision math is used otherwise double, and I am certain that it has ramifications throughout the geom... chain&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 23:08:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728361#M56476</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2014-09-17T23:08:20Z</dc:date>
    </item>
    <item>
      <title>Re: Arcpy centroid within polygon</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728362#M56477</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you! It goes to show that taking a step back can lend some clarity. In the end, I had misdiagnosed my problem, but your example definitely helped.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem was in how I was re-writing the geometry. The major difference in my working script (below) and yours is that mine takes along all (an unknown number) of fields and writes them to the new geometry. I had been assigning the row[0].centroid coordinates to the SHAPE@XY token, but it was later overwritten by the shape value coming in with all fields ('*'). At least, I think that's what was going on...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="python" __jive_macro_name="code" class="jive_macro_code jive_text_macro _jivemacro_uid_14110715720456031" jivemacro_uid="_14110715720456031" modifiedtitle="true"&gt;
&lt;P&gt;# import libraries&lt;/P&gt;
&lt;P&gt;import arcpy, os&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set input/output parameters&lt;/P&gt;
&lt;P&gt;polyFC = arcpy.GetParameterAsText(0)&lt;/P&gt;
&lt;P&gt;outCentroids = arcpy.GetParameterAsText(1)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# set overwrite environment&lt;/P&gt;
&lt;P&gt;arcpy.env.overwriteOutput = True&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# if the output file does not exist, create it. Add "ORIG_ID" field.&lt;/P&gt;
&lt;P&gt;if not arcpy.Exists(outCentroids):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(os.path.dirname(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.path.basename(outCentroids),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "POINT",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; polyFC)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(outCentroids,'ORIG_ID', 'LONG')&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# create an InsertCursor containing all the fields in ourCentroids, which are all the fields in polyFC plus "ORIG_ID"&lt;/P&gt;
&lt;P&gt;cursor = arcpy.da.InsertCursor(outCentroids, ['*'])&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;# read all features in polyFC&lt;/P&gt;
&lt;P&gt;for row in arcpy.da.SearchCursor(polyFC, ["SHAPE@",'*','OID@']):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # create an array to hold a new, modified row&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray = []&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # read all the fields except "SHAPE@"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for fieldnum in range(1,len(row)):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # if this is the second field [i.e. SHAPE], replace it with the centroid coordinates&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if fieldnum == 2:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[0].centroid)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowArray.append(row[fieldnum])&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # write the new row to the cursor&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.insertRow(rowArray)&lt;/P&gt;
&lt;P&gt;del row&lt;/P&gt;

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 23:55:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-centroid-within-polygon/m-p/728362#M56477</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2014-09-17T23:55:02Z</dc:date>
    </item>
  </channel>
</rss>

