<?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: looking for a python transform in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594367#M46548</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;BR /&gt;&lt;SPAN&gt;I am working on the same problem. did you by chance resolve this? if so, could you post your solution?...thanks for your time. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;--Daniel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 Feb 2011 21:26:41 GMT</pubDate>
    <dc:creator>DanielSmith</dc:creator>
    <dc:date>2011-02-08T21:26:41Z</dc:date>
    <item>
      <title>looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594366#M46547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;is there a python equivalent to the ITransform2D.Move method?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;i am trying to move a polygon from one place to another based on a known XY coordinate&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;something like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;!Shape.centroid.x! = new_coordx&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;!Shape.centroid.x! = new_coordy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;move&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Feb 2011 12:06:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594366#M46547</guid>
      <dc:creator>FrankVignati</dc:creator>
      <dc:date>2011-02-03T12:06:10Z</dc:date>
    </item>
    <item>
      <title>Re: looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594367#M46548</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;BR /&gt;&lt;SPAN&gt;I am working on the same problem. did you by chance resolve this? if so, could you post your solution?...thanks for your time. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;--Daniel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 Feb 2011 21:26:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594367#M46548</guid>
      <dc:creator>DanielSmith</dc:creator>
      <dc:date>2011-02-08T21:26:41Z</dc:date>
    </item>
    <item>
      <title>Re: looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594368#M46549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I am working on the same problem. did you by chance resolve this? if so, could you post your solution?...thanks for your time. &lt;BR /&gt;&lt;BR /&gt;--Daniel&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;not yet&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;but there is a clunky work around that can be done with model builder if your polygon starts at 0,0 xy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create a point from the polygon, add xy attributes, and two new fields x1, y1, calculate 1x and y1 to the values of point_x or point_y + values for the x,y of the location to move to&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;create points from the vertices of the polygon and do the same steps&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then create xy event layers of the centroid point and vertices and create points from that&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then create lines from the vertices points using the points to line python script esri provided&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;THEN create a polygon from the lines and moved centroid point&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;very clunky and it only works if your polygon starts at 0,0 xy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if anyone knows a better way please post it up&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 16:29:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594368#M46549</guid>
      <dc:creator>FrankVignati</dc:creator>
      <dc:date>2011-02-10T16:29:48Z</dc:date>
    </item>
    <item>
      <title>Re: looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594369#M46550</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It's not too difficult to set the coordinates of a polygon feature in Python. Here is an example: &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Writing_geometries/002z0000001v000000/"&gt;http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Writing_geometries/002z0000001v000000/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Instead of setting hard-coded coordinates, just apply a translation (add or subtract a distance) to each of the X and Y components of each of the existing coordinates in each polygon.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's another example for multi-part polygons: &lt;/SPAN&gt;&lt;A href="http://forums.arcgis.com/threads/20158-Creating-a-multipolygon-polygon"&gt;http://forums.arcgis.com/threads/20158-Creating-a-multipolygon-polygon&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 20:58:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594369#M46550</guid>
      <dc:creator>LoganPugh</dc:creator>
      <dc:date>2011-02-10T20:58:11Z</dc:date>
    </item>
    <item>
      <title>Re: looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594370#M46551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;How about building a custom spatial reference that is the same as your standard one but just with different FalseEasting and FalseNorthing values?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then you could use this custom SR in a cursor (or just the project command for that matter)...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 23:00:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594370#M46551</guid>
      <dc:creator>ChrisSnyder</dc:creator>
      <dc:date>2011-02-10T23:00:20Z</dc:date>
    </item>
    <item>
      <title>Re: looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594371#M46552</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's a function you can try within an UpdateCursor. Set the shape of the row to the return value of this function and call updateRow. Written for arcgisscripting so it should work with both 9.3 and 10.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def moveGeomToPoint(geometry, x, y):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Returns a geometry whose coordinates are shifted such that the new centroid is located at the coordinates x and y"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the current centroid
&amp;nbsp;&amp;nbsp;&amp;nbsp; oldCentroid = geometry.TrueCentroid

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the delta x and y factors
&amp;nbsp;&amp;nbsp;&amp;nbsp; dX = x - oldCentroid.x
&amp;nbsp;&amp;nbsp;&amp;nbsp; dY = y - oldCentroid.y

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Print details of translation
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Current Centroid: (%.12F, %.12F)" % (oldCentroid.x, oldCentroid.y)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "New Centroid: (%.12F, %.12F)" % (x, y)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "dX, dY: (%.12F, %.12F)" % (dX, dY)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Check if geometry is point first
&amp;nbsp;&amp;nbsp;&amp;nbsp; if geometry.type == "point":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the existing point object
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnt = geometry.GetPart()

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a new point object and assign to it the new translated coordinates
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPnt = gp.CreateObject("Point")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPnt.x = pnt.x + dX
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPnt.y = pnt.y + dY

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Return the new point instead of going through all the parts
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return newPnt

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Keep track of where we are in the geometry array
&amp;nbsp;&amp;nbsp;&amp;nbsp; partnum = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; partcount = geometry.PartCount

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a new geometry array -- this is what we are ultimately going to return
&amp;nbsp;&amp;nbsp;&amp;nbsp; newGeom = gp.CreateObject("Array")

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Loop through all of the parts in the geometry array
&amp;nbsp;&amp;nbsp;&amp;nbsp; while partnum &amp;lt; partcount:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Part " + str(partnum) + ":"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; part = geometry.GetPart(partnum)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a new array just for the part we are currently on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPart = gp.CreateObject("Array")

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the first vertex of the current part
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnt = part.Next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pntcount = 0

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Enter while loop for each vertex
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while pnt:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Print x,y coordinates of current point and new point
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oldX = pnt.x
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oldY = pnt.y
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newX = oldX + dX
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newY = oldY + dY
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "%.12F, %.12F --&amp;gt; %.12F, %.12F" % (oldX, oldY, newX, newY)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a new point object and assign to it the new translated coordinates
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPnt = gp.CreateObject("Point")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPnt.x = newX
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPnt.y = newY

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add the new point object to the new part array
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newPart.add(newPnt)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnt = part.Next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pntcount += 1

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If pnt is null, either the part is finished or there is an interior ring
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not pnt:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnt = part.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; if pnt:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Interior Ring:"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add the new part to the new geometry array
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newGeom.add(newPart)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; partnum += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; return newGeom&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Example usage:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcgisscripting
global gp
gp = arcgisscripting.create(9.3)
fc = "c:/temp/geomTest3.shp"
rows = gp.UpdateCursor(fc)
row = rows.Next()
while row:
&amp;nbsp;&amp;nbsp;&amp;nbsp; row.shape = moveGeomToPoint(row.shape, 8, -8)
&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp; row = rows.Next()
del row
del rows&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:31:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594371#M46552</guid>
      <dc:creator>LoganPugh</dc:creator>
      <dc:date>2021-12-12T01:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: looking for a python transform</title>
      <link>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594372#M46553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Seems to be working.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; However , If the file to be processed is non-georeferenced, will this work ?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Jul 2012 14:38:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/looking-for-a-python-transform/m-p/594372#M46553</guid>
      <dc:creator>AdarshMadhavan</dc:creator>
      <dc:date>2012-07-15T14:38:18Z</dc:date>
    </item>
  </channel>
</rss>

