<?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 modify a python code for centroid X Y coordinate (latitude and longitude) in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/modify-a-python-code-for-centroid-x-y-coordinate/m-p/82723#M6563</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using ArcGIS 9.3 and PythonWin 2.5.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here I have a python code to generate centroid latitude and longitude for polygon shapefiles.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It ran well for a single shapefile but exception occured for multiple ones in the same folder.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Therefore, please kindly advise how to modify the code for:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. multiple polygon shape files in the same folder&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. to generate X and Y coordinate&amp;nbsp; (latitude and longitude) in the unit of degree decimal point. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; (The projection is Behrmann, and the current X and Y coordinates is in the unit of meter.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. to show the centroid (point) in the result shapefile as well (Currently only the original polygon are presented)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Tool Name: Calculate PolyCentroid&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Source Name: PolyCentroid.py&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Version: ArcGIS 9.1 date: 10/28/05&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Author: Anthony Palmer, U.S. Army Corps of Engineers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#This tool adds two fields ("Xcoord" and "Ycoord") to a polygon feature class.&amp;nbsp; Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#finds the centroids for each polygon within the feature class, extracts the x and y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#values, and updates the appropriate fields.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#imports&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from win32com.client import Dispatch&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import sys&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GP = Dispatch("esriGeoprocessing.GpDispatch.1")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GP.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;# Get the input shapefile name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in_shapefile = sys.argv[1] #GP.getParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Add the Xcoord, Ycoord, RC_ID fields&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;desc = GP.Describe(in_shapefile)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;shapeField = desc.ShapeFieldName&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if desc.ShapeType == "Polygon":&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type = "poly"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddField(in_shapefile,"Xcoord","double")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddField(in_shapefile,"Ycoord","double")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddMessage("Added fields to the table.")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddMessage("Updating all fields...")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddMessage("Input must be a polygon shapefile.")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise("Error")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Update the Xcoord and Ycoord Fields&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rows = GP.UpdateCursor(in_shapefile)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;row = rows.next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GP.AddMessage("Calculating Values...")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while row:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ashape = row.shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aCentroid = ashape.Centroid&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aXcoord = aCentroid.split(" ") [0]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aYcoord = aCentroid.split(" ") [1]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.SetValue("Xcoord", aXcoord)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.SetValue("Ycoord", aYcoord)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.UpdateRow(row)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = rows.next()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the next feature and repeat&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del rows&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del GP&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 28 Apr 2012 22:02:59 GMT</pubDate>
    <dc:creator>ElaineKuo</dc:creator>
    <dc:date>2012-04-28T22:02:59Z</dc:date>
    <item>
      <title>modify a python code for centroid X Y coordinate (latitude and longitude)</title>
      <link>https://community.esri.com/t5/python-questions/modify-a-python-code-for-centroid-x-y-coordinate/m-p/82723#M6563</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using ArcGIS 9.3 and PythonWin 2.5.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here I have a python code to generate centroid latitude and longitude for polygon shapefiles.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It ran well for a single shapefile but exception occured for multiple ones in the same folder.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Therefore, please kindly advise how to modify the code for:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. multiple polygon shape files in the same folder&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. to generate X and Y coordinate&amp;nbsp; (latitude and longitude) in the unit of degree decimal point. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; (The projection is Behrmann, and the current X and Y coordinates is in the unit of meter.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. to show the centroid (point) in the result shapefile as well (Currently only the original polygon are presented)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Tool Name: Calculate PolyCentroid&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Source Name: PolyCentroid.py&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Version: ArcGIS 9.1 date: 10/28/05&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Author: Anthony Palmer, U.S. Army Corps of Engineers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#This tool adds two fields ("Xcoord" and "Ycoord") to a polygon feature class.&amp;nbsp; Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#finds the centroids for each polygon within the feature class, extracts the x and y&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#values, and updates the appropriate fields.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#imports&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from win32com.client import Dispatch&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import sys&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GP = Dispatch("esriGeoprocessing.GpDispatch.1")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GP.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;# Get the input shapefile name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in_shapefile = sys.argv[1] #GP.getParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Add the Xcoord, Ycoord, RC_ID fields&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;desc = GP.Describe(in_shapefile)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;shapeField = desc.ShapeFieldName&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if desc.ShapeType == "Polygon":&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type = "poly"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddField(in_shapefile,"Xcoord","double")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddField(in_shapefile,"Ycoord","double")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddMessage("Added fields to the table.")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddMessage("Updating all fields...")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GP.AddMessage("Input must be a polygon shapefile.")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise("Error")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#Update the Xcoord and Ycoord Fields&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;rows = GP.UpdateCursor(in_shapefile)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;row = rows.next()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GP.AddMessage("Calculating Values...")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while row:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ashape = row.shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aCentroid = ashape.Centroid&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aXcoord = aCentroid.split(" ") [0]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; aYcoord = aCentroid.split(" ") [1]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.SetValue("Xcoord", aXcoord)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.SetValue("Ycoord", aYcoord)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.UpdateRow(row)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = rows.next()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the next feature and repeat&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del rows&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;del GP&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Apr 2012 22:02:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/modify-a-python-code-for-centroid-x-y-coordinate/m-p/82723#M6563</guid>
      <dc:creator>ElaineKuo</dc:creator>
      <dc:date>2012-04-28T22:02:59Z</dc:date>
    </item>
  </channel>
</rss>

